diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,25 @@
+0.7
+---
+* Fixed the type of `glPathGlyphIndexRangeNV`. (issue #6)
+
+0.6.4
+-----
+* Added support for fourteen new extensions:
+  * OES_copy_image
+  * OES_draw_buffers_indexed
+  * OES_draw_elements_base_vertex
+  * OES_geometry_point_size
+  * OES_geometry_shader
+  * OES_gpu_shader5
+  * OES_primitive_bounding_box
+  * OES_shader_io_blocks
+  * OES_tessellation_point_size
+  * OES_tessellation_shader
+  * OES_texture_border_clamp
+  * OES_texture_buffer
+  * OES_texture_cube_map_array
+  * OES_texture_view
+
 0.6.3
 -----
 * Added support for a new extension:
diff --git a/Registry.hs b/Registry.hs
--- a/Registry.hs
+++ b/Registry.hs
@@ -112,7 +112,9 @@
 cleanCommand cmd = cmd { commandParameters = cleanParameter <$> commandParameters cmd }
 
 cleanParameter :: Parameter -> Parameter
-cleanParameter param = param { parameterGroup = cleanParameterGroup <$> parameterGroup param }
+cleanParameter param
+  | parameterName param == "baseAndCount" = param { parameterType = (parameterType param) { typePointer = 1 }}
+  | otherwise = param { parameterGroup = cleanParameterGroup <$> parameterGroup param }
 
 cleanParameterGroup :: String -> String
 cleanParameterGroup "PixelInternalFormat" = "InternalFormat"
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs
+++ b/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs
@@ -11,7 +11,7 @@
 import Data.Set
 import Graphics.GL.Internal.Proc
 
--- | Checks that the GL_ANGLE_texture_compression_dxt3 extension is available.
+-- | 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
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryShader.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryShader.hs
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryShader.hs
+++ b/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryShader.hs
@@ -45,7 +45,7 @@
 import Graphics.GL.Internal.Proc
 import Graphics.GL.Internal.Shared
 
--- | Checks that the GL_EXT_geometry_shader extension is available.
+-- | 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
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TessellationShader.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TessellationShader.hs
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TessellationShader.hs
+++ b/dist/build/autogen/Graphics/GL/Ext/EXT/TessellationShader.hs
@@ -64,7 +64,7 @@
 import Graphics.GL.Types
 import System.IO.Unsafe
 
--- | Checks that the GL_EXT_tessellation_shader extension is available.
+-- | 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
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/PathRendering.hs b/dist/build/autogen/Graphics/GL/Ext/NV/PathRendering.hs
--- a/dist/build/autogen/Graphics/GL/Ext/NV/PathRendering.hs
+++ b/dist/build/autogen/Graphics/GL/Ext/NV/PathRendering.hs
@@ -843,10 +843,10 @@
 -- | Usage: @'glPathGlyphIndexRangeNV' fontTarget fontName fontStyle pathParameterTemplate emScale baseAndCount@
 
 
-glPathGlyphIndexRangeNV :: MonadIO m => GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> GLuint -> m GLenum
-glPathGlyphIndexRangeNV = ffienumPtrVbitfielduintfloatuintIOenum glPathGlyphIndexRangeNVFunPtr
+glPathGlyphIndexRangeNV :: MonadIO m => GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> m GLenum
+glPathGlyphIndexRangeNV = ffienumPtrVbitfielduintfloatPtruintIOenum glPathGlyphIndexRangeNVFunPtr
 
-glPathGlyphIndexRangeNVFunPtr :: FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> GLuint -> IO GLenum)
+glPathGlyphIndexRangeNVFunPtr :: FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum)
 glPathGlyphIndexRangeNVFunPtr = unsafePerformIO (getProcAddress "glPathGlyphIndexRangeNV")
 
 {-# NOINLINE glPathGlyphIndexRangeNVFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES.hs b/dist/build/autogen/Graphics/GL/Ext/OES.hs
--- a/dist/build/autogen/Graphics/GL/Ext/OES.hs
+++ b/dist/build/autogen/Graphics/GL/Ext/OES.hs
@@ -9,9 +9,12 @@
   , 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
@@ -21,13 +24,17 @@
   , 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
@@ -35,6 +42,7 @@
   , 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
@@ -43,9 +51,14 @@
   , 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
@@ -55,6 +68,7 @@
   , 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
@@ -67,9 +81,12 @@
 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
@@ -79,13 +96,17 @@
 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
@@ -93,6 +114,7 @@
 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
@@ -101,9 +123,14 @@
 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
@@ -113,6 +140,7 @@
 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
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/CopyImage.hs b/dist/build/autogen/Graphics/GL/Ext/OES/CopyImage.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/CopyImage.hs
@@ -0,0 +1,36 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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/DrawBuffersIndexed.hs b/dist/build/autogen/Graphics/GL/Ext/OES/DrawBuffersIndexed.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/DrawBuffersIndexed.hs
@@ -0,0 +1,171 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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.Core40.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.Core40.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.Core40.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.Core40.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 #-}
+
+-- | 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 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/DrawElementsBaseVertex.hs b/dist/build/autogen/Graphics/GL/Ext/OES/DrawElementsBaseVertex.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/DrawElementsBaseVertex.hs
@@ -0,0 +1,104 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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.Core32.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.Core32.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.Core32.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.Core32.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.Core32.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.Core32.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.Core32.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.Core32.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.Core32.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.Core32.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.Core32.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.Core32.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/GeometryPointSize.hs b/dist/build/autogen/Graphics/GL/Ext/OES/GeometryPointSize.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/GeometryPointSize.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/GeometryShader.hs
@@ -0,0 +1,143 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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.Core32.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/GpuShader5.hs b/dist/build/autogen/Graphics/GL/Ext/OES/GpuShader5.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/GpuShader5.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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/PrimitiveBoundingBox.hs b/dist/build/autogen/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs
@@ -0,0 +1,37 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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@
+
+
+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/ShaderIoBlocks.hs b/dist/build/autogen/Graphics/GL/Ext/OES/ShaderIoBlocks.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/ShaderIoBlocks.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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/TessellationPointSize.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TessellationPointSize.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/TessellationPointSize.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/TessellationShader.hs
@@ -0,0 +1,170 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureBorderClamp.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/TextureBorderClamp.hs
@@ -0,0 +1,172 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/TextureBuffer.hs
@@ -0,0 +1,98 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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/TextureCubeMapArray.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureCubeMapArray.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/TextureCubeMapArray.hs
@@ -0,0 +1,44 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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
+
+-- | 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_TEXTURE_CUBE_MAP_ARRAY_OES = 0x9009
+
+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/TextureFloat.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloat.hs
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloat.hs
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloat.hs
@@ -12,7 +12,7 @@
 import Graphics.GL.Internal.Proc
 import Graphics.GL.Internal.Shared
 
--- | Checks that the GL_OES_texture_float extension is available.
+-- | 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
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloatLinear.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloatLinear.hs
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloatLinear.hs
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloatLinear.hs
@@ -8,7 +8,7 @@
 import Data.Set
 import Graphics.GL.Internal.Proc
 
--- | Checks that the GL_OES_texture_float_linear extension is available.
+-- | 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
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureView.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureView.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/OES/TextureView.hs
@@ -0,0 +1,50 @@
+-- This file was automatically generated.
+{-# LANGUAGE 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/Internal/FFI.hs b/dist/build/autogen/Graphics/GL/Internal/FFI.hs
--- a/dist/build/autogen/Graphics/GL/Internal/FFI.hs
+++ b/dist/build/autogen/Graphics/GL/Internal/FFI.hs
@@ -591,7 +591,7 @@
   , ffiuintsizeiPtrubytesizeienumPtrVIOV
   , ffiuintsizeienumPtrVIOV
   , ffiuintenumPtrVbitfielduintsizeiuintfloatIOenum
-  , ffienumPtrVbitfielduintfloatuintIOenum
+  , ffienumPtrVbitfielduintfloatPtruintIOenum
   , ffiuintenumPtrVbitfielduintsizeienumuintfloatIOV
   , ffiuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV
   , ffiuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum
@@ -3818,10 +3818,10 @@
 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 ccall "dynamic" dynenumPtrVbitfielduintfloatuintIOenum :: FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> GLuint -> IO GLenum) -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> GLuint -> IO GLenum
+foreign import ccall "dynamic" dynenumPtrVbitfielduintfloatPtruintIOenum :: FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum) -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum
 
-ffienumPtrVbitfielduintfloatuintIOenum :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> GLuint -> IO GLenum) -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> GLuint -> m GLenum
-ffienumPtrVbitfielduintfloatuintIOenum fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumPtrVbitfielduintfloatuintIOenum fp v0 v1 v2 v3 v4 v5)
+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 ccall "dynamic" dynuintenumPtrVbitfielduintsizeienumuintfloatIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ()
 
diff --git a/dist/build/autogen/Graphics/GL/Internal/Shared.hs b/dist/build/autogen/Graphics/GL/Internal/Shared.hs
--- a/dist/build/autogen/Graphics/GL/Internal/Shared.hs
+++ b/dist/build/autogen/Graphics/GL/Internal/Shared.hs
@@ -21039,7 +21039,7 @@
 --
 -- The parameter @level@ is a @CheckedInt32@.
 --
--- This command is an alias for 'Graphics.GL.Ext.ARB.GeometryShader4.glFramebufferTextureARB'.
+-- This command is an alias for 'Graphics.GL.Core32.glFramebufferTexture'.
 
 
 glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
diff --git a/extensions.txt b/extensions.txt
--- a/extensions.txt
+++ b/extensions.txt
@@ -43,7 +43,7 @@
 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_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
@@ -308,7 +308,7 @@
 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_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
@@ -327,7 +327,7 @@
 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://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_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
@@ -379,7 +379,7 @@
 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_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
@@ -477,7 +477,7 @@
 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://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
@@ -488,7 +488,7 @@
 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://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_MESAX_texture_stack https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESAX/texture_stack.txt
@@ -512,7 +512,7 @@
 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://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
@@ -645,22 +645,19 @@
 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_sync https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_sync.txt
-GL_OES_OES_byte_coordinates https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OES/OES_byte_coordinates.txt
-GL_OES_OES_compressed_paletted_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OES/OES_compressed_paletted_texture.txt
-GL_OES_OES_fixed_point https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OES/OES_fixed_point.txt
-GL_OES_OES_query_matrix https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OES/OES_query_matrix.txt
-GL_OES_OES_read_format https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OES/OES_read_format.txt
-GL_OES_OES_single_precision https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OES/OES_single_precision.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
@@ -668,13 +665,17 @@
 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
@@ -682,6 +683,7 @@
 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
@@ -690,18 +692,24 @@
 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_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
diff --git a/gl.cabal b/gl.cabal
--- a/gl.cabal
+++ b/gl.cabal
@@ -1,5 +1,5 @@
 name:          gl
-version:       0.6.3
+version:       0.7
 synopsis:      Complete OpenGL raw bindings
 description:   Complete OpenGL raw bindings
 license:       BSD3
@@ -673,9 +673,12 @@
     Graphics.GL.Ext.OES.CompressedETC1RGB8SubTexture
     Graphics.GL.Ext.OES.CompressedETC1RGB8Texture
     Graphics.GL.Ext.OES.CompressedPalettedTexture
+    Graphics.GL.Ext.OES.CopyImage
     Graphics.GL.Ext.OES.Depth24
     Graphics.GL.Ext.OES.Depth32
     Graphics.GL.Ext.OES.DepthTexture
+    Graphics.GL.Ext.OES.DrawBuffersIndexed
+    Graphics.GL.Ext.OES.DrawElementsBaseVertex
     Graphics.GL.Ext.OES.DrawTexture
     Graphics.GL.Ext.OES.EGLImage
     Graphics.GL.Ext.OES.EGLImageExternal
@@ -685,13 +688,17 @@
     Graphics.GL.Ext.OES.FixedPoint
     Graphics.GL.Ext.OES.FragmentPrecisionHigh
     Graphics.GL.Ext.OES.FramebufferObject
+    Graphics.GL.Ext.OES.GeometryPointSize
+    Graphics.GL.Ext.OES.GeometryShader
     Graphics.GL.Ext.OES.GetProgramBinary
+    Graphics.GL.Ext.OES.GpuShader5
     Graphics.GL.Ext.OES.Mapbuffer
     Graphics.GL.Ext.OES.MatrixGet
     Graphics.GL.Ext.OES.MatrixPalette
     Graphics.GL.Ext.OES.PackedDepthStencil
     Graphics.GL.Ext.OES.PointSizeArray
     Graphics.GL.Ext.OES.PointSprite
+    Graphics.GL.Ext.OES.PrimitiveBoundingBox
     Graphics.GL.Ext.OES.QueryMatrix
     Graphics.GL.Ext.OES.ReadFormat
     Graphics.GL.Ext.OES.RequiredInternalformat
@@ -699,6 +706,7 @@
     Graphics.GL.Ext.OES.SampleShading
     Graphics.GL.Ext.OES.SampleVariables
     Graphics.GL.Ext.OES.ShaderImageAtomic
+    Graphics.GL.Ext.OES.ShaderIoBlocks
     Graphics.GL.Ext.OES.ShaderMultisampleInterpolation
     Graphics.GL.Ext.OES.SinglePrecision
     Graphics.GL.Ext.OES.StandardDerivatives
@@ -707,9 +715,14 @@
     Graphics.GL.Ext.OES.Stencil8
     Graphics.GL.Ext.OES.StencilWrap
     Graphics.GL.Ext.OES.SurfacelessContext
+    Graphics.GL.Ext.OES.TessellationPointSize
+    Graphics.GL.Ext.OES.TessellationShader
     Graphics.GL.Ext.OES.Texture3D
+    Graphics.GL.Ext.OES.TextureBorderClamp
+    Graphics.GL.Ext.OES.TextureBuffer
     Graphics.GL.Ext.OES.TextureCompressionAstc
     Graphics.GL.Ext.OES.TextureCubeMap
+    Graphics.GL.Ext.OES.TextureCubeMapArray
     Graphics.GL.Ext.OES.TextureEnvCrossbar
     Graphics.GL.Ext.OES.TextureFloat
     Graphics.GL.Ext.OES.TextureFloatLinear
@@ -719,6 +732,7 @@
     Graphics.GL.Ext.OES.TextureNpot
     Graphics.GL.Ext.OES.TextureStencil8
     Graphics.GL.Ext.OES.TextureStorageMultisample2dArray
+    Graphics.GL.Ext.OES.TextureView
     Graphics.GL.Ext.OES.VertexArrayObject
     Graphics.GL.Ext.OES.VertexHalfFloat
     Graphics.GL.Ext.OES.VertexType1010102
diff --git a/gl.xml b/gl.xml
# file too large to diff: gl.xml
