caramia 0.1.0.0 → 0.2.0.0
raw patch · 62 files changed
+35466/−35304 lines, 62 files
Files
- README.md +75/−0
- caramia.cabal +103/−34
- demos/memory-info/Main.hs +1/−1
- demos/smoke-test/Main.hs +3/−3
- src/Caramia.hs +0/−19
- src/Caramia/Blend.hs +0/−42
- src/Caramia/Blend/Internal.hs +0/−118
- src/Caramia/Buffer.hs +0/−411
- src/Caramia/Buffer/Internal.hs +0/−58
- src/Caramia/Color.hs +0/−100
- src/Caramia/Context.hs +0/−205
- src/Caramia/Framebuffer.hs +0/−302
- src/Caramia/Framebuffer/Internal.hs +0/−87
- src/Caramia/ImageFormats.hs +0/−18
- src/Caramia/ImageFormats/Internal.hs +0/−328
- src/Caramia/Internal/ContextLocalData.hs +0/−121
- src/Caramia/Internal/FlextGL.hs +0/−28572
- src/Caramia/Internal/Lens.hs +0/−22
- src/Caramia/Internal/OpenGLCApi.hs +0/−306
- src/Caramia/Internal/OpenGLDebug.hs +0/−116
- src/Caramia/Math.hs +0/−1647
- src/Caramia/Memory.hs +0/−64
- src/Caramia/Prelude.hs +0/−56
- src/Caramia/Render.hs +0/−455
- src/Caramia/Render/Internal.hs +0/−239
- src/Caramia/Resource.hs +0/−144
- src/Caramia/Shader.hs +0/−539
- src/Caramia/Shader/Internal.hs +0/−65
- src/Caramia/Sync.hs +0/−68
- src/Caramia/Texture.hs +0/−728
- src/Caramia/Texture/Internal.hs +0/−129
- src/Caramia/VAO.hs +0/−283
- src/Caramia/VAO/Internal.hs +0/−24
- src/Graphics/Caramia.hs +33/−0
- src/Graphics/Caramia/Blend.hs +42/−0
- src/Graphics/Caramia/Blend/Internal.hs +118/−0
- src/Graphics/Caramia/Buffer.hs +411/−0
- src/Graphics/Caramia/Buffer/Internal.hs +51/−0
- src/Graphics/Caramia/Color.hs +100/−0
- src/Graphics/Caramia/Context.hs +205/−0
- src/Graphics/Caramia/Framebuffer.hs +302/−0
- src/Graphics/Caramia/Framebuffer/Internal.hs +87/−0
- src/Graphics/Caramia/ImageFormats.hs +18/−0
- src/Graphics/Caramia/ImageFormats/Internal.hs +328/−0
- src/Graphics/Caramia/Internal/ContextLocalData.hs +113/−0
- src/Graphics/Caramia/Internal/FlextGL.hs +28572/−0
- src/Graphics/Caramia/Internal/Lens.hs +22/−0
- src/Graphics/Caramia/Internal/OpenGLCApi.hs +306/−0
- src/Graphics/Caramia/Internal/OpenGLDebug.hs +116/−0
- src/Graphics/Caramia/Math.hs +1647/−0
- src/Graphics/Caramia/Memory.hs +64/−0
- src/Graphics/Caramia/Prelude.hs +56/−0
- src/Graphics/Caramia/Render.hs +455/−0
- src/Graphics/Caramia/Render/Internal.hs +239/−0
- src/Graphics/Caramia/Resource.hs +144/−0
- src/Graphics/Caramia/Shader.hs +568/−0
- src/Graphics/Caramia/Shader/Internal.hs +58/−0
- src/Graphics/Caramia/Sync.hs +68/−0
- src/Graphics/Caramia/Texture.hs +728/−0
- src/Graphics/Caramia/Texture/Internal.hs +129/−0
- src/Graphics/Caramia/VAO.hs +283/−0
- src/Graphics/Caramia/VAO/Internal.hs +21/−0
+ README.md view
@@ -0,0 +1,75 @@+This is an OpenGL bindings library for real-time graphics for Haskell, using+OpenGL 3.3.++Requirements:++ * GHC 7.6++ * OpenGL 3.3 (and GL\_ARB\_texture\_storage) (on the system where programs are+ run)++You need to use `-threaded` flag in executables that use this library.++Here are the most important features of this library:++ * Safe and automatic finalization of OpenGL resources++ * No implicit state (that is, no glBind* mess or equivalent). There is a+ monad for mass-rendering that has implicit state but the state is localized+ to running of that monad. (see Caramia.Render).++ * The only required extension beyond vanilla OpenGL 3.3 is+ GL\_ARB\_texture\_storage. Some other extensions are used if they are+ available.++Here are some curious features that you might find useful.++ * This library plays nice with other OpenGL libraries. It does not mess up+ the implicit OpenGL state (except for aforementioned rendering monad).++ * This library does not create an OpenGL context. You can use whatever+ library you want to create an OpenGL context as long as it can get an+ OpenGL 3.3 context. You may be interested at looking at the tests in this+ package to see how to use this with the `sdl2` package.++ * Operations are in the `IO` monad. No messing around with custom monads.++(At least) the following OpenGL concepts are present in this library:++ * Buffer objects (you can do low-level mapping and use raw pointers)++ * Geometry, vertex and fragment shaders++ * Indexed and non-indexed rendering++ * Framebuffers++ * Textures (with many topologies, 1D, 2D, 3D, texture arrays, cube textures;+ we also have buffer textures and multisampling textures)++ * Vertex array objects++ * Blending, stencil, depth and cull tests++ * Instanced rendering++ * Synchronization objects++Some notable missing features:++ * Tesselation shaders. This is an OpenGL 4.x feature but we could add it.++ * Using shaders with transform feedback.++ * Multi-threaded rendering.++This library tries to avoid including obsolete or redundant features of OpenGL.++One major flaw(?) of this library is that OpenGL resources cannot be easily+released promptly. This may or may not be a problem for you. OpenGL resources+may refer to each other behind the scenes so if we implement a mechanism to+release resources early, this mechanism needs to take care of resources+referring to each other.++Expect bugs. While this library has been tested in some of the author's toy+programs, the library currently lacks automatic tests.+
caramia.cabal view
@@ -1,5 +1,5 @@ name: caramia-version: 0.1.0.0+version: 0.2.0.0 synopsis: Caramia real-time hardware-accelerated rendering library homepage: https://github.com/Noeda/caramia/ license: MIT@@ -11,49 +11,118 @@ build-type: Simple stability: experimental cabal-version: >=1.10+extra-source-files: README.md description:- (See README.md in the repository for a more comprehensive description).+ This is an experimental OpenGL bindings library for real-time graphics for+ Haskell, using OpenGL 3.3. .- These are low-level, but Haskelly bindings to OpenGL 3.3.+ Requirements: .- See 'giveContext' in "Caramia.Context" as this is the- starting point for using this library.+ * GHC 7.6++ * OpenGL 3.3 (and GL\_ARB\_texture\_storage) (on the system where programs are run)+ .+ You need to use `-threaded` flag in executables that use this library.+ .+ Here are the most important features of this library:+ .+ * Safe and automatic finalization of OpenGL resources+ .+ * No implicit state (that is, no glBind* mess or equivalent). There is a+ monad for mass-rendering that has implicit state but the state is localized+ to running of that monad. (see Caramia.Render).+ .+ * The only required extension beyond vanilla OpenGL 3.3 is+ GL\_ARB\_texture\_storage. Some other extensions are used if they are+ available.+ .+ Here are some curious features that you might find useful.+ .+ * This library plays nice with other OpenGL libraries. It does not mess up+ the implicit OpenGL state (except for aforementioned rendering monad).+ .+ * This library does not create an OpenGL context. You can use whatever+ library you want to create an OpenGL context as long as it can get an+ OpenGL 3.3 context. You may be interested at looking at the tests in+ this package to see how to use this with the `sdl2` package.+ .+ * Operations are in the `IO` monad. No messing around with custom monads.+ .+ (At least) the following OpenGL concepts are present in this library:+ .+ * Buffer objects (you can do low-level mapping and use raw pointers)+ .+ * Geometry, vertex and fragment shaders+ .+ * Indexed and non-indexed rendering+ .+ * Framebuffers+ .+ * Textures (with many topologies, 1D, 2D, 3D, texture arrays, cube textures;+ we also have buffer textures and multisampling textures)+ .+ * Vertex array objects+ .+ * Blending, stencil, depth and cull tests+ .+ * Instanced rendering+ .+ * Synchronization objects+ .+ Some notable missing features:+ .+ * Tesselation shaders. This is an OpenGL 4.x feature but we could add it.+ .+ * Using shaders with transform feedback.+ .+ * Multi-threaded rendering.+ .+ This library tries to avoid including obsolete or redundant features of OpenGL.+ .+ One major flaw(?) of this library is that OpenGL resources cannot be easily+ released promptly. This may or may not be a problem for you. OpenGL resources+ may refer to each other behind the scenes so if we implement a mechanism to+ release resources early, this mechanism needs to take care of resources+ referring to each other.+ .+ Expect bugs. While this library has been tested in some of the author's toy+ programs, the library currently lacks automatic tests. + source-repository head type: git location: https://github.com/Noeda/caramia.git library- exposed-modules: Caramia- Caramia.Resource- Caramia.Context- Caramia.Buffer- Caramia.VAO- Caramia.Shader- Caramia.Math- Caramia.ImageFormats- Caramia.Render- Caramia.Texture- Caramia.Memory- Caramia.Framebuffer- Caramia.Color- Caramia.Blend- Caramia.Prelude- Caramia.Sync- Caramia.Internal.ContextLocalData- Caramia.Internal.OpenGLDebug- Caramia.Internal.OpenGLCApi- Caramia.Internal.Lens- Caramia.Internal.FlextGL- Caramia.Render.Internal- Caramia.Framebuffer.Internal- Caramia.Texture.Internal- Caramia.ImageFormats.Internal- Caramia.Shader.Internal- Caramia.Buffer.Internal- Caramia.Blend.Internal- Caramia.VAO.Internal+ exposed-modules: Graphics.Caramia+ Graphics.Caramia.Resource+ Graphics.Caramia.Context+ Graphics.Caramia.Buffer+ Graphics.Caramia.VAO+ Graphics.Caramia.Shader+ Graphics.Caramia.Math+ Graphics.Caramia.ImageFormats+ Graphics.Caramia.Render+ Graphics.Caramia.Texture+ Graphics.Caramia.Memory+ Graphics.Caramia.Framebuffer+ Graphics.Caramia.Color+ Graphics.Caramia.Blend+ Graphics.Caramia.Prelude+ Graphics.Caramia.Sync+ Graphics.Caramia.Internal.ContextLocalData+ Graphics.Caramia.Internal.OpenGLDebug+ Graphics.Caramia.Internal.OpenGLCApi+ Graphics.Caramia.Internal.Lens+ Graphics.Caramia.Internal.FlextGL+ Graphics.Caramia.Render.Internal+ Graphics.Caramia.Framebuffer.Internal+ Graphics.Caramia.Texture.Internal+ Graphics.Caramia.ImageFormats.Internal+ Graphics.Caramia.Shader.Internal+ Graphics.Caramia.Buffer.Internal+ Graphics.Caramia.Blend.Internal+ Graphics.Caramia.VAO.Internal ghc-options: -Wall -fno-warn-name-shadowing
demos/memory-info/Main.hs view
@@ -1,6 +1,6 @@ module Main ( main ) where -import Caramia+import Graphics.Caramia import Graphics.UI.SDL import Data.Bits import Foreign.C.String
demos/smoke-test/Main.hs view
@@ -2,9 +2,9 @@ module Main ( main ) where -import Caramia.Prelude-import Caramia-import Caramia.Math+import Graphics.Caramia.Prelude+import Graphics.Caramia+import Graphics.Caramia.Math import Graphics.UI.SDL import qualified Graphics.UI.SDL as SDL
− src/Caramia.hs
@@ -1,19 +0,0 @@--- | This module re-exports most Caramia modules.--module Caramia- ( module Ex )- where--import Caramia.Resource as Ex-import Caramia.Context as Ex-import Caramia.Buffer as Ex-import Caramia.VAO as Ex-import Caramia.Shader as Ex-import Caramia.Render as Ex-import Caramia.ImageFormats as Ex-import Caramia.Texture as Ex-import Caramia.Memory as Ex-import Caramia.Framebuffer as Ex-import Caramia.Color as Ex-import Caramia.Blend as Ex-
− src/Caramia/Blend.hs
@@ -1,42 +0,0 @@--- | Blending stuff.------ <https://www.opengl.org/wiki/Blending>-----module Caramia.Blend- (- -- * Data types- BlendSpec(..)- , BlendEquation(..)- , BlendFunc(..)- -- * Pre-defined blending specs- , preMultipliedAlpha- , nopBlend )- where----import Caramia.Prelude-import Caramia.Blend.Internal-import Caramia.Color--preMultipliedAlpha :: BlendSpec-preMultipliedAlpha = BlendSpec- { srcColorFunc = BFOne- , srcAlphaFunc = BFOne- , dstColorFunc = BFOneMinusSrcAlpha- , dstAlphaFunc = BFOneMinusSrcAlpha- , colorEquation = BEAdd- , alphaEquation = BEAdd- , blendColor = rgba 1 1 1 1 }---- | Blending that doesn't do anything special; just copies the source pixel to--- destination.-nopBlend :: BlendSpec-nopBlend = BlendSpec- { srcColorFunc = BFOne- , srcAlphaFunc = BFOne- , dstColorFunc = BFZero- , dstAlphaFunc = BFZero- , colorEquation = BEAdd- , alphaEquation = BEAdd- , blendColor = rgba 1 1 1 1 }-
− src/Caramia/Blend/Internal.hs
@@ -1,118 +0,0 @@-{-# LANGUAGE RecordWildCards, NoImplicitPrelude, DeriveDataTypeable #-}--module Caramia.Blend.Internal where--import Caramia.Prelude--import Caramia.Internal.OpenGLCApi-import Caramia.Color-import Control.Exception-import Foreign-import Foreign.C.Types---- | Describes which equation to use in blending.------ See `glBlendEquation` in OpenGL documentation.-data BlendEquation =- BEAdd- | BESubtract- | BEReverseSubtract- | BEMin- | BEMax- deriving ( Eq, Ord, Show, Read, Typeable )---- | Describes the arithmetic to use in blending.------ See `glBlendFunc` in OpenGL documentation.-data BlendFunc =- BFZero- | BFOne- | BFSrcColor- | BFOneMinusSrcColor- | BFDstColor- | BFOneMinusDstColor- | BFSrcAlpha- | BFOneMinusSrcAlpha- | BFDstAlpha- | BFOneMinusDstAlpha- | BFConstantColor- | BFOneMinusConstantColor- | BFConstantAlpha- | BFOneMinusConstantAlpha- | BFSrcAlphaSaturate- deriving ( Eq, Ord, Show, Read, Typeable )--toConstantBE :: BlendEquation -> GLenum-toConstantBE BEAdd = gl_FUNC_ADD-toConstantBE BESubtract = gl_FUNC_SUBTRACT-toConstantBE BEReverseSubtract = gl_FUNC_REVERSE_SUBTRACT-toConstantBE BEMin = gl_MIN-toConstantBE BEMax = gl_MAX--toConstantBF :: BlendFunc -> GLenum-toConstantBF BFZero = gl_ZERO-toConstantBF BFOne = gl_ONE-toConstantBF BFSrcColor = gl_SRC_COLOR-toConstantBF BFOneMinusSrcColor = gl_ONE_MINUS_SRC_COLOR-toConstantBF BFDstColor = gl_DST_COLOR-toConstantBF BFOneMinusDstColor = gl_ONE_MINUS_DST_COLOR-toConstantBF BFSrcAlpha = gl_SRC_ALPHA-toConstantBF BFOneMinusSrcAlpha = gl_ONE_MINUS_SRC_ALPHA-toConstantBF BFDstAlpha = gl_DST_ALPHA-toConstantBF BFOneMinusDstAlpha = gl_ONE_MINUS_DST_ALPHA-toConstantBF BFConstantColor = gl_CONSTANT_COLOR-toConstantBF BFOneMinusConstantColor = gl_ONE_MINUS_CONSTANT_COLOR-toConstantBF BFConstantAlpha = gl_CONSTANT_ALPHA-toConstantBF BFOneMinusConstantAlpha = gl_ONE_MINUS_CONSTANT_ALPHA-toConstantBF BFSrcAlphaSaturate = gl_SRC_ALPHA_SATURATE---- | Captures the blending parameters.-data BlendSpec = BlendSpec- { alphaEquation :: !BlendEquation- , colorEquation :: !BlendEquation- , srcColorFunc :: !BlendFunc- , srcAlphaFunc :: !BlendFunc- , dstColorFunc :: !BlendFunc- , dstAlphaFunc :: !BlendFunc- , blendColor :: !Color }- deriving ( Eq, Ord, Show, Read, Typeable )--setBlendings :: BlendSpec -> IO ()-setBlendings (BlendSpec{..}) = do- glBlendFuncSeparate (toConstantBF srcColorFunc)- (toConstantBF dstColorFunc)- (toConstantBF srcAlphaFunc)- (toConstantBF dstAlphaFunc)- glBlendEquationSeparate (toConstantBE colorEquation)- (toConstantBE alphaEquation)- glBlendColor (CFloat $ viewRed blendColor)- (CFloat $ viewGreen blendColor)- (CFloat $ viewBlue blendColor)- (CFloat $ viewAlpha blendColor)--withBlendings :: BlendSpec- -> IO a- -> IO a-withBlendings spec@(BlendSpec {..}) action = do- old_be_color <- gi gl_BLEND_EQUATION_RGB- old_be_alpha <- gi gl_BLEND_EQUATION_ALPHA- old_src_color <- gi gl_BLEND_SRC_RGB- old_src_alpha <- gi gl_BLEND_SRC_ALPHA- old_dst_color <- gi gl_BLEND_DST_RGB- old_dst_alpha <- gi gl_BLEND_DST_ALPHA- allocaArray 4 $ \color_ptr -> do- glGetFloatv gl_BLEND_COLOR color_ptr- r <- peekElemOff color_ptr 0- g <- peekElemOff color_ptr 1- b <- peekElemOff color_ptr 2- a <- peekElemOff color_ptr 3- finally (setBlendings spec >> action) $ do- glBlendColor r g b a- glBlendFuncSeparate old_src_color- old_dst_color- old_src_alpha- old_dst_alpha- glBlendEquationSeparate old_be_color- old_be_alpha--
− src/Caramia/Buffer.hs
@@ -1,411 +0,0 @@--- | Buffer objects.------ These are chunks of memory (typically) kept on the GPU.------ <https://www.opengl.org/wiki/Buffer_Object>------- TODO: Add glBufferStorage based implementation.--- OpenGLRaw (1.4.0.0) doesn't have this yet.--{-# LANGUAGE DeriveDataTypeable, NoImplicitPrelude #-}--module Caramia.Buffer- ( -- * Creation- newBuffer- , Buffer()- , AccessFrequency(..)- , AccessNature(..)- , AccessFlags(..)- , MapFlag(..)- , BufferCreation(..)- , defaultBufferCreation- -- * Invalidation- , invalidateBuffer- -- * Manipulation- , map- , map2- , unmap- , copy- , withMapping- , withMapping2- , uploadVector- -- * Views- , viewSize- , viewAllowedMappings- -- * Exceptions- , BufferCorruption(..)- )- where--import Caramia.Prelude hiding ( map )-import Caramia.Buffer.Internal--import Caramia.Resource-import Caramia.Internal.OpenGLCApi--import qualified Data.Vector.Storable as V-import qualified Data.Set as S--import Data.Bits-import Foreign-import Control.Exception---- | The frequency of access to a buffer.------ These correspond to the OpenGL access frequency hints. You can look for them--- in the OpenGL specification or check this link:------ <https://www.opengl.org/wiki/GLAPI/glBufferData>-data AccessFrequency =- Stream- | Static- | Dynamic- deriving ( Eq, Ord, Show, Read )---- | The nature of access to a buffer.------ These correspond to the OpenGL access nature hints. You can look for them--- in the OpenGL specification or check this link:------ <https://www.opengl.org/wiki/GLAPI/glBufferData>-data AccessNature =- Draw- | Read- | Copy- deriving ( Eq, Ord, Show, Read )--canMapWith :: AccessFlags -> AccessFlags -> Bool-canMapWith ReadWriteAccess _ = True-canMapWith WriteAccess WriteAccess = True-canMapWith WriteAccess _ = False-canMapWith ReadAccess ReadAccess = True-canMapWith ReadAccess _ = False-canMapWith NoAccess NoAccess = True-canMapWith NoAccess _ = False--toConstant :: AccessFrequency -> AccessNature -> GLuint-toConstant Stream Draw = gl_STREAM_DRAW-toConstant Stream Read = gl_STREAM_READ-toConstant Stream Copy = gl_STREAM_COPY-toConstant Static Draw = gl_STATIC_DRAW-toConstant Static Read = gl_STATIC_READ-toConstant Static Copy = gl_STATIC_COPY-toConstant Dynamic Draw = gl_DYNAMIC_DRAW-toConstant Dynamic Read = gl_DYNAMIC_READ-toConstant Dynamic Copy = gl_DYNAMIC_COPY--toConstantF :: AccessFlags -> GLbitfield-toConstantF ReadAccess = gl_MAP_READ_BIT-toConstantF WriteAccess = gl_MAP_WRITE_BIT-toConstantF ReadWriteAccess = gl_MAP_READ_BIT .|. gl_MAP_WRITE_BIT-toConstantF NoAccess = 0--toConstantMF :: S.Set MapFlag -> GLbitfield-toConstantMF ss- | S.null ss = 0- | otherwise =- if UnSynchronized `S.member` ss- then gl_MAP_UNSYNCHRONIZED_BIT- else 0---- | This data describes how a buffer should behave and what operations can be--- done with it.------ Accurate description can improve performance.------ For forwards compatibility, it is recommended to use--- `defaultBufferCreation` and then set the fields you want to change.-data BufferCreation = BufferCreation- { accessHints :: !(AccessFrequency, AccessNature) -- ^ Hints on how the- -- buffer will be used.-- , size :: !Int -- ^ How large the buffer should be, in- -- bytes.- , initialData ::- !(Maybe (Ptr ())) -- ^ The initial data to be copied to- -- the buffer. Can be `Nothing` in- -- which case the initial contents are- -- undefined.-- , accessFlags :: !AccessFlags -- ^ What kind of mapping access is- -- allowed. See `map`.- }---- | The default buffer creation flags.------ The default attempts to give you the most general (and possibly slowest)--- buffer. Both read and write access are allowed.------ Default size is 0 which will make `newBuffer` fail if you don't set it.-defaultBufferCreation :: BufferCreation-defaultBufferCreation = BufferCreation {- accessHints = (Dynamic, Draw)- , size = 0- , initialData = Nothing- , accessFlags = ReadWriteAccess }---- | Creates a new buffer according to `BufferCreation` specification.-newBuffer :: BufferCreation- -> IO Buffer-newBuffer creation- | size creation <= 0 =- error "newBuffer: size must be positive."- | otherwise = mask_ $ do- resource <-- newResource createBuffer- (\(Buffer_ bufname) -> mglDeleteBuffer bufname)- (return ())- initial_status <- newIORef BufferStatus { mapped = False }- oi <- atomicModifyIORef' bufferOrdIndex $ \old -> ( old+1, old )- return Buffer { resource = resource- , status = initial_status- , viewAllowedMappings = accessFlags creation- , viewSize = size creation- , ordIndex = oi }- where- initial_data = fromMaybe nullPtr (assertNotNull <$> initialData creation)- safe_size = safeFromIntegral $ size creation- (usage, access) = accessHints creation-- createBuffer = do- buf <- mglGenBuffer- mglNamedBufferData buf- safe_size- (castPtr initial_data)- (toConstant usage access)- return (Buffer_ buf)-- assertNotNull ptr- | ptr == nullPtr = error "newBuffer: initial data is a null pointer."- | otherwise = ptr---- | Same as `map` but allows more control over mapping.------ @ map = map2 [] @-map2 :: S.Set MapFlag- -> Int- -> Int- -> AccessFlags- -> Buffer- -> IO (Ptr ())-map2 map_flags offset num_bytes access_flags buffer- -- a lot of this implementation is just error checking...-- -- check that offset/num_bytes makes sense- | offset < 0 || offset >= viewSize buffer ||- num_bytes <= 0 ||- offset + num_bytes > viewSize buffer =- error $ "map: requested mapping has invalid offset " <>- "and/or range. " <>- "Buffer size is " <> show (viewSize buffer) <> ", " <>- "requested mapping was [" <> show offset <> ".." <>- show (offset + num_bytes - 1) <> "]."- | otherwise =- withResource (resource buffer) $ \(Buffer_ buf) -> mask_ $ do- bufstatus <- readIORef (status buffer)- -- make sure buffer has not been alreayd mapped- when (mapped bufstatus) $- error "map: buffer is already mapped."- -- can we really map with these access flags- unless (canMapWith (viewAllowedMappings buffer) access_flags) $- error $ "map: attempted to map buffer with " <> show access_flags- <> ", allowed mappings are: " <>- show (viewAllowedMappings buffer)-- ptr <- mglMapNamedBufferRange- buf- (safeFromIntegral offset)- (safeFromIntegral num_bytes)- (toConstantF access_flags .|. toConstantMF map_flags)-- -- what if it just mysteriously fails? I think we caught most, if not- -- all user errors so any other error should be some rare condition- -- depending on external factors. I hope.- when (ptr == nullPtr) $- -- I am so sorry for any user who sees this error message.- error $ "map: for some reason, mapping a buffer failed. " <>- "You might want to check OpenGL debug log."-- atomicModifyIORef' (status buffer) $ \old ->- ( old { mapped = True }, () )-- return ptr---- | Maps (part) of a buffer to system memory space.------ The mapping is valid until the buffer is garbage collected (in which case--- the mapping is automatically unmapped) or when `unmap` is called on the--- buffer.------ You can not have two mappings going on at the same time.-map :: Int -- ^ Offset, in bytes, from start of the buffer from where- -- to map.- -> Int -- ^ How many bytes to map.- -> AccessFlags -- ^ What access is allowed in the mapping.- -> Buffer- -> IO (Ptr ())-map = map2 S.empty---- | Exception that is thrown from `unmap` when buffer corruption is detected.------ Corruption can happen due to external factors and is system-specific.-data BufferCorruption = BufferCorruption Buffer- deriving ( Eq, Typeable )--instance Show BufferCorruption where- show _ = "BufferCorruption <#Buffer>"--instance Exception BufferCorruption---- | Unmaps a buffer.------ Does nothing if the buffer was not mapped.------ It is possible that the mapping become corrupt during the time it was--- mapped. If there was corruption, `BufferCorruption` is thrown in this call.------ Corruption means that the contents of the buffer are now undefined.-unmap :: Buffer -> IO ()-unmap buffer = do- bufstatus <- readIORef (status buffer)- when (mapped bufstatus) $- withResource (resource buffer) $ \(Buffer_ buf) -> mask_ $ do- result <- mglUnmapNamedBuffer buf- when (fromIntegral result == gl_FALSE) $- throwIO $ BufferCorruption buffer- atomicModifyIORef' (status buffer) $ \old ->- ( old { mapped = False }, () )---- | Same as `withMapping` but with map flags.------ See `map2`.-withMapping2 :: S.Set MapFlag- -> Int- -> Int- -> AccessFlags- -> Buffer- -> (Ptr () -> IO a)- -> IO a-withMapping2 map_flags offset num_bytes access_flags buffer action =- mask $ \restore -> do- ptr <- map2 map_flags offset num_bytes access_flags buffer- did_it_work <- try $ restore $ action ptr- did_unmapping_work <- try $ unmap buffer- case did_it_work of- Left exc -> throwIO (exc :: SomeException)- Right result ->- case did_unmapping_work of- Left no -> throwIO (no :: BufferCorruption)- Right () -> return result---- | A convenience function over map/unmap that automatically unmaps the buffer--- when done (even in the case of exceptions).------ The arguments to this function are the same as for `map`, except for extra--- action argument.------ This calls `unmap` which means it can throw `BufferCorruption` when the--- action is done.------ There is a rare case that can happen if your action throws an exception AND--- the unmapping throws an exception. Which exception is propagated upwards?--- If this happens, this call silences `BufferCorruption` exception and--- re-throws the user exception. This unfortunately means there is no way to--- know if the buffer was corrupted if you threw an exception inside the--- action.-withMapping :: Int- -> Int- -> AccessFlags- -> Buffer- -> (Ptr () -> IO a) -- ^ The pointer is valid during this action.- -> IO a-withMapping = withMapping2 S.empty---- | A convenience function to upload a storable vector to a buffer.------ The buffer must be in an unmapped state and must be write-mappable.-uploadVector :: V.Storable a- => V.Vector a -- ^ The vector from which to pull data.- -> Int -- ^ Offset, in bytes, to which point in the- -- buffer to copy the data.- -> Buffer- -> IO ()-uploadVector vec offset buffer =- V.unsafeWith vec $ \src_ptr ->- withMapping offset byte_size WriteAccess buffer $ \tgt_ptr ->- copyBytes tgt_ptr (castPtr src_ptr) byte_size- where- byte_size = V.length vec * sizeOf (undefined `asTypeOf` (vec V.! 0))---- | Copies bytes from one buffer to another.------ The buffers must not be mapped; however this call can bypass the access--- flags set in `newBuffer`. That is, you can copy data even to a buffer that--- was set as not writable or copy from a buffer that was set as not readable.------ This is faster than mapping both buffers and then doing a memcpy() style--- copying in system memory because this call does not require a round-trip to--- the driver.------ You can use the same buffer for both destination and source but the copying--- area may not overlap.-copy :: Buffer -- ^ Destination buffer.- -> Int -- ^ Offset in destination buffer.- -> Buffer -- ^ Source buffer.- -> Int -- ^ Offset in source buffer.- -> Int -- ^ How many bytes to copy.- -> IO ()-copy dst_buffer dst_offset src_buffer src_offset num_bytes- | dst_offset < 0 ||- src_offset < 0 ||- dst_offset + num_bytes > viewSize dst_buffer ||- src_offset + num_bytes > viewSize src_buffer ||- num_bytes < 0 =- error "copy: invalid offsets/byte sizes to make a buffer copy."- | overlaps = error "copy: copying area overlaps."- | otherwise =- withResource (resource dst_buffer) $ \(Buffer_ dst) ->- withResource (resource src_buffer) $ \(Buffer_ src) -> do- dst_status <- readIORef (status dst_buffer)- when (mapped dst_status) $- error "copy: destination buffer is mapped."- src_status <- readIORef (status src_buffer)- when (mapped src_status) $- error "copy: source buffer is mapped."-- when (num_bytes > 0) $- mglNamedCopyBufferSubData- src- dst- (safeFromIntegral src_offset)- (safeFromIntegral dst_offset)- (safeFromIntegral num_bytes)-- where- overlaps- | dst_buffer /= src_buffer = False- | dst_offset + num_bytes - 1 < src_offset ||- dst_offset > src_offset + num_bytes - 1 = False- | otherwise = True---- | Invalidates the contents of a buffer.------ This is you saying: \"I don't care what's in this buffer anymore. You can do--- whatever you want with it.\".------ The data may be gone or it may not be gone. Use this as a hint to the--- implementation that you will not use the _current_ contents of the buffer--- anymore.------ This requires the OpenGL extension \"GL_ARB_invalidate_subdata\" but if this--- extension is not present, then this simply does nothing.------ See <https://www.opengl.org/wiki/Buffer_Object#Invalidation>.-invalidateBuffer :: Buffer -> IO ()-invalidateBuffer buf = do- has_it <- has_GL_ARB_invalidate_subdata- when has_it $- withResource (resource buf) $ \(Buffer_ name) ->- glInvalidateBufferData name-
− src/Caramia/Buffer/Internal.hs
@@ -1,58 +0,0 @@-{-# LANGUAGE NoImplicitPrelude, ViewPatterns, DeriveDataTypeable #-}--module Caramia.Buffer.Internal- ( Buffer(..)- , Buffer_(..)- , BufferStatus(..)- , AccessFlags(..)- , MapFlag(..)- , bufferOrdIndex )- where--import Caramia.Prelude--import Caramia.Resource-import Caramia.Internal.OpenGLCApi-import System.IO.Unsafe---- | Buffer data type.-data Buffer = Buffer- { resource :: !(Resource Buffer_)- , status :: !(IORef BufferStatus)- , viewAllowedMappings :: !AccessFlags -- ^ Returns the allowed mappings.- , viewSize :: !Int -- ^ Returns the size of the buffer, in bytes.- , ordIndex :: !Int- }--bufferOrdIndex :: IORef Int-bufferOrdIndex = unsafePerformIO $ newIORef 0-{-# NOINLINE bufferOrdIndex #-}--instance Ord Buffer where- (ordIndex -> o1) `compare` (ordIndex -> o2) = o1 `compare` o2--data BufferStatus = BufferStatus- { mapped :: !Bool }--instance Eq Buffer where- (resource -> res1) == (resource -> res2) = res1 == res2--newtype Buffer_ = Buffer_ GLuint---- | Describes a style of mapping.-data AccessFlags =- ReadAccess -- ^ The mapping can be read from.- | WriteAccess -- ^ The mapping can be written to.- | ReadWriteAccess -- ^ Both reading and writing can be done.- | NoAccess -- ^ No access; you cannot map the buffer at all after- -- creation.- deriving ( Eq, Ord, Show, Read )---- | Additional mapping flags.-data MapFlag =- UnSynchronized -- ^ Map the buffer without synchronization.- -- You will have to use synchronization primitives- -- to make sure you and OpenGL won't be using- -- the buffer at the same time.- deriving ( Eq, Ord, Show, Read, Typeable )-
− src/Caramia/Color.hs
@@ -1,100 +0,0 @@--- | Color handling.-----{-# LANGUAGE DeriveDataTypeable, NoImplicitPrelude #-}--module Caramia.Color- (- -- * Types- Color()- -- * Constructing colors- , rgba- -- * Lenses- , rgbaL- , redL- , greenL- , blueL- , alphaL- -- * Views- , viewRgba- , viewRed- , viewGreen- , viewBlue- , viewAlpha )- where--import Caramia.Prelude-import Foreign.Storable-import Foreign.Ptr-import Caramia.Internal.Lens---- | The color data type.------ This data type says nothing about the color space these values are in. The--- color space depends on the usage; for example, a framebuffer with sRGB--- textures attached uses sRGB color space in these color values.-data Color = Color- { viewRed :: !Float- , viewGreen :: !Float- , viewBlue :: !Float- , viewAlpha :: !Float- }- deriving ( Eq, Ord, Show, Read, Typeable )---- | Construct a color from rgba values.-rgba :: Float -> Float -> Float -> Float -> Color-rgba = Color-{-# INLINE rgba #-}---- | View rgba in a tuple.-viewRgba :: Color -> (Float, Float, Float, Float)-viewRgba (Color r g b a) = (r, g, b, a)-{-# INLINE viewRgba #-}---- | Lens to all components.-rgbaL :: Lens' Color (Float, Float, Float, Float)-rgbaL = lens viewRgba (\old (r, g, b, a) ->- old { viewRed = r- , viewGreen = g- , viewBlue = b- , viewAlpha = a })---- | Lens to red component.-redL :: Lens' Color Float-redL = lens viewRed (\old new -> old { viewRed = new })---- | Lens to green component.-greenL :: Lens' Color Float-greenL = lens viewGreen (\old new -> old { viewGreen = new })---- | Lens to blue component.-blueL :: Lens' Color Float-blueL = lens viewBlue (\old new -> old { viewBlue = new })---- | Lens to alpha component.-alphaL :: Lens' Color Float-alphaL = lens viewAlpha (\old new -> old { viewAlpha = new })--instance Storable Color where- sizeOf _ = sizeOf (undefined :: Float) * 4- alignment _ = alignment (undefined :: Float) * 4- peek ptr = do- r <- peekElemOff cptr 0 :: IO Float- g <- peekElemOff cptr 1 :: IO Float- b <- peekElemOff cptr 2 :: IO Float- a <- peekElemOff cptr 3 :: IO Float- return $ Color r g b a- where- cptr = castPtr ptr :: Ptr Float- {-# INLINE peek #-}-- poke ptr (Color r g b a) = do- pokeElemOff cptr 0 r- pokeElemOff cptr 1 g- pokeElemOff cptr 2 b- pokeElemOff cptr 3 a- where- cptr = castPtr ptr :: Ptr Float- {-# INLINE poke #-}--
− src/Caramia/Context.hs
@@ -1,205 +0,0 @@--- | This module manages OpenGL contexts in Caramia.------ Caramia does not actually have any functionality about creating OpenGL--- contexts. You need to tell it about them with this module.------ `giveContext` is the most important function in this module. You also want--- to `runPendingFinalizers` regularly to make sure OpenGL resources are--- garbage collected.-----{-# LANGUAGE NoImplicitPrelude, ScopedTypeVariables, DeriveDataTypeable #-}-{-# LANGUAGE CPP, LambdaCase #-}--module Caramia.Context- (- -- * Running with an OpenGL context- giveContext- -- * Context IDs- , currentContextID- , ContextID- -- * Finalization- , runPendingFinalizers- , scheduleFinalizer- -- * Context local data- , storeContextLocalData- , retrieveContextLocalData- -- * Exceptions- , TooOldOpenGL(..) )- where--import Caramia.Prelude-import Caramia.Internal.ContextLocalData-import Caramia.Internal.OpenGLDebug-import Caramia.Internal.FlextGL--import Control.Concurrent-import Control.Exception-import System.IO.Unsafe-import System.Environment-import Graphics.Rendering.OpenGL.Raw.GetProcAddress-import Foreign.Ptr-import Foreign.Storable-import Foreign.Marshal.Alloc--import qualified Data.Map.Strict as M-import qualified Data.IntMap.Strict as IM---- | An exception that is thrown when the OpenGL version is too old for this--- library.-data TooOldOpenGL = TooOldOpenGL- { wantedVersion :: (Int, Int) -- ^ The OpenGL version this- -- library needs.- , reportedVersion :: (Int, Int)- -- ^ The OpenGL version reported by current OpenGL- -- context.- }- deriving ( Eq, Show, Read, Typeable )--instance Exception TooOldOpenGL---- | Tell Caramia the current thread has an OpenGL context active.------ When the given IO action returns, Caramia will think that the OpenGL context--- is now gone. It is probably best to actually close the context because this--- also means OpenGL finalizers will not be run (Caramia thinks they were all--- released when the OpenGL context went away).------ The context in the IO action is referred to as \'Caramia context\' in this--- documentation to distinguish it from OpenGL context.------ If the environment variable \'CARAMIA_OPENGL_DEBUG\' is set, then, if--- \'GL_KHR_debug\' extension is supported, OpenGL debug output is written.--- Note that you might need a debug OpenGL context for there to be any--- messages.------ Throws `TooOldOpenGL` if the code detects a context that does not provide--- OpenGL 3.3.-giveContext :: IO a -> IO a-giveContext action = mask $ \restore -> do- is_bound_thread <- isCurrentThreadBound- unless is_bound_thread $- error $ "giveContext: current thread is not bound. How can it have " <>- "an OpenGL context?"-- flextInit (\str -> castFunPtrToPtr <$> getProcAddress str)- (\_ -> return True) >>= \case- f@(Failure _) -> throwIO f- _ -> return ()-- checkOpenGLVersion33-- cid <- atomicModifyIORef' nextContextID $ \old -> ( old+1, old )- tid <- myThreadId- atomicModifyIORef' runningContexts $ \old_map ->- ( M.insert tid cid old_map, () )- finally (restore insides) (flushDebugMessages >> scrapContext)- where- insides = do- should_activate_debug_mode <- isJust <$> lookupEnv "CARAMIA_OPENGL_DEBUG"- when should_activate_debug_mode activateDebugMode-- -- Enable sRGB framebuffers- -- There seems to be no reason not to enable it; you can turn off sRGB- -- handling in other ways.- glEnable gl_FRAMEBUFFER_SRGB- glEnable gl_BLEND-- action--checkOpenGLVersion33 :: IO ()-checkOpenGLVersion33 =- -- You cannot trust OS X to report versions correctly :-(-#ifdef MAC_OPENGL- return ()-#else- alloca $ \major_ptr -> alloca $ \minor_ptr -> do- -- in case glGetIntegerv is completely broken, set initial values for- -- major and minor pointers- poke major_ptr 0- poke minor_ptr 0-- glGetIntegerv gl_MAJOR_VERSION major_ptr- glGetIntegerv gl_MAJOR_VERSION minor_ptr- major <- peek major_ptr- minor <- peek minor_ptr- unless (major > 3 ||- (major == 3 && minor >= 3)) $- throwIO- TooOldOpenGL { wantedVersion = (3, 3)- , reportedVersion = ( fromIntegral major- , fromIntegral minor )- }-#endif---- | Scraps the current context.------ Not public API.-scrapContext :: IO ()-scrapContext = mask_ $ do- maybe_cid <- currentContextID- tid <- myThreadId- case maybe_cid of- Nothing -> return ()- Just cid -> do- atomicModifyIORef' runningContexts $ \old_map ->- ( M.delete tid old_map, () )- atomicModifyIORef' pendingFinalizers $ \old_map ->- ( IM.delete cid old_map, () )- atomicModifyIORef' contextLocalData $ \old_map ->- ( IM.delete cid old_map, () )---- | Run any pending finalizers in the current Caramia context.------ Does nothing if current thread does not have a Caramia context or there are--- no pending finalizers.------ If any finalizer throws an exception (asynchronous or synchronous), the--- Caramia context dies and that exception is propagated upwards.--- `runPendingFinalizers` itself runs `mask_` to run the finalizers with--- exceptions masked but you might still receive asynchronous exceptions with,--- for example, the `MVar` functions.------ A good place to call this is right after or before swapping buffers.-runPendingFinalizers :: IO ()-runPendingFinalizers = mask_ $ do- maybe_cid <- currentContextID- case maybe_cid of- Nothing -> return ()- Just cid -> do- finalizers <- atomicModifyIORef' pendingFinalizers $- IM.delete cid &&&- IM.findWithDefault (return ())- cid-- -- We scrap the Caramia context if any of these finalizers throw an- -- exception. The reason is that we cannot expect the OpenGL state- -- to be consistent anymore.- result <- try finalizers- case result of- Left exc -> scrapContext >> throwIO (exc :: SomeException)- Right () -> return ()- flushDebugMessages---- | Schedules a finalizer to be run in a Caramia context.------ Does nothing if given context is not alive anymore.------ This is typically called from Haskell garbage collector finalizers because--- they cannot do finalization there (Haskell finalizers are running in the--- wrong operating system thread).-scheduleFinalizer :: ContextID -> IO () -> IO ()-scheduleFinalizer cid finalizer =- atomicModifyIORef' pendingFinalizers $ \old ->- ( IM.insertWith- (flip (>>))- cid- finalizer- old, () )---- these are the pending OpenGL finalizers that wait for a time they can be--- safely run.-pendingFinalizers :: IORef (IM.IntMap (IO ()))-pendingFinalizers = unsafePerformIO $ newIORef IM.empty-{-# NOINLINE pendingFinalizers #-}-
− src/Caramia/Framebuffer.hs
@@ -1,302 +0,0 @@--- | Framebuffers. You can render on them.------ If you come from the OpenGL world, for simplicity, we have combined the--- concept of draw buffers and color attachments. Nth color attachment is bound--- exactly to Nth draw buffer. Caramia only talks about draw buffers.------ <https://www.opengl.org/wiki/Framebuffer_Object>-----{-# LANGUAGE NoImplicitPrelude, ViewPatterns, DeriveDataTypeable #-}--module Caramia.Framebuffer- (- -- * Creating framebuffers- newFramebuffer- , Framebuffer()- -- * Specifying texture targets- , frontTextureTarget- , mipmapTextureTarget- , layerTextureTarget- , TextureTarget()- , Attachment(..)- -- * Size query- , getDimensions- -- * Clearing framebuffers- , clear- , Clearing(..)- , clearing- -- * Special framebuffers- , screenFramebuffer- -- * Hardware limits- , getMaximumDrawBuffers- -- * Views- , viewTargets )- where--import Caramia.Prelude-import Caramia.Context-import Caramia.Color-import Caramia.Resource-import Caramia.Texture-import Caramia.Framebuffer.Internal-import qualified Caramia.Texture.Internal as Tex-import Caramia.ImageFormats-import Caramia.Internal.OpenGLCApi-import Control.Exception-import Data.List ( nub )-import Data.Bits-import System.IO.Unsafe-import Foreign.Storable-import Foreign.Marshal.Alloc-import Foreign.Marshal.Array-import Foreign.C.Types-import GHC.Float-import qualified Data.IntSet as IS---- | Returns the screen framebuffer.------ Note that all `screenFramebuffer`s are equal to each other with `Eq`, even--- those in unrelated Caramia contexts.------ This makes it easy to check if any framebuffer happens to be the screen--- framebuffer.-screenFramebuffer :: Framebuffer-screenFramebuffer = ScreenFramebuffer---- | Make a texture target that is the \"front\" of the given texture.------ This is the most common use case. \"front\" means the first texture in a--- texture array and the base layer mipmap level.-frontTextureTarget :: Tex.Texture -> TextureTarget-frontTextureTarget tex = TextureTarget {- attacher = \attachment ->- withResource (Tex.resource tex) $ \(Tex.Texture_ texname) ->- glFramebufferTexture- gl_DRAW_FRAMEBUFFER- attachment- texname- 0- , texture = tex }---- | Map a specific mipmlayer from a texture.-mipmapTextureTarget :: Tex.Texture- -> Int -- ^ Which mipmap layer?- -> TextureTarget-mipmapTextureTarget tex mipmap_layer = TextureTarget {- attacher = \attachment ->- withResource (Tex.resource tex) $ \(Tex.Texture_ texname) ->- glFramebufferTexture- gl_DRAW_FRAMEBUFFER- attachment- texname- (safeFromIntegral mipmap_layer)- , texture = tex }---- | Map a specific mipmap layer of a specific layer in a 3D or array texture.-layerTextureTarget :: Tex.Texture- -> Int -- ^ Which mipmap layer?- -> Int -- ^ Which topological layer?- -> TextureTarget-layerTextureTarget tex mipmap_layer topo_layer = TextureTarget {- attacher = \attachment ->- withResource (Tex.resource tex) $ \(Tex.Texture_ texname) ->- glFramebufferTextureLayer- gl_DRAW_FRAMEBUFFER- attachment- texname- (safeFromIntegral mipmap_layer)- (safeFromIntegral topo_layer)- , texture = tex }--runningIndices :: IORef Int-runningIndices = unsafePerformIO $ newIORef 0-{-# NOINLINE runningIndices #-}--toConstantA :: Attachment -> GLenum-toConstantA (ColorAttachment x) = gl_COLOR_ATTACHMENT0 + fromIntegral x-toConstantA DepthAttachment = gl_DEPTH_ATTACHMENT-toConstantA StencilAttachment = gl_STENCIL_ATTACHMENT---- | Creates a new framebuffer.-newFramebuffer :: [(Attachment, TextureTarget)]- -> IO Framebuffer-newFramebuffer targets- | null targets =- error "newFramebuffer: no texture targets specified."- | nub (fmap fst targets) /= fmap fst targets =- error "newFramebuffer: there are duplicate attachments."- | otherwise = mask_ $ do- max_bufs <- getMaximumDrawBuffers- targetsSanityCheck max_bufs-- res <- newResource (creator max_bufs)- deleter- (return ())- index <- atomicModifyIORef' runningIndices $ \old ->- ( old+1, old )- return Framebuffer { resource = res- , ordIndex = index- , viewTargets = targets- , dimensions = calculatedDimensions- , binder = withThisFramebuffer res- , setter = setThisFramebuffer res }- where- calculatedDimensions@(fw, fh) =- foldl' (\(lowest_w, lowest_h) (w, h) ->- (min lowest_w w, min lowest_h h))- (maxBound, maxBound)- (fmap (\(snd -> tex) ->- (viewWidth $ texture tex, viewHeight $ texture tex))- targets)-- creator max_bufs =- bracketOnError mglGenFramebuffer- mglDeleteFramebuffer $ \fbuf_name -> do- withBoundDrawFramebuffer fbuf_name $ do- forM_ targets $ \(index, tex) ->- attacher tex (toConstantA index)-- allocaArray max_bufs $ \buf_ptr -> do- forM_ [0..max_bufs-1] $ \bufnum ->- pokeElemOff buf_ptr bufnum $- if IS.member bufnum color_attachments- then gl_COLOR_ATTACHMENT0 +- fromIntegral bufnum- else gl_NONE- glDrawBuffers (fromIntegral max_bufs) buf_ptr-- return $ Framebuffer_ fbuf_name-- color_attachments :: IS.IntSet- color_attachments =- foldl' folder IS.empty (fmap fst targets)- where- folder :: IS.IntSet -> Attachment -> IS.IntSet- folder accum (ColorAttachment x) = IS.insert x accum- folder accum _ = accum-- deleter (Framebuffer_ fbuf_name) =- mglDeleteFramebuffer fbuf_name-- targetsSanityCheck max_bufs = forM_ targets $ \(attachment, target) -> do- let format = Tex.imageFormat $ Tex.viewSpecification $ texture target- unless (isRenderTargettable format) $- error $ "newFramebuffer: cannot render to " <> show format- case attachment of- ColorAttachment x | x < 0 || x >= max_bufs ->- error $ "newFramebuffer: color attachment " <> show x <>- " is out of range. Valid range is [0.." <>- show (max_bufs-1) <> "]."- ColorAttachment _ | not (isColorFormat format) ->- error $ "newFramebuffer: " <> show format <> " is not a " <>- "color format but was attempted to be attached to " <>- "attachment " <> show attachment <> "."- DepthAttachment | not (hasDepthComponent format) ->- error $ "newFramebuffer: " <> show format <> " has no " <>- "depth component but was attempted to be attached " <>- "to depth attachment."- StencilAttachment | not (hasStencilComponent format) ->- error $ "newFramebuffer: " <> show format <> " has no " <>- "stencil component but was attempted to be " <>- "attached to stencil attachment."- _ -> return ()-- setThisFramebuffer res = do- withResource res $ \(Framebuffer_ fbuf_name) ->- glBindFramebuffer gl_FRAMEBUFFER fbuf_name- glViewport 0 0 (fromIntegral fw) (fromIntegral fh)-- withThisFramebuffer res action = mask $ \restore -> do- old_draw_framebuffer <- gi gl_DRAW_FRAMEBUFFER_BINDING- old_read_framebuffer <- gi gl_READ_FRAMEBUFFER_BINDING- allocaArray 4 $ \viewport_ptr -> do- glGetIntegerv gl_VIEWPORT viewport_ptr- withResource res $ \(Framebuffer_ fbuf_name) -> do- glBindFramebuffer gl_FRAMEBUFFER fbuf_name- x <- peekElemOff viewport_ptr 0- y <- peekElemOff viewport_ptr 1- w <- peekElemOff viewport_ptr 2- h <- peekElemOff viewport_ptr 3- glViewport 0 0 (fromIntegral fw) (fromIntegral fh)- finally (restore action) $ do- glViewport x y w h- glBindFramebuffer gl_DRAW_FRAMEBUFFER old_draw_framebuffer- glBindFramebuffer gl_READ_FRAMEBUFFER old_read_framebuffer---- | Returns the maximum number of draw buffers in the current context.------ Almost all GPUs in the last few years have at least 8.-getMaximumDrawBuffers :: IO Int-getMaximumDrawBuffers = do- _ <- currentContextID- -- number of draw buffers- num_drawbuffers <- gi gl_MAX_DRAW_BUFFERS- -- number of attachments- num_attachments <- gi gl_MAX_COLOR_ATTACHMENTS- return (fromIntegral $ min num_drawbuffers num_attachments)---- | Specifies what to clear in a `clear` invocation.------ Use `clearing` smart constructor instead for forward-compatibility.------ Each member of this data type is a `Maybe` value; if any value is `Just`--- then that value is cleared, otherwise it is not touched.-data Clearing = Clearing- { clearDepth :: !(Maybe Float)- -- ^ Clear depth buffer to this value.- , clearStencil :: !(Maybe Int32)- -- ^ Clear stencil buffer to this value.- , clearColor :: !(Maybe Color)- -- ^ Clear (all) color buffers to some color.- }- deriving ( Eq, Ord, Show, Read, Typeable )---- TODO: selective clearing for different color buffers.---- | Smart constructor for `Clearing`. All members are `Nothing`.-clearing :: Clearing-clearing = Clearing { clearDepth = Nothing- , clearStencil = Nothing- , clearColor = Nothing }---- | Clears values in a framebuffer.-clear :: Clearing -> Framebuffer -> IO ()-clear clearing fbuf = withBinding fbuf $ mask_ $- recColor (clearColor clearing)- where- bits = maybe 0 (const gl_COLOR_BUFFER_BIT) (clearColor clearing) .|.- maybe 0 (const gl_DEPTH_BUFFER_BIT) (clearDepth clearing) .|.- maybe 0 (const gl_STENCIL_BUFFER_BIT) (clearStencil clearing)-- recColor Nothing = recDepth (clearDepth clearing)- recColor (Just (viewRgba -> (r, g, b, a))) =- allocaArray 4 $ \ptr -> do- glGetFloatv gl_COLOR_CLEAR_VALUE ptr- glClearColor (CFloat r)- (CFloat g)- (CFloat b)- (CFloat a)- recDepth (clearDepth clearing)- nr <- peekElemOff ptr 0- ng <- peekElemOff ptr 1- nb <- peekElemOff ptr 2- na <- peekElemOff ptr 3- glClearColor (nr :: CFloat) ng nb na-- recDepth Nothing = recStencil (clearStencil clearing)- recDepth (Just depth) = do- old_depth <- alloca $ \ptr ->- glGetDoublev gl_DEPTH_CLEAR_VALUE ptr *> peek ptr- glClearDepth (CDouble $ float2Double depth)- recStencil (clearStencil clearing)- glClearDepth old_depth-- recStencil Nothing = glClear bits- recStencil (Just stencil) = do- old_stencil <- alloca $ \ptr ->- glGetIntegerv gl_STENCIL_CLEAR_VALUE ptr *> peek ptr- glClearStencil (safeFromIntegral stencil)- glClear bits- glClearStencil old_stencil-
− src/Caramia/Framebuffer/Internal.hs
@@ -1,87 +0,0 @@-{-# LANGUAGE RankNTypes, NoImplicitPrelude, DeriveDataTypeable #-}--module Caramia.Framebuffer.Internal where--import Caramia.Prelude--import Caramia.Resource-import Caramia.Internal.OpenGLCApi-import qualified Caramia.Texture.Internal as Tex-import Control.Exception-import Foreign--data Framebuffer =- ScreenFramebuffer- | Framebuffer {- resource :: !(Resource Framebuffer_)- , ordIndex :: !Int- , viewTargets :: [(Attachment, TextureTarget)]- , dimensions :: !(Int, Int)- , binder :: forall a. IO a -> IO a- , setter :: IO ()- }- deriving ( Typeable )--data Attachment = ColorAttachment !Int- | DepthAttachment- | StencilAttachment- deriving ( Eq, Ord, Show, Read, Typeable )--instance Eq Framebuffer where- ScreenFramebuffer == ScreenFramebuffer = True- ScreenFramebuffer == _ = False- _ == ScreenFramebuffer = False- fbuf1 == fbuf2 = resource fbuf1 == resource fbuf2--instance Ord Framebuffer where- ScreenFramebuffer `compare` ScreenFramebuffer = EQ- ScreenFramebuffer `compare` _ = LT- _ `compare` ScreenFramebuffer = GT- fbuf1 `compare` fbuf2 = ordIndex fbuf1 `compare` ordIndex fbuf2--newtype Framebuffer_ = Framebuffer_ GLuint--data TextureTarget = TextureTarget- { attacher :: GLuint -> IO ()- , texture :: Tex.Texture }--setBinding :: Framebuffer -> IO ()-setBinding ScreenFramebuffer = do- (w, h) <- getDimensions ScreenFramebuffer- glBindFramebuffer gl_FRAMEBUFFER 0- glViewport 0 0 (fromIntegral w) (fromIntegral h)-setBinding fbuf = setter fbuf--withBinding :: Framebuffer -> IO a -> IO a-withBinding ScreenFramebuffer action =- allocaArray 4 $ \viewport_ptr -> do- glGetIntegerv gl_VIEWPORT viewport_ptr- ox <- peekElemOff viewport_ptr 0- oy <- peekElemOff viewport_ptr 1- ow <- peekElemOff viewport_ptr 2- oh <- peekElemOff viewport_ptr 3- (w, h) <- getDimensions ScreenFramebuffer- old_draw <- gi gl_DRAW_FRAMEBUFFER_BINDING- old_read <- gi gl_READ_FRAMEBUFFER_BINDING- finally (glBindFramebuffer gl_FRAMEBUFFER 0 >>- glViewport 0 0 (fromIntegral w) (fromIntegral h) >>- action) $ do- glViewport ox oy ow oh- glBindFramebuffer gl_DRAW_FRAMEBUFFER old_draw- glBindFramebuffer gl_READ_FRAMEBUFFER old_read-withBinding fbuf action = binder fbuf action---- | Returns the size of a framebuffer.------ This is an `IO` action because it can change for the screen framebuffer.-getDimensions :: Framebuffer -> IO (Int, Int)-getDimensions ScreenFramebuffer =- allocaArray 4 $ \vptr -> do- glGetIntegerv gl_VIEWPORT vptr- w <- peekElemOff vptr 2- h <- peekElemOff vptr 3- return (fromIntegral w, fromIntegral h)-getDimensions fbuf = return $ dimensions fbuf-{-# INLINE getDimensions #-}--
− src/Caramia/ImageFormats.hs
@@ -1,18 +0,0 @@-module Caramia.ImageFormats- (- -- * Image formats- ImageFormat(..)- , isRenderTargettable- , isCompressed- , isColorFormat- , isSRGBFormat- , hasDepthComponent- , hasStencilComponent- -- * Specification types- , SpecificationType(..)- , sizeOfSpecificationType- , SpecificationTypeable(..) )- where--import Caramia.ImageFormats.Internal-
− src/Caramia/ImageFormats/Internal.hs
@@ -1,328 +0,0 @@--- | This module contains data types that describe the data formats of images.------ <https://www.opengl.org/wiki/Image_Format>-----{-# LANGUAGE DeriveDataTypeable, NoImplicitPrelude #-}--module Caramia.ImageFormats.Internal where--import Caramia.Prelude--import Caramia.Internal.OpenGLCApi-import Foreign.C.Types---- | Given a format, returns `True` if that format can be rendered to. That is,--- if it can be one of the targets in a framebuffer.------ This is conservative. Sometimes you may be able to render anyway; however--- this is not guaranteed by the OpenGL specification.-isRenderTargettable :: ImageFormat -> Bool-isRenderTargettable R8 = True-isRenderTargettable R8I = True-isRenderTargettable R8UI = True-isRenderTargettable R16 = True-isRenderTargettable R16I = True-isRenderTargettable R16UI = True-isRenderTargettable R16F = True-isRenderTargettable R32F = True-isRenderTargettable R32I = True-isRenderTargettable R32UI = True-isRenderTargettable RG8 = True-isRenderTargettable RG8I = True-isRenderTargettable RG8UI = True-isRenderTargettable RG16 = True-isRenderTargettable RG16I = True-isRenderTargettable RG16UI = True-isRenderTargettable RG16F = True-isRenderTargettable RG32F = True-isRenderTargettable RG32I = True-isRenderTargettable RG32UI = True-isRenderTargettable R11F_G11F_B10F = True-isRenderTargettable RGB8 = True-isRenderTargettable RGBA32F = True-isRenderTargettable RGBA32I = True-isRenderTargettable RGBA32UI = True-isRenderTargettable RGBA16 = True-isRenderTargettable RGBA16F = True-isRenderTargettable RGBA16I = True-isRenderTargettable RGBA16UI = True-isRenderTargettable RGBA8 = True-isRenderTargettable RGBA8UI = True-isRenderTargettable SRGB8_ALPHA8 = True-isRenderTargettable RGB10_A2 = True-isRenderTargettable DEPTH_COMPONENT32 = True-isRenderTargettable DEPTH_COMPONENT32F = True-isRenderTargettable DEPTH_COMPONENT24 = True-isRenderTargettable DEPTH_COMPONENT16 = True-isRenderTargettable DEPTH32F_STENCIL8 = True-isRenderTargettable DEPTH24_STENCIL8 = True-isRenderTargettable _ = False---- | Returns true if the given format is a compressed format.-isCompressed :: ImageFormat -> Bool-isCompressed COMPRESSED_RG_RGTC2 = True-isCompressed COMPRESSED_SIGNED_RG_RGTC2 = True-isCompressed COMPRESSED_RED_RGTC1 = True-isCompressed COMPRESSED_SIGNED_RED_RGTC1 = True-isCompressed COMPRESSED_RGB_S3TC_DXT1 = True-isCompressed COMPRESSED_RGBA_S3TC_DXT1 = True-isCompressed COMPRESSED_RGBA_S3TC_DXT3 = True-isCompressed COMPRESSED_RGBA_S3TC_DXT5 = True-isCompressed COMPRESSED_SRGB_S3TC_DXT1 = True-isCompressed COMPRESSED_SRGB_ALPHA_S3TC_DXT1 = True-isCompressed COMPRESSED_SRGB_ALPHA_S3TC_DXT3 = True-isCompressed COMPRESSED_SRGB_ALPHA_S3TC_DXT5 = True-isCompressed _ = False---- | Returns true if the given format is a color format.-isColorFormat :: ImageFormat -> Bool-isColorFormat DEPTH_COMPONENT32 = False-isColorFormat DEPTH_COMPONENT32F = False-isColorFormat DEPTH_COMPONENT24 = False-isColorFormat DEPTH_COMPONENT16 = False-isColorFormat DEPTH32F_STENCIL8 = False-isColorFormat DEPTH24_STENCIL8 = False-isColorFormat _ = True---- | Returns true if the given format has a depth component.-hasDepthComponent :: ImageFormat -> Bool-hasDepthComponent DEPTH_COMPONENT32 = True-hasDepthComponent DEPTH_COMPONENT32F = True-hasDepthComponent DEPTH_COMPONENT24 = True-hasDepthComponent DEPTH_COMPONENT16 = True-hasDepthComponent DEPTH32F_STENCIL8 = True-hasDepthComponent DEPTH24_STENCIL8 = True-hasDepthComponent _ = False---- | Returns true if the given format has a stencil component.-hasStencilComponent :: ImageFormat -> Bool-hasStencilComponent DEPTH32F_STENCIL8 = True-hasStencilComponent DEPTH24_STENCIL8 = True-hasStencilComponent _ = False---- | Returns true if the given format uses the sRGB color space.------ If the format is not a color format, returns `False`.-isSRGBFormat :: ImageFormat -> Bool-isSRGBFormat SRGB8_ALPHA8 = True-isSRGBFormat SRGB8 = True-isSRGBFormat COMPRESSED_SRGB_S3TC_DXT1 = True-isSRGBFormat COMPRESSED_SRGB_ALPHA_S3TC_DXT1 = True-isSRGBFormat COMPRESSED_SRGB_ALPHA_S3TC_DXT3 = True-isSRGBFormat COMPRESSED_SRGB_ALPHA_S3TC_DXT5 = True-isSRGBFormat _ = False---- | All the various internal formats.------ This list corresponds to the OpenGL specification of 3.3, required texture--- formats (+ S3TC compressed formats). Check the OpenGL specification for--- explanations on how these formats work.-data ImageFormat =- R8- | R8I- | R8UI- | R16- | R16I- | R16UI- | R16F- | R32F- | R32I- | R32UI- | RG8- | RG8I- | RG8UI- | RG16- | RG16I- | RG16UI- | RG16F- | RG32F- | RG32I- | RG32UI- | R11F_G11F_B10F- | RGBA32F- | RGBA32I- | RGBA32UI- | RGBA16- | RGBA16F- | RGBA16I- | RGBA16UI- | RGBA8- | RGBA8UI- | SRGB8_ALPHA8- | RGB10_A2- | RGB32F- | RGB32I- | RGB32UI- | RGB16F- | RGB16I- | RGB16UI- | RGB16- | RGB8- | RGB8I- | RGB8UI- | SRGB8- | RGB9_E5- | COMPRESSED_RG_RGTC2- | COMPRESSED_SIGNED_RG_RGTC2- | COMPRESSED_RED_RGTC1- | COMPRESSED_SIGNED_RED_RGTC1- | COMPRESSED_RGB_S3TC_DXT1- | COMPRESSED_RGBA_S3TC_DXT1- | COMPRESSED_RGBA_S3TC_DXT3- | COMPRESSED_RGBA_S3TC_DXT5- | COMPRESSED_SRGB_S3TC_DXT1- | COMPRESSED_SRGB_ALPHA_S3TC_DXT1- | COMPRESSED_SRGB_ALPHA_S3TC_DXT3- | COMPRESSED_SRGB_ALPHA_S3TC_DXT5- | DEPTH_COMPONENT32- | DEPTH_COMPONENT32F- | DEPTH_COMPONENT24- | DEPTH_COMPONENT16- | DEPTH32F_STENCIL8- | DEPTH24_STENCIL8- deriving ( Eq, Ord, Show, Read, Typeable )--toConstantIF :: ImageFormat -> GLenum-toConstantIF R8 = gl_R8-toConstantIF R8I = gl_R8I-toConstantIF R8UI = gl_R8UI-toConstantIF R16 = gl_R16-toConstantIF R16I = gl_R16I-toConstantIF R16UI = gl_R16UI-toConstantIF R16F = gl_R16F-toConstantIF R32F = gl_R32F-toConstantIF R32I = gl_R32I-toConstantIF R32UI = gl_R32UI-toConstantIF RG8 = gl_RG8-toConstantIF RG8I = gl_RG8I-toConstantIF RG8UI = gl_RG8UI-toConstantIF RG16 = gl_RG16-toConstantIF RG16I = gl_RG16I-toConstantIF RG16UI = gl_RG16UI-toConstantIF RG16F = gl_RG16F-toConstantIF RG32F = gl_RG32F-toConstantIF RG32I = gl_RG32I-toConstantIF RG32UI = gl_RG32UI-toConstantIF R11F_G11F_B10F = gl_R11F_G11F_B10F-toConstantIF RGBA32F = gl_RGBA32F-toConstantIF RGBA32I = gl_RGBA32I-toConstantIF RGBA32UI = gl_RGBA32UI-toConstantIF RGBA16 = gl_RGBA16-toConstantIF RGBA16F = gl_RGBA16F-toConstantIF RGBA16I = gl_RGBA16I-toConstantIF RGBA16UI = gl_RGBA16UI-toConstantIF RGBA8 = gl_RGBA8-toConstantIF RGBA8UI = gl_RGBA8UI-toConstantIF SRGB8_ALPHA8 = gl_SRGB8_ALPHA8-toConstantIF RGB10_A2 = gl_RGB10_A2-toConstantIF RGB32F = gl_RGB32F-toConstantIF RGB32I = gl_RGB32I-toConstantIF RGB32UI = gl_RGB32UI-toConstantIF RGB16F = gl_RGB16F-toConstantIF RGB16I = gl_RGB16I-toConstantIF RGB16UI = gl_RGB16UI-toConstantIF RGB16 = gl_RGB16-toConstantIF RGB8 = gl_RGB8-toConstantIF RGB8I = gl_RGB8I-toConstantIF RGB8UI = gl_RGB8UI-toConstantIF SRGB8 = gl_SRGB8-toConstantIF RGB9_E5 = gl_RGB9_E5-toConstantIF COMPRESSED_RG_RGTC2 = gl_COMPRESSED_RG_RGTC2-toConstantIF COMPRESSED_SIGNED_RG_RGTC2 = gl_COMPRESSED_SIGNED_RG_RGTC2-toConstantIF COMPRESSED_RED_RGTC1 = gl_COMPRESSED_RED_RGTC1-toConstantIF COMPRESSED_SIGNED_RED_RGTC1 = gl_COMPRESSED_SIGNED_RED_RGTC1-toConstantIF COMPRESSED_RGB_S3TC_DXT1 = gl_COMPRESSED_RGB_S3TC_DXT1_EXT-toConstantIF COMPRESSED_RGBA_S3TC_DXT1 = gl_COMPRESSED_RGBA_S3TC_DXT1_EXT-toConstantIF COMPRESSED_RGBA_S3TC_DXT3 = gl_COMPRESSED_RGBA_S3TC_DXT3_EXT-toConstantIF COMPRESSED_RGBA_S3TC_DXT5 = gl_COMPRESSED_RGBA_S3TC_DXT5_EXT-toConstantIF COMPRESSED_SRGB_S3TC_DXT1 = gl_COMPRESSED_SRGB_S3TC_DXT1_EXT-toConstantIF COMPRESSED_SRGB_ALPHA_S3TC_DXT1 =- gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT-toConstantIF COMPRESSED_SRGB_ALPHA_S3TC_DXT3 =- gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT-toConstantIF COMPRESSED_SRGB_ALPHA_S3TC_DXT5 =- gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT-toConstantIF DEPTH_COMPONENT32 = gl_DEPTH_COMPONENT32-toConstantIF DEPTH_COMPONENT32F = gl_DEPTH_COMPONENT32F-toConstantIF DEPTH_COMPONENT24 = gl_DEPTH_COMPONENT24-toConstantIF DEPTH_COMPONENT16 = gl_DEPTH_COMPONENT16-toConstantIF DEPTH32F_STENCIL8 = gl_DEPTH32F_STENCIL8-toConstantIF DEPTH24_STENCIL8 = gl_DEPTH24_STENCIL8---- | Specification formats.------ These formats specify the type of the data passed from Haskell to GPU.-data SpecificationType =- FWord8- | FWord16- | FWord32- | FInt8- | FInt16- | FInt32- | FFloat- | FHalfFloat- deriving ( Eq, Ord, Show, Read, Typeable )--toConstantST :: SpecificationType -> GLenum-toConstantST FWord8 = gl_UNSIGNED_BYTE-toConstantST FWord16 = gl_UNSIGNED_SHORT-toConstantST FWord32 = gl_UNSIGNED_INT-toConstantST FInt8 = gl_BYTE-toConstantST FInt16 = gl_SHORT-toConstantST FInt32 = gl_INT-toConstantST FFloat = gl_FLOAT-toConstantST FHalfFloat = gl_HALF_FLOAT---- TODO: add special interpretation formats to `SpecificationType`.------- | Given a specification format, returns the number of bytes one element--- uses.-sizeOfSpecificationType :: SpecificationType -> Int-sizeOfSpecificationType FWord8 = 1-sizeOfSpecificationType FWord16 = 2-sizeOfSpecificationType FWord32 = 2-sizeOfSpecificationType FInt8 = 1-sizeOfSpecificationType FInt16 = 2-sizeOfSpecificationType FInt32 = 4-sizeOfSpecificationType FFloat = 4-sizeOfSpecificationType FHalfFloat = 2---- | Class that turns Haskell types into `SpecificationType`.-class SpecificationTypeable a where- -- | Returns the corresponding `SpecificationType` for a Haskell type.- toSpecificationType :: a -- ^ Used to pass the type; not evaluated.- -> SpecificationType--instance SpecificationTypeable Word8 where- toSpecificationType _ = FWord8--instance SpecificationTypeable Word16 where- toSpecificationType _ = FWord16--instance SpecificationTypeable Word32 where- toSpecificationType _ = FWord32--instance SpecificationTypeable Int8 where- toSpecificationType _ = FInt8--instance SpecificationTypeable Int16 where- toSpecificationType _ = FInt16--instance SpecificationTypeable Int32 where- toSpecificationType _ = FInt32--instance SpecificationTypeable CInt where- toSpecificationType _ = FInt32--instance SpecificationTypeable CUInt where- toSpecificationType _ = FWord32--instance SpecificationTypeable Float where- toSpecificationType _ = FFloat--instance SpecificationTypeable CFloat where- toSpecificationType _ = FFloat--
− src/Caramia/Internal/ContextLocalData.hs
@@ -1,121 +0,0 @@-{-# LANGUAGE NoImplicitPrelude, ScopedTypeVariables #-}--module Caramia.Internal.ContextLocalData- ( storeContextLocalData- , retrieveContextLocalData- , currentContextID- , nextContextID- , runningContexts- , contextLocalData- , ContextID )- where--import Caramia.Prelude-import qualified Data.IntMap.Strict as IM-import qualified Data.Map.Strict as M-import System.IO.Unsafe-import Data.Dynamic-import Control.Concurrent---- | The type of a Caramia context ID.-type ContextID = Int---- currently running contexts, map from thread IDs to context IDs-runningContexts :: IORef (M.Map ThreadId ContextID)-runningContexts = unsafePerformIO $ newIORef M.empty-{-# NOINLINE runningContexts #-}---- used to give out new unique context IDs-nextContextID :: IORef ContextID-nextContextID = unsafePerformIO $ newIORef 0-{-# NOINLINE nextContextID #-}---- context local data. This is like poor man's thread local storage but for--- contexts.------ The `TypeRep` and `Dynamic` lets this module be agnostic to what other--- modules hang on to thread local data.------ Other modules can specify a type that there should be only one per context.--- And this type's TypeRep is stored/queried from the map below.-contextLocalData :: IORef (IM.IntMap (M.Map TypeRep Dynamic))-contextLocalData = unsafePerformIO $ newIORef IM.empty-{-# NOINLINE contextLocalData #-}---- | Returns the current Caramia context ID.------ The context ID is unique between different calls to `giveContext`.------ Returns `Nothing` if there is no context active.-currentContextID :: IO (Maybe ContextID)-currentContextID =- M.lookup <$> myThreadId <*> readIORef runningContexts-{-# INLINE currentContextID #-}---- | Stores a context local value.------ The type of the given value is used as a key. This means that if a value of--- the same type was stored before, that value is thrown away and replaced with--- this new value you just gave.------ The value is evaluated to WHNF.------ You don't need this function to work with context local data.--- `retrieveContextLocalData` is sufficient as it also lets you set a default--- value in case a value was not already set.------ Context local data is wiped to oblivion once `giveContext` ends.-storeContextLocalData :: Typeable a => a -> IO ()-storeContextLocalData value =- maybe (error "storeContextLocalData: not in a context.")- (\cid ->- atomicModifyIORef' contextLocalData $ \old ->- ( IM.alter (Just . maybe (M.singleton- (typeOf value)- (toDyn value))- (M.insert (typeOf value)- (toDyn value)))- cid- old- , () ) )- =<< currentContextID-{-# INLINE storeContextLocalData #-}---- | Retrieves a context local value.------ See `storeContextLocalData`.-retrieveContextLocalData :: forall a. Typeable a- => IO a -- ^ Default value generating action; not- -- evaluated if there was already a value- -- stored.- -> IO a-retrieveContextLocalData defvalue =- maybe (error "retrieveContextLocalData: not in a context.")- (\cid -> do- -- No need to care about IORef race conditions because all- -- functions operating on a certain context ID will be- -- run in the same thread, sequentially.- snapshot <- readIORef contextLocalData- case IM.lookup cid snapshot of- Nothing -> do- val <- dyndefvalue- atomicModifyIORef' contextLocalData $ \old ->- ( IM.insert cid (M.singleton typ val) old- , fromDyn val undefined )- Just old_map ->- case M.lookup typ old_map of- Nothing -> do- val <- dyndefvalue- atomicModifyIORef' contextLocalData $ \old ->- ( IM.adjust (M.insert typ val)- cid- old- , fromDyn val undefined )- Just value -> return (fromDyn value undefined))- =<< currentContextID- where- typ = typeOf (undefined :: a)- dyndefvalue = toDyn <$> defvalue-{-# INLINEABLE retrieveContextLocalData #-}--
− src/Caramia/Internal/FlextGL.hs
@@ -1,28572 +0,0 @@-{-# LANGUAGE CPP, ForeignFunctionInterface, EmptyDataDecls #-}-#ifdef __GLASGOW_HASKELL__-{-# LANGUAGE DeriveDataTypeable, StandaloneDeriving #-}-#endif--- WARNING: This file was automatically generated--- Do not edit.----module Caramia.Internal.FlextGL- ( flextInit- , FlextInitResult(..)- , has_GL_ARB_texture_storage- , has_GL_KHR_debug- , has_GL_EXT_direct_state_access- , has_GL_ARB_buffer_storage- , has_GL_ARB_separate_shader_objects- , has_GL_ATI_meminfo- , has_GL_NVX_gpu_memory_info- , has_GL_ARB_invalidate_subdata- , glCullFace- , glFrontFace- , glHint- , glLineWidth- , glPointSize- , glPolygonMode- , glScissor- , glTexParameterf- , glTexParameterfv- , glTexParameteri- , glTexParameteriv- , glTexImage1D- , glTexImage2D- , glDrawBuffer- , glClear- , glClearColor- , glClearStencil- , glClearDepth- , glStencilMask- , glColorMask- , glDepthMask- , glDisable- , glEnable- , glFinish- , glFlush- , glBlendFunc- , glLogicOp- , glStencilFunc- , glStencilOp- , glDepthFunc- , glPixelStoref- , glPixelStorei- , glReadBuffer- , glReadPixels- , glGetBooleanv- , glGetDoublev- , glGetError- , glGetFloatv- , glGetIntegerv- , glGetString- , glGetTexImage- , glGetTexParameterfv- , glGetTexParameteriv- , glGetTexLevelParameterfv- , glGetTexLevelParameteriv- , glIsEnabled- , glDepthRange- , glViewport- , glDrawArrays- , glDrawElements- , glPolygonOffset- , glCopyTexImage1D- , glCopyTexImage2D- , glCopyTexSubImage1D- , glCopyTexSubImage2D- , glTexSubImage1D- , glTexSubImage2D- , glBindTexture- , glDeleteTextures- , glGenTextures- , glIsTexture- , glDrawRangeElements- , glTexImage3D- , glTexSubImage3D- , glCopyTexSubImage3D- , glActiveTexture- , glSampleCoverage- , glCompressedTexImage3D- , glCompressedTexImage2D- , glCompressedTexImage1D- , glCompressedTexSubImage3D- , glCompressedTexSubImage2D- , glCompressedTexSubImage1D- , glGetCompressedTexImage- , glBlendFuncSeparate- , glMultiDrawArrays- , glMultiDrawElements- , glPointParameterf- , glPointParameterfv- , glPointParameteri- , glPointParameteriv- , glBlendColor- , glBlendEquation- , glGenQueries- , glDeleteQueries- , glIsQuery- , glBeginQuery- , glEndQuery- , glGetQueryiv- , glGetQueryObjectiv- , glGetQueryObjectuiv- , glBindBuffer- , glDeleteBuffers- , glGenBuffers- , glIsBuffer- , glBufferData- , glBufferSubData- , glGetBufferSubData- , glMapBuffer- , glUnmapBuffer- , glGetBufferParameteriv- , glGetBufferPointerv- , glBlendEquationSeparate- , glDrawBuffers- , glStencilOpSeparate- , glStencilFuncSeparate- , glStencilMaskSeparate- , glAttachShader- , glBindAttribLocation- , glCompileShader- , glCreateProgram- , glCreateShader- , glDeleteProgram- , glDeleteShader- , glDetachShader- , glDisableVertexAttribArray- , glEnableVertexAttribArray- , glGetActiveAttrib- , glGetActiveUniform- , glGetAttachedShaders- , glGetAttribLocation- , glGetProgramiv- , glGetProgramInfoLog- , glGetShaderiv- , glGetShaderInfoLog- , glGetShaderSource- , glGetUniformLocation- , glGetUniformfv- , glGetUniformiv- , glGetVertexAttribdv- , glGetVertexAttribfv- , glGetVertexAttribiv- , glGetVertexAttribPointerv- , glIsProgram- , glIsShader- , glLinkProgram- , glShaderSource- , glUseProgram- , glUniform1f- , glUniform2f- , glUniform3f- , glUniform4f- , glUniform1i- , glUniform2i- , glUniform3i- , glUniform4i- , glUniform1fv- , glUniform2fv- , glUniform3fv- , glUniform4fv- , glUniform1iv- , glUniform2iv- , glUniform3iv- , glUniform4iv- , glUniformMatrix2fv- , glUniformMatrix3fv- , glUniformMatrix4fv- , glValidateProgram- , glVertexAttrib1d- , glVertexAttrib1dv- , glVertexAttrib1f- , glVertexAttrib1fv- , glVertexAttrib1s- , glVertexAttrib1sv- , glVertexAttrib2d- , glVertexAttrib2dv- , glVertexAttrib2f- , glVertexAttrib2fv- , glVertexAttrib2s- , glVertexAttrib2sv- , glVertexAttrib3d- , glVertexAttrib3dv- , glVertexAttrib3f- , glVertexAttrib3fv- , glVertexAttrib3s- , glVertexAttrib3sv- , glVertexAttrib4Nbv- , glVertexAttrib4Niv- , glVertexAttrib4Nsv- , glVertexAttrib4Nub- , glVertexAttrib4Nubv- , glVertexAttrib4Nuiv- , glVertexAttrib4Nusv- , glVertexAttrib4bv- , glVertexAttrib4d- , glVertexAttrib4dv- , glVertexAttrib4f- , glVertexAttrib4fv- , glVertexAttrib4iv- , glVertexAttrib4s- , glVertexAttrib4sv- , glVertexAttrib4ubv- , glVertexAttrib4uiv- , glVertexAttrib4usv- , glVertexAttribPointer- , glUniformMatrix2x3fv- , glUniformMatrix3x2fv- , glUniformMatrix2x4fv- , glUniformMatrix4x2fv- , glUniformMatrix3x4fv- , glUniformMatrix4x3fv- , glColorMaski- , glGetBooleani_v- , glGetIntegeri_v- , glEnablei- , glDisablei- , glIsEnabledi- , glBeginTransformFeedback- , glEndTransformFeedback- , glBindBufferRange- , glBindBufferBase- , glTransformFeedbackVaryings- , glGetTransformFeedbackVarying- , glClampColor- , glBeginConditionalRender- , glEndConditionalRender- , glVertexAttribIPointer- , glGetVertexAttribIiv- , glGetVertexAttribIuiv- , glVertexAttribI1i- , glVertexAttribI2i- , glVertexAttribI3i- , glVertexAttribI4i- , glVertexAttribI1ui- , glVertexAttribI2ui- , glVertexAttribI3ui- , glVertexAttribI4ui- , glVertexAttribI1iv- , glVertexAttribI2iv- , glVertexAttribI3iv- , glVertexAttribI4iv- , glVertexAttribI1uiv- , glVertexAttribI2uiv- , glVertexAttribI3uiv- , glVertexAttribI4uiv- , glVertexAttribI4bv- , glVertexAttribI4sv- , glVertexAttribI4ubv- , glVertexAttribI4usv- , glGetUniformuiv- , glBindFragDataLocation- , glGetFragDataLocation- , glUniform1ui- , glUniform2ui- , glUniform3ui- , glUniform4ui- , glUniform1uiv- , glUniform2uiv- , glUniform3uiv- , glUniform4uiv- , glTexParameterIiv- , glTexParameterIuiv- , glGetTexParameterIiv- , glGetTexParameterIuiv- , glClearBufferiv- , glClearBufferuiv- , glClearBufferfv- , glClearBufferfi- , glGetStringi- , glIsRenderbuffer- , glBindRenderbuffer- , glDeleteRenderbuffers- , glGenRenderbuffers- , glRenderbufferStorage- , glGetRenderbufferParameteriv- , glIsFramebuffer- , glBindFramebuffer- , glDeleteFramebuffers- , glGenFramebuffers- , glCheckFramebufferStatus- , glFramebufferTexture1D- , glFramebufferTexture2D- , glFramebufferTexture3D- , glFramebufferRenderbuffer- , glGetFramebufferAttachmentParameteriv- , glGenerateMipmap- , glBlitFramebuffer- , glRenderbufferStorageMultisample- , glFramebufferTextureLayer- , glMapBufferRange- , glFlushMappedBufferRange- , glBindVertexArray- , glDeleteVertexArrays- , glGenVertexArrays- , glIsVertexArray- , glDrawArraysInstanced- , glDrawElementsInstanced- , glTexBuffer- , glPrimitiveRestartIndex- , glCopyBufferSubData- , glGetUniformIndices- , glGetActiveUniformsiv- , glGetActiveUniformName- , glGetUniformBlockIndex- , glGetActiveUniformBlockiv- , glGetActiveUniformBlockName- , glUniformBlockBinding- , glDrawElementsBaseVertex- , glDrawRangeElementsBaseVertex- , glDrawElementsInstancedBaseVertex- , glMultiDrawElementsBaseVertex- , glProvokingVertex- , glFenceSync- , glIsSync- , glDeleteSync- , glClientWaitSync- , glWaitSync- , glGetInteger64v- , glGetSynciv- , glGetInteger64i_v- , glGetBufferParameteri64v- , glFramebufferTexture- , glTexImage2DMultisample- , glTexImage3DMultisample- , glGetMultisamplefv- , glSampleMaski- , glBindFragDataLocationIndexed- , glGetFragDataIndex- , glGenSamplers- , glDeleteSamplers- , glIsSampler- , glBindSampler- , glSamplerParameteri- , glSamplerParameteriv- , glSamplerParameterf- , glSamplerParameterfv- , glSamplerParameterIiv- , glSamplerParameterIuiv- , glGetSamplerParameteriv- , glGetSamplerParameterIiv- , glGetSamplerParameterfv- , glGetSamplerParameterIuiv- , glQueryCounter- , glGetQueryObjecti64v- , glGetQueryObjectui64v- , glVertexAttribDivisor- , glVertexAttribP1ui- , glVertexAttribP1uiv- , glVertexAttribP2ui- , glVertexAttribP2uiv- , glVertexAttribP3ui- , glVertexAttribP3uiv- , glVertexAttribP4ui- , glVertexAttribP4uiv- , glTexStorage1D- , glTexStorage2D- , glTexStorage3D- , glDebugMessageControl- , glDebugMessageInsert- , glDebugMessageCallback- , glGetDebugMessageLog- , glPushDebugGroup- , glPopDebugGroup- , glObjectLabel- , glGetObjectLabel- , glObjectPtrLabel- , glGetObjectPtrLabel- , glGetPointerv- , glDebugMessageControlKHR- , glDebugMessageInsertKHR- , glDebugMessageCallbackKHR- , glGetDebugMessageLogKHR- , glPushDebugGroupKHR- , glPopDebugGroupKHR- , glObjectLabelKHR- , glGetObjectLabelKHR- , glObjectPtrLabelKHR- , glGetObjectPtrLabelKHR- , glGetPointervKHR- , glMatrixLoadfEXT- , glMatrixLoaddEXT- , glMatrixMultfEXT- , glMatrixMultdEXT- , glMatrixLoadIdentityEXT- , glMatrixRotatefEXT- , glMatrixRotatedEXT- , glMatrixScalefEXT- , glMatrixScaledEXT- , glMatrixTranslatefEXT- , glMatrixTranslatedEXT- , glMatrixFrustumEXT- , glMatrixOrthoEXT- , glMatrixPopEXT- , glMatrixPushEXT- , glClientAttribDefaultEXT- , glPushClientAttribDefaultEXT- , glTextureParameterfEXT- , glTextureParameterfvEXT- , glTextureParameteriEXT- , glTextureParameterivEXT- , glTextureImage1DEXT- , glTextureImage2DEXT- , glTextureSubImage1DEXT- , glTextureSubImage2DEXT- , glCopyTextureImage1DEXT- , glCopyTextureImage2DEXT- , glCopyTextureSubImage1DEXT- , glCopyTextureSubImage2DEXT- , glGetTextureImageEXT- , glGetTextureParameterfvEXT- , glGetTextureParameterivEXT- , glGetTextureLevelParameterfvEXT- , glGetTextureLevelParameterivEXT- , glTextureImage3DEXT- , glTextureSubImage3DEXT- , glCopyTextureSubImage3DEXT- , glBindMultiTextureEXT- , glMultiTexCoordPointerEXT- , glMultiTexEnvfEXT- , glMultiTexEnvfvEXT- , glMultiTexEnviEXT- , glMultiTexEnvivEXT- , glMultiTexGendEXT- , glMultiTexGendvEXT- , glMultiTexGenfEXT- , glMultiTexGenfvEXT- , glMultiTexGeniEXT- , glMultiTexGenivEXT- , glGetMultiTexEnvfvEXT- , glGetMultiTexEnvivEXT- , glGetMultiTexGendvEXT- , glGetMultiTexGenfvEXT- , glGetMultiTexGenivEXT- , glMultiTexParameteriEXT- , glMultiTexParameterivEXT- , glMultiTexParameterfEXT- , glMultiTexParameterfvEXT- , glMultiTexImage1DEXT- , glMultiTexImage2DEXT- , glMultiTexSubImage1DEXT- , glMultiTexSubImage2DEXT- , glCopyMultiTexImage1DEXT- , glCopyMultiTexImage2DEXT- , glCopyMultiTexSubImage1DEXT- , glCopyMultiTexSubImage2DEXT- , glGetMultiTexImageEXT- , glGetMultiTexParameterfvEXT- , glGetMultiTexParameterivEXT- , glGetMultiTexLevelParameterfvEXT- , glGetMultiTexLevelParameterivEXT- , glMultiTexImage3DEXT- , glMultiTexSubImage3DEXT- , glCopyMultiTexSubImage3DEXT- , glEnableClientStateIndexedEXT- , glDisableClientStateIndexedEXT- , glGetFloatIndexedvEXT- , glGetDoubleIndexedvEXT- , glGetPointerIndexedvEXT- , glEnableIndexedEXT- , glDisableIndexedEXT- , glIsEnabledIndexedEXT- , glGetIntegerIndexedvEXT- , glGetBooleanIndexedvEXT- , glCompressedTextureImage3DEXT- , glCompressedTextureImage2DEXT- , glCompressedTextureImage1DEXT- , glCompressedTextureSubImage3DEXT- , glCompressedTextureSubImage2DEXT- , glCompressedTextureSubImage1DEXT- , glGetCompressedTextureImageEXT- , glCompressedMultiTexImage3DEXT- , glCompressedMultiTexImage2DEXT- , glCompressedMultiTexImage1DEXT- , glCompressedMultiTexSubImage3DEXT- , glCompressedMultiTexSubImage2DEXT- , glCompressedMultiTexSubImage1DEXT- , glGetCompressedMultiTexImageEXT- , glMatrixLoadTransposefEXT- , glMatrixLoadTransposedEXT- , glMatrixMultTransposefEXT- , glMatrixMultTransposedEXT- , glNamedBufferDataEXT- , glNamedBufferSubDataEXT- , glMapNamedBufferEXT- , glUnmapNamedBufferEXT- , glGetNamedBufferParameterivEXT- , glGetNamedBufferPointervEXT- , glGetNamedBufferSubDataEXT- , glProgramUniform1fEXT- , glProgramUniform2fEXT- , glProgramUniform3fEXT- , glProgramUniform4fEXT- , glProgramUniform1iEXT- , glProgramUniform2iEXT- , glProgramUniform3iEXT- , glProgramUniform4iEXT- , glProgramUniform1fvEXT- , glProgramUniform2fvEXT- , glProgramUniform3fvEXT- , glProgramUniform4fvEXT- , glProgramUniform1ivEXT- , glProgramUniform2ivEXT- , glProgramUniform3ivEXT- , glProgramUniform4ivEXT- , glProgramUniformMatrix2fvEXT- , glProgramUniformMatrix3fvEXT- , glProgramUniformMatrix4fvEXT- , glProgramUniformMatrix2x3fvEXT- , glProgramUniformMatrix3x2fvEXT- , glProgramUniformMatrix2x4fvEXT- , glProgramUniformMatrix4x2fvEXT- , glProgramUniformMatrix3x4fvEXT- , glProgramUniformMatrix4x3fvEXT- , glTextureBufferEXT- , glMultiTexBufferEXT- , glTextureParameterIivEXT- , glTextureParameterIuivEXT- , glGetTextureParameterIivEXT- , glGetTextureParameterIuivEXT- , glMultiTexParameterIivEXT- , glMultiTexParameterIuivEXT- , glGetMultiTexParameterIivEXT- , glGetMultiTexParameterIuivEXT- , glProgramUniform1uiEXT- , glProgramUniform2uiEXT- , glProgramUniform3uiEXT- , glProgramUniform4uiEXT- , glProgramUniform1uivEXT- , glProgramUniform2uivEXT- , glProgramUniform3uivEXT- , glProgramUniform4uivEXT- , glNamedProgramLocalParameters4fvEXT- , glNamedProgramLocalParameterI4iEXT- , glNamedProgramLocalParameterI4ivEXT- , glNamedProgramLocalParametersI4ivEXT- , glNamedProgramLocalParameterI4uiEXT- , glNamedProgramLocalParameterI4uivEXT- , glNamedProgramLocalParametersI4uivEXT- , glGetNamedProgramLocalParameterIivEXT- , glGetNamedProgramLocalParameterIuivEXT- , glEnableClientStateiEXT- , glDisableClientStateiEXT- , glGetFloati_vEXT- , glGetDoublei_vEXT- , glGetPointeri_vEXT- , glNamedProgramStringEXT- , glNamedProgramLocalParameter4dEXT- , glNamedProgramLocalParameter4dvEXT- , glNamedProgramLocalParameter4fEXT- , glNamedProgramLocalParameter4fvEXT- , glGetNamedProgramLocalParameterdvEXT- , glGetNamedProgramLocalParameterfvEXT- , glGetNamedProgramivEXT- , glGetNamedProgramStringEXT- , glNamedRenderbufferStorageEXT- , glGetNamedRenderbufferParameterivEXT- , glNamedRenderbufferStorageMultisampleEXT- , glNamedRenderbufferStorageMultisampleCoverageEXT- , glCheckNamedFramebufferStatusEXT- , glNamedFramebufferTexture1DEXT- , glNamedFramebufferTexture2DEXT- , glNamedFramebufferTexture3DEXT- , glNamedFramebufferRenderbufferEXT- , glGetNamedFramebufferAttachmentParameterivEXT- , glGenerateTextureMipmapEXT- , glGenerateMultiTexMipmapEXT- , glFramebufferDrawBufferEXT- , glFramebufferDrawBuffersEXT- , glFramebufferReadBufferEXT- , glGetFramebufferParameterivEXT- , glNamedCopyBufferSubDataEXT- , glNamedFramebufferTextureEXT- , glNamedFramebufferTextureLayerEXT- , glNamedFramebufferTextureFaceEXT- , glTextureRenderbufferEXT- , glMultiTexRenderbufferEXT- , glVertexArrayVertexOffsetEXT- , glVertexArrayColorOffsetEXT- , glVertexArrayEdgeFlagOffsetEXT- , glVertexArrayIndexOffsetEXT- , glVertexArrayNormalOffsetEXT- , glVertexArrayTexCoordOffsetEXT- , glVertexArrayMultiTexCoordOffsetEXT- , glVertexArrayFogCoordOffsetEXT- , glVertexArraySecondaryColorOffsetEXT- , glVertexArrayVertexAttribOffsetEXT- , glVertexArrayVertexAttribIOffsetEXT- , glEnableVertexArrayEXT- , glDisableVertexArrayEXT- , glEnableVertexArrayAttribEXT- , glDisableVertexArrayAttribEXT- , glGetVertexArrayIntegervEXT- , glGetVertexArrayPointervEXT- , glGetVertexArrayIntegeri_vEXT- , glGetVertexArrayPointeri_vEXT- , glMapNamedBufferRangeEXT- , glFlushMappedNamedBufferRangeEXT- , glNamedBufferStorageEXT- , glClearNamedBufferDataEXT- , glClearNamedBufferSubDataEXT- , glNamedFramebufferParameteriEXT- , glGetNamedFramebufferParameterivEXT- , glProgramUniform1dEXT- , glProgramUniform2dEXT- , glProgramUniform3dEXT- , glProgramUniform4dEXT- , glProgramUniform1dvEXT- , glProgramUniform2dvEXT- , glProgramUniform3dvEXT- , glProgramUniform4dvEXT- , glProgramUniformMatrix2dvEXT- , glProgramUniformMatrix3dvEXT- , glProgramUniformMatrix4dvEXT- , glProgramUniformMatrix2x3dvEXT- , glProgramUniformMatrix2x4dvEXT- , glProgramUniformMatrix3x2dvEXT- , glProgramUniformMatrix3x4dvEXT- , glProgramUniformMatrix4x2dvEXT- , glProgramUniformMatrix4x3dvEXT- , glTextureBufferRangeEXT- , glTextureStorage1DEXT- , glTextureStorage2DEXT- , glTextureStorage3DEXT- , glTextureStorage2DMultisampleEXT- , glTextureStorage3DMultisampleEXT- , glVertexArrayBindVertexBufferEXT- , glVertexArrayVertexAttribFormatEXT- , glVertexArrayVertexAttribIFormatEXT- , glVertexArrayVertexAttribLFormatEXT- , glVertexArrayVertexAttribBindingEXT- , glVertexArrayVertexBindingDivisorEXT- , glVertexArrayVertexAttribLOffsetEXT- , glTexturePageCommitmentEXT- , glVertexArrayVertexAttribDivisorEXT- , glBufferStorage- , glUseProgramStages- , glActiveShaderProgram- , glCreateShaderProgramv- , glBindProgramPipeline- , glDeleteProgramPipelines- , glGenProgramPipelines- , glIsProgramPipeline- , glGetProgramPipelineiv- , glProgramUniform1i- , glProgramUniform1iv- , glProgramUniform1f- , glProgramUniform1fv- , glProgramUniform1d- , glProgramUniform1dv- , glProgramUniform1ui- , glProgramUniform1uiv- , glProgramUniform2i- , glProgramUniform2iv- , glProgramUniform2f- , glProgramUniform2fv- , glProgramUniform2d- , glProgramUniform2dv- , glProgramUniform2ui- , glProgramUniform2uiv- , glProgramUniform3i- , glProgramUniform3iv- , glProgramUniform3f- , glProgramUniform3fv- , glProgramUniform3d- , glProgramUniform3dv- , glProgramUniform3ui- , glProgramUniform3uiv- , glProgramUniform4i- , glProgramUniform4iv- , glProgramUniform4f- , glProgramUniform4fv- , glProgramUniform4d- , glProgramUniform4dv- , glProgramUniform4ui- , glProgramUniform4uiv- , glProgramUniformMatrix2fv- , glProgramUniformMatrix3fv- , glProgramUniformMatrix4fv- , glProgramUniformMatrix2dv- , glProgramUniformMatrix3dv- , glProgramUniformMatrix4dv- , glProgramUniformMatrix2x3fv- , glProgramUniformMatrix3x2fv- , glProgramUniformMatrix2x4fv- , glProgramUniformMatrix4x2fv- , glProgramUniformMatrix3x4fv- , glProgramUniformMatrix4x3fv- , glProgramUniformMatrix2x3dv- , glProgramUniformMatrix3x2dv- , glProgramUniformMatrix2x4dv- , glProgramUniformMatrix4x2dv- , glProgramUniformMatrix3x4dv- , glProgramUniformMatrix4x3dv- , glValidateProgramPipeline- , glGetProgramPipelineInfoLog- , glInvalidateTexSubImage- , glInvalidateTexImage- , glInvalidateBufferSubData- , glInvalidateBufferData- , glInvalidateFramebuffer- , glInvalidateSubFramebuffer- , gl_UNSIGNED_INT_10_10_10_2_EXT- , gl_ACTIVE_RESOURCES- , gl_MAX_GEOMETRY_SHADER_INVOCATIONS- , gl_RESTART_PATH_NV- , gl_MAX_DEEP_3D_TEXTURE_DEPTH_NV- , gl_PACK_SKIP_IMAGES- , gl_IMAGE_CLASS_2_X_16- , gl_FRAMEBUFFER_COMPLETE- , gl_HSL_LUMINOSITY_NV- , gl_IMAGE_BINDING_LAYERED_EXT- , gl_ZOOM_Y- , gl_TEXTURE_LUMINANCE_TYPE_ARB- , gl_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB- , gl_TEXTURE_HEIGHT- , gl_OUTPUT_TEXTURE_COORD0_EXT- , gl_FLOAT_CLEAR_COLOR_VALUE_NV- , gl_LIGHT_MODEL_AMBIENT- , gl_INT16_VEC3_NV- , gl_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV- , gl_MATRIX6_NV- , gl_COMPUTE_PROGRAM_NV- , gl_SCALED_RESOLVE_FASTEST_EXT- , gl_REPLACEMENT_CODE_ARRAY_SUN- , gl_TEXTURE_DT_SIZE_NV- , gl_NUM_SPARSE_LEVELS_ARB- , gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR- , gl_NO_ERROR- , gl_INTERNALFORMAT_ALPHA_TYPE- , gl_FONT_HEIGHT_BIT_NV- , gl_TANGENT_ARRAY_POINTER_EXT- , gl_LOCAL_CONSTANT_VALUE_EXT- , gl_READ_WRITE- , gl_TEXTURE_2D- , gl_UNSIGNED_INT_2_10_10_10_REV_EXT- , gl_TEXTURE_WRAP_R- , gl_FLOAT_MAT4x2- , gl_MAX_COMPUTE_WORK_GROUP_SIZE- , gl_POLYGON_OFFSET_CLAMP_EXT- , gl_SYNC_FLUSH_COMMANDS_BIT- , gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB- , gl_INT_IMAGE_BUFFER- , gl_VERTEX_ATTRIB_ARRAY_TYPE- , gl_ONE- , gl_COLOR_CLEAR_UNCLAMPED_VALUE_ATI- , gl_TRANSLATE_X_NV- , gl_HI_SCALE_NV- , gl_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT- , gl_HILO_NV- , gl_TRIANGLES- , gl_LINEARLIGHT_NV- , gl_MAX_3D_TEXTURE_SIZE_OES- , gl_ANY_SAMPLES_PASSED_CONSERVATIVE- , gl_UNIFORM_BLOCK_BINDING- , gl_MAX_TESS_CONTROL_INPUT_COMPONENTS- , gl_TEXTURE_ALPHA_TYPE_ARB- , gl_MAX_CONVOLUTION_HEIGHT- , gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS- , gl_DEPTH_BUFFER_BIT5_QCOM- , gl_PROGRAM_TEX_INDIRECTIONS_ARB- , gl_BLUE- , gl_RGBA_S3TC- , gl_DECR- , gl_MAJOR_VERSION- , gl_ARRAY_STRIDE- , gl_CONSTANT_COLOR1_NV- , gl_SAMPLES_EXT- , gl_MAX_SAMPLES_APPLE- , gl_COLOR_ARRAY_SIZE- , gl_SAMPLE_ALPHA_TO_MASK_SGIS- , gl_DUP_LAST_CUBIC_CURVE_TO_NV- , gl_TEXTURE10- , gl_R1UI_T2F_C4F_N3F_V3F_SUN- , gl_MAX_VARYING_COMPONENTS- , gl_DRAW_BUFFER7_EXT- , gl_MAX_COMBINED_ATOMIC_COUNTERS- , gl_PROGRAM_ERROR_STRING_ARB- , gl_TRACE_ALL_BITS_MESA- , gl_DEPTH_CLAMP_NV- , gl_REDUCE- , gl_UNSIGNED_SHORT_4_4_4_4- , gl_SKIP_COMPONENTS1_NV- , gl_PIXEL_TILE_CACHE_INCREMENT_SGIX- , gl_COLOR_ARRAY- , gl_STATIC_VERTEX_ARRAY_IBM- , gl_INDEX_BIT_PGI- , gl_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT- , gl_ETC1_SRGB8_NV- , gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS- , gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT- , gl_LIGHT_MODEL_COLOR_CONTROL_EXT- , gl_PATCH_DEFAULT_OUTER_LEVEL_EXT- , gl_SAMPLER_CUBE_ARB- , gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT- , gl_STORAGE_PRIVATE_APPLE- , gl_MAP1_TEXTURE_COORD_2- , gl_REPLACEMENT_CODE_ARRAY_STRIDE_SUN- , gl_VERTEX_ATTRIB_ARRAY8_NV- , gl_LUMINANCE16F_ARB- , gl_DEPTH_COMPONENT32F_NV- , gl_MAX_VERTEX_BINDABLE_UNIFORMS_EXT- , gl_MATRIX28_ARB- , gl_SYNC_FLUSH_COMMANDS_BIT_APPLE- , gl_READ_FRAMEBUFFER_BINDING_ANGLE- , gl_FOG_COORDINATE_ARRAY_TYPE- , gl_RGBA32UI_EXT- , gl_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG- , gl_2_BYTES_NV- , gl_TEXTURE_HI_SIZE_NV- , gl_PACK_SWAP_BYTES- , gl_EVAL_FRACTIONAL_TESSELLATION_NV- , gl_RG16- , gl_SWIZZLE_STR_ATI- , gl_CON_6_ATI- , gl_PATH_FOG_GEN_MODE_NV- , gl_SRGB8_ALPHA8_EXT- , gl_COMPRESSED_SLUMINANCE_ALPHA_EXT- , gl_TEXTURE_COMPARE_FUNC_EXT- , gl_UNIFORM_MATRIX_STRIDE- , gl_INVALID_OPERATION- , gl_DRAW_BUFFER4_ATI- , gl_BYTE- , gl_SECONDARY_COLOR_ARRAY_POINTER- , gl_TEXTURE_CUBE_MAP_POSITIVE_X- , gl_TEXTURE_2D_ARRAY- , gl_OFFSET_TEXTURE_MATRIX_NV- , gl_FLOAT_MAT2x4- , gl_REG_31_ATI- , gl_DEBUG_TYPE_PORTABILITY- , gl_SAMPLER_2D_ARB- , gl_DRAW_BUFFER11- , gl_MAX_COMPUTE_WORK_GROUP_INVOCATIONS- , gl_TEXTURE5_ARB- , gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT- , gl_COLOR_TABLE_SCALE- , gl_POINT_FADE_THRESHOLD_SIZE_SGIS- , gl_MAX_SPARSE_3D_TEXTURE_SIZE_ARB- , gl_ACCUM_CLEAR_VALUE- , gl_OPERAND0_ALPHA_EXT- , gl_QUERY_NO_WAIT- , gl_PRIMITIVE_RESTART- , gl_STENCIL_ATTACHMENT_OES- , gl_BUFFER_USAGE- , gl_COLOR_TABLE_BLUE_SIZE- , gl_VERTEX_ARRAY_SIZE_EXT- , gl_ALPHA8- , gl_PROXY_TEXTURE_2D- , gl_HALF_BIT_ATI- , gl_TRANSPOSE_MODELVIEW_MATRIX- , gl_DRAW_BUFFER3- , gl_4PASS_2_SGIS- , gl_MAX_GEOMETRY_OUTPUT_COMPONENTS- , gl_SAMPLER_2D_ARRAY_SHADOW_EXT- , gl_TEXTURE_FORMAT_QCOM- , gl_RGB16_SNORM- , gl_DRAW_BUFFER8_NV- , gl_AUX_BUFFERS- , gl_CONVOLUTION_HINT_SGIX- , gl_FOG_COLOR- , gl_COLOR_TABLE_RED_SIZE_SGI- , gl_FUNC_SUBTRACT_OES- , gl_LUMINANCE_ALPHA16F_ARB- , gl_MODELVIEW10_ARB- , gl_LOGIC_OP- , gl_PROGRAM_NATIVE_INSTRUCTIONS_ARB- , gl_SOURCE0_ALPHA_EXT- , gl_INDEX_SHIFT- , gl_PIXEL_FRAGMENT_RGB_SOURCE_SGIS- , gl_RG32F_EXT- , gl_GEOMETRY_LINKED_VERTICES_OUT_EXT- , gl_STACK_UNDERFLOW_KHR- , gl_TESS_GEN_POINT_MODE_EXT- , gl_BUFFER_ACCESS_ARB- , gl_DOT_PRODUCT_NV- , gl_INVERTED_SCREEN_W_REND- , gl_REG_11_ATI- , gl_MAX_FRAMEZOOM_FACTOR_SGIX- , gl_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD- , gl_MATRIX20_ARB- , gl_EVAL_VERTEX_ATTRIB1_NV- , gl_COLOR_ATTACHMENT10_NV- , gl_OUTPUT_TEXTURE_COORD28_EXT- , gl_MAX_TEXTURE_COORDS_ARB- , gl_COLOR_ARRAY_PARALLEL_POINTERS_INTEL- , gl_MAX_COMBINED_SHADER_OUTPUT_RESOURCES- , gl_RENDERBUFFER_BLUE_SIZE- , gl_MULTISAMPLE_BIT- , gl_CURRENT_PROGRAM- , gl_AUX_DEPTH_STENCIL_APPLE- , gl_LUMINANCE8_ALPHA8_EXT- , gl_VIDEO_CAPTURE_SURFACE_ORIGIN_NV- , gl_INTERLACE_OML- , gl_REG_27_ATI- , gl_UNSIGNED_INT_24_8_OES- , gl_COMBINER_AB_OUTPUT_NV- , gl_CURRENT_RASTER_INDEX- , gl_SYNC_FENCE_APPLE- , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT- , gl_MAX_TEXTURE_SIZE- , gl_TEXTURE24- , gl_STENCIL_BACK_FUNC- , gl_LUMINANCE12- , gl_PARAMETER_BUFFER_ARB- , gl_AUX2- , gl_SLICE_ACCUM_SUN- , gl_COLOR_TABLE_ALPHA_SIZE- , gl_TEXTURE_CUBE_MAP_POSITIVE_X_EXT- , gl_DRAW_FRAMEBUFFER_BINDING_ANGLE- , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER- , gl_SUBTRACT- , gl_MAX_PROGRAM_IF_DEPTH_NV- , gl_T2F_C4F_N3F_V3F- , gl_ACTIVE_SUBROUTINE_UNIFORMS- , gl_EMBOSS_LIGHT_NV- , gl_POINT_SIZE_RANGE- , gl_GEOMETRY_LINKED_OUTPUT_TYPE_EXT- , gl_CLAMP_TO_BORDER- , gl_TEXTURE_BUFFER_OFFSET_EXT- , gl_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV- , gl_COMPRESSED_INTENSITY- , gl_MAX_PROGRAM_OUTPUT_VERTICES_NV- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES- , gl_MAX_PROGRAM_ATTRIBS_ARB- , gl_POST_COLOR_MATRIX_GREEN_SCALE_SGI- , gl_TEXTURE_3D_BINDING_EXT- , gl_SHADER_STORAGE_BUFFER_START- , gl_MAP2_INDEX- , gl_CONSTANT_COLOR_EXT- , gl_RG32UI- , gl_BGRA- , gl_FRAGMENT_DEPTH_EXT- , gl_GENERATE_MIPMAP_HINT_SGIS- , gl_DIFFERENCE_NV- , gl_UNSIGNED_SHORT_1_15_REV_MESA- , gl_PROGRAM_BINARY_RETRIEVABLE_HINT- , gl_RGBA32I- , gl_UNSIGNED_INT_8_8_8_8- , gl_DOMAIN- , gl_COLOR_MATRIX- , gl_PROGRAM_NATIVE_ATTRIBS_ARB- , gl_OP_ROUND_EXT- , gl_VIEW_CLASS_96_BITS- , gl_TEXTURE_WRAP_R_OES- , gl_VERTEX_ARRAY_TYPE- , gl_VIDEO_BUFFER_INTERNAL_FORMAT_NV- , gl_PIXEL_MAP_R_TO_R_SIZE- , gl_UNSIGNED_NORMALIZED_ARB- , gl_UNSIGNED_INT8_VEC3_NV- , gl_COMPRESSED_RGBA8_ETC2_EAC_OES- , gl_HI_BIAS_NV- , gl_SECONDARY_COLOR_ARRAY_EXT- , gl_BUFFER_MAP_OFFSET- , gl_LUMINANCE4_ALPHA4_OES- , gl_FORMAT_SUBSAMPLE_244_244_OML- , gl_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA- , gl_PLUS_CLAMPED_ALPHA_NV- , gl_COLOR_ATTACHMENT0_NV- , gl_COMPRESSED_RGB_S3TC_DXT1_EXT- , gl_GEOMETRY_OUTPUT_TYPE- , gl_INTENSITY8_EXT- , gl_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT- , gl_COMPRESSED_RED_GREEN_RGTC2_EXT- , gl_DEBUG_SOURCE_API_KHR- , gl_BLEND_PREMULTIPLIED_SRC_NV- , gl_CLIENT_STORAGE_BIT- , gl_INTENSITY12_EXT- , gl_MATRIX_INDEX_ARRAY_STRIDE_OES- , gl_CURRENT_RASTER_SECONDARY_COLOR- , gl_REPLACE- , gl_LINEAR- , gl_COMBINER_INPUT_NV- , gl_TRANSFORM_FEEDBACK_VARYINGS- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES- , gl_IMAGE_BINDING_ACCESS- , gl_NUM_LOOPBACK_COMPONENTS_ATI- , gl_ARRAY_ELEMENT_LOCK_COUNT_EXT- , gl_REPLACEMENT_CODE_ARRAY_POINTER_SUN- , gl_TEXTURE_4DSIZE_SGIS- , gl_COUNTER_RANGE_AMD- , gl_RGB8_OES- , gl_ALPHA16F_EXT- , gl_C4F_N3F_V3F- , gl_NEAREST_MIPMAP_LINEAR- , gl_DEBUG_SEVERITY_LOW_KHR- , gl_DISCARD_ATI- , gl_LOCAL_CONSTANT_DATATYPE_EXT- , gl_MAX_GEOMETRY_INPUT_COMPONENTS_EXT- , gl_LOWER_LEFT- , gl_RENDERBUFFER_HEIGHT_OES- , gl_SPRITE_MODE_SGIX- , gl_REPLACEMENT_CODE_ARRAY_TYPE_SUN- , gl_UNSIGNED_INT8_VEC2_NV- , gl_NONE_OES- , gl_POINT_SIZE_MIN_ARB- , gl_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV- , gl_RENDERBUFFER_DEPTH_SIZE_EXT- , gl_BUFFER_MAP_LENGTH- , gl_WRITE_ONLY- , gl_NEAREST_CLIPMAP_NEAREST_SGIX- , gl_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV- , gl_ALREADY_SIGNALED_APPLE- , gl_REPLICATE_BORDER- , gl_SUBPIXEL_BITS- , gl_ALPHA_MIN_SGIX- , gl_BLUE_BIT_ATI- , gl_UNSIGNED_INT_IMAGE_2D_EXT- , gl_TRANSFORM_FEEDBACK_VARYINGS_EXT- , gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT- , gl_PIXEL_COUNTER_BITS_NV- , gl_422_REV_AVERAGE_EXT- , gl_TEXTURE_RESIDENT_EXT- , gl_STENCIL_WRITEMASK- , gl_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES- , gl_FLOAT_VEC3_ARB- , gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM- , gl_DYNAMIC_STORAGE_BIT- , gl_DRAW_FRAMEBUFFER_BINDING_APPLE- , gl_CLIP_PLANE4_IMG- , gl_CON_26_ATI- , gl_COMPRESSED_SIGNED_R11_EAC_OES- , gl_LINES_ADJACENCY_EXT- , gl_AUTO_GENERATE_MIPMAP- , gl_OP_EXP_BASE_2_EXT- , gl_ATTRIB_STACK_DEPTH- , gl_ALPHA32F_EXT- , gl_KEEP- , gl_TEXTURE_FILTER4_SIZE_SGIS- , gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT- , gl_INT_VEC3- , gl_MATRIX_MODE- , gl_UNSIGNED_NORMALIZED- , gl_DEBUG_PRINT_MESA- , gl_DST_OUT_NV- , gl_CLEAR_BUFFER- , gl_COMBINER_SCALE_NV- , gl_WRITE_ONLY_OES- , gl_422_AVERAGE_EXT- , gl_COLOR_INDEX12_EXT- , gl_COLOR_BUFFER_BIT0_QCOM- , gl_CAVEAT_SUPPORT- , gl_BLUE_INTEGER- , gl_IUI_N3F_V2F_EXT- , gl_VERTEX_DATA_HINT_PGI- , gl_REG_13_ATI- , gl_NEGATIVE_ONE_EXT- , gl_CON_16_ATI- , gl_TEXTURE_EXTERNAL_OES- , gl_SHADER_TYPE- , gl_OVERLAY_KHR- , gl_LUMINANCE6_ALPHA2_EXT- , gl_COLOR_TABLE_SGI- , gl_TEXTURE_STENCIL_SIZE_EXT- , gl_NEAREST- , gl_RGB8I- , gl_TEXTURE_SPARSE_ARB- , gl_MATRIX9_ARB- , gl_TEXTURE_TARGET- , gl_SECONDARY_COLOR_ARRAY_TYPE_EXT- , gl_RENDERER- , gl_TEXTURE_BINDING_BUFFER- , gl_INT_VEC3_ARB- , gl_MATRIX12_ARB- , gl_VERTEX_ATTRIB_ARRAY_ENABLED- , gl_RENDERBUFFER_SAMPLES_NV- , gl_COLOR_ATTACHMENT1_EXT- , gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE- , gl_LINEAR_DETAIL_SGIS- , gl_CURRENT_RASTER_POSITION_VALID- , gl_LINEAR_DETAIL_COLOR_SGIS- , gl_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT- , gl_POINT_SIZE_MIN_EXT- , gl_GPU_DISJOINT_EXT- , gl_LIGHT_MODEL_COLOR_CONTROL- , gl_MAX_TESS_PATCH_COMPONENTS- , gl_CURRENT_PALETTE_MATRIX_OES- , gl_SAMPLES_SGIS- , gl_FUNC_REVERSE_SUBTRACT_OES- , gl_TEXTURE13_ARB- , gl_SMOOTH_CUBIC_CURVE_TO_NV- , gl_COMPRESSED_RGBA_ASTC_3x3x3_OES- , gl_MODELVIEW15_ARB- , gl_EYE_PLANE_ABSOLUTE_NV- , gl_READ_FRAMEBUFFER_BINDING_NV- , gl_RENDERBUFFER_RED_SIZE- , gl_PIXEL_PACK_BUFFER_BINDING_EXT- , gl_MAX_RENDERBUFFER_SIZE- , gl_DOUBLE_MAT4_EXT- , gl_COMPRESSED_R11_EAC- , gl_INT_IMAGE_2D_RECT- , gl_MAD_ATI- , gl_IMAGE_CLASS_4_X_32- , gl_VIDEO_COLOR_CONVERSION_OFFSET_NV- , gl_BOOL_VEC4- , gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB- , gl_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES- , gl_HISTOGRAM_FORMAT_EXT- , gl_UNSIGNED_INT_8_8_8_8_REV_EXT- , gl_R1UI_C3F_V3F_SUN- , gl_SAMPLER_1D_ARRAY_SHADOW_EXT- , gl_TEXTURE_BINDING_2D_ARRAY- , gl_TEXTURE_RANGE_POINTER_APPLE- , gl_SMALL_CCW_ARC_TO_NV- , gl_SHADER_COMPILER- , gl_DEPTH_COMPONENT24_ARB- , gl_COLOR_ATTACHMENT14_NV- , gl_TIME_ELAPSED- , gl_FRAMEBUFFER_DEFAULT_LAYERS_EXT- , gl_MATRIX11_ARB- , gl_XOR- , gl_HSL_SATURATION_KHR- , gl_R1UI_T2F_V3F_SUN- , gl_COMPUTE_WORK_GROUP_SIZE- , gl_BLEND_EQUATION_EXT- , gl_SAMPLER- , gl_NUM_FRAGMENT_REGISTERS_ATI- , gl_REG_5_ATI- , gl_DSDT8_MAG8_INTENSITY8_NV- , gl_PIXEL_MAP_S_TO_S_SIZE- , gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT- , gl_OR_REVERSE- , gl_QUERY_BUFFER_BARRIER_BIT- , gl_TRANSFORM_FEEDBACK_BUFFER_BINDING- , gl_SAMPLER_1D- , gl_COLOR_TABLE_INTENSITY_SIZE- , gl_TRIANGLE_FAN- , gl_POINT_SIZE_MAX_SGIS- , gl_ELEMENT_ARRAY_POINTER_ATI- , gl_INT_IMAGE_1D_EXT- , gl_CONVOLUTION_FILTER_SCALE_EXT- , gl_EVAL_VERTEX_ATTRIB8_NV- , gl_DYNAMIC_COPY_ARB- , gl_REG_12_ATI- , gl_SIGNED_NORMALIZED- , gl_REG_8_ATI- , gl_SAMPLE_COVERAGE_ARB- , gl_ALLOW_DRAW_MEM_HINT_PGI- , gl_INTENSITY16F_ARB- , gl_PATH_FORMAT_PS_NV- , gl_TEXTURE_FREE_MEMORY_ATI- , gl_SYNC_FENCE- , gl_WRITE_ONLY_ARB- , gl_INVERT- , gl_TRANSLATE_Y_NV- , gl_SAMPLER_3D- , gl_LINE_STRIP_ADJACENCY- , gl_OPERAND2_RGB_EXT- , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG- , gl_COLOR_ARRAY_ADDRESS_NV- , gl_POST_CONVOLUTION_BLUE_SCALE_EXT- , gl_HIGH_FLOAT- , gl_TESS_GEN_MODE_EXT- , gl_DOT_PRODUCT_TEXTURE_RECTANGLE_NV- , gl_MAX_LABEL_LENGTH- , gl_QUERY_BY_REGION_NO_WAIT- , gl_OP_RECIP_EXT- , gl_PROXY_TEXTURE_2D_ARRAY- , gl_COMPRESSED_RGBA_FXT1_3DFX- , gl_PRIMITIVES_GENERATED- , gl_TEXTURE26_ARB- , gl_TESS_EVALUATION_TEXTURE- , gl_TEXTURE1- , gl_TRANSFORM_FEEDBACK_RECORD_NV- , gl_DRAW_FRAMEBUFFER_NV- , gl_MODELVIEW8_ARB- , gl_UNSIGNED_INT_SAMPLER_BUFFER- , gl_CONVOLUTION_1D- , gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV- , gl_SAMPLER_1D_ARRAY- , gl_TRANSFORM_FEEDBACK_BINDING- , gl_LIGHTING_BIT- , gl_R1UI_C4F_N3F_V3F_SUN- , gl_TEXTURE_RED_SIZE_EXT- , gl_VERTEX_ARRAY_KHR- , gl_ALPHA_BITS- , gl_MAX_VERTEX_SHADER_INVARIANTS_EXT- , gl_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS- , gl_SAMPLE_MASK_INVERT_EXT- , gl_TRANSPOSE_PROGRAM_MATRIX_EXT- , gl_ABGR_EXT- , gl_MULTISAMPLE_BIT_3DFX- , gl_MATRIX0_NV- , gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING- , gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG- , gl_RGB9_E5- , gl_IMAGE_2D_MULTISAMPLE_ARRAY- , gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE- , gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV- , gl_GEOMETRY_PROGRAM_NV- , gl_RGB10_EXT- , gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT- , gl_ALWAYS_SOFT_HINT_PGI- , gl_WEIGHT_ARRAY_BUFFER_BINDING- , gl_BLEND_DST_ALPHA_OES- , gl_UNIFORM_BUFFER_BINDING_EXT- , gl_CONTINUOUS_AMD- , gl_STENCIL_BUFFER_BIT4_QCOM- , gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV- , gl_TESS_EVALUATION_SHADER_BIT- , gl_TEXTURE_COORD_ARRAY_EXT- , gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET- , gl_PROGRAM_INSTRUCTIONS_ARB- , gl_PROXY_TEXTURE_3D- , gl_CLIP_PLANE0- , gl_CURRENT_QUERY_EXT- , gl_T4F_C4F_N3F_V4F- , gl_ADD- , gl_STENCIL_EXT- , gl_TEXTURE_BLUE_TYPE- , gl_OUTPUT_TEXTURE_COORD8_EXT- , gl_OBJECT_TYPE_ARB- , gl_RESET_NOTIFICATION_STRATEGY- , gl_UNSIGNED_INT_VEC2_EXT- , gl_DRAW_BUFFER6_NV- , gl_ASYNC_DRAW_PIXELS_SGIX- , gl_INTERNALFORMAT_GREEN_SIZE- , gl_TEXTURE_GREEN_SIZE- , gl_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL- , gl_VIRTUAL_PAGE_SIZE_Y_AMD- , gl_OP_MUL_EXT- , gl_NORMAL_MAP- , gl_ALPHA16_EXT- , gl_POINT_SIZE- , gl_INTERNALFORMAT_SUPPORTED- , gl_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT- , gl_DEBUG_SEVERITY_HIGH_ARB- , gl_TEXTURE_MAX_LEVEL_SGIS- , gl_SHADING_LANGUAGE_VERSION_ARB- , gl_STANDARD_FONT_FORMAT_NV- , gl_VERTEX_WEIGHT_ARRAY_SIZE_EXT- , gl_IR_INSTRUMENT1_SGIX- , gl_SIGNED_HILO8_NV- , gl_RENDERBUFFER_GREEN_SIZE_OES- , gl_REG_1_ATI- , gl_CLAMP_TO_EDGE- , gl_GEOMETRY_SHADER_BIT- , gl_MODELVIEW7_ARB- , gl_BUFFER_MAPPED_ARB- , gl_DRAW_BUFFER12_EXT- , gl_RGB565_OES- , gl_SHORT- , gl_STENCIL_BACK_FAIL_ATI- , gl_UNSIGNED_INT_IMAGE_2D_RECT_EXT- , gl_PATH_MAX_PROJECTION_STACK_DEPTH_NV- , gl_CON_31_ATI- , gl_RGB5- , gl_SAMPLER_2D_RECT- , gl_COMPRESSED_RGBA_ASTC_5x4x4_OES- , gl_PASS_THROUGH_TOKEN- , gl_RGBA_FLOAT32_ATI- , gl_TEXTURE_COLOR_WRITEMASK_SGIS- , gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS- , gl_OUTPUT_TEXTURE_COORD23_EXT- , gl_YCBYCR8_422_NV- , gl_SRC_NV- , gl_MAX_EXT- , gl_UNPACK_COMPRESSED_BLOCK_DEPTH- , gl_UNSIGNED_SHORT_5_5_5_1_EXT- , gl_IMAGE_3D- , gl_DEPTH_BUFFER_BIT0_QCOM- , gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS- , gl_DECR_WRAP_OES- , gl_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV- , gl_SPARSE_STORAGE_BIT_ARB- , gl_LAST_VIDEO_CAPTURE_STATUS_NV- , gl_LAST_VERTEX_CONVENTION- , gl_IDENTITY_NV- , gl_RETAINED_APPLE- , gl_FLOAT_RGB32_NV- , gl_DRAW_BUFFER15_ARB- , gl_COLOR_EXT- , gl_WEIGHT_ARRAY_TYPE_OES- , gl_DETAIL_TEXTURE_2D_BINDING_SGIS- , gl_BGRA8_EXT- , gl_T2F_IUI_V3F_EXT- , gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS- , gl_VERTEX_ARRAY_LIST_IBM- , gl_INDEX_ARRAY_STRIDE_EXT- , gl_SCALE_BY_ONE_HALF_NV- , gl_PROXY_TEXTURE_4D_SGIS- , gl_HALF_FLOAT- , gl_FIELD_UPPER_NV- , gl_OCCLUSION_QUERY_EVENT_MASK_AMD- , gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV- , gl_VERTEX_ATTRIB_ARRAY4_NV- , gl_CONVOLUTION_BORDER_COLOR_HP- , gl_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT- , gl_MODULATE- , gl_NO_RESET_NOTIFICATION_KHR- , gl_CURRENT_INDEX- , gl_RED_MAX_CLAMP_INGR- , gl_SAMPLE_ALPHA_TO_MASK_EXT- , gl_DEBUG_CATEGORY_DEPRECATION_AMD- , gl_EXP2- , gl_HISTOGRAM- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR- , gl_VERTEX_WEIGHT_ARRAY_POINTER_EXT- , gl_READ_FRAMEBUFFER_BINDING_APPLE- , gl_COLOR_ATTACHMENT9- , gl_PROXY_TEXTURE_CUBE_MAP_ARB- , gl_SIGNED_RGB8_NV- , gl_TEXTURE_INTENSITY_SIZE- , gl_TEXTURE_MAX_CLAMP_S_SGIX- , gl_PATH_TRANSPOSE_PROJECTION_MATRIX_NV- , gl_BOUNDING_BOX_OF_BOUNDING_BOXES_NV- , gl_TEXTURE_MAX_LOD_SGIS- , gl_LUMINANCE- , gl_FOG_COORD_ARRAY_BUFFER_BINDING- , gl_OFFSET_TEXTURE_2D_BIAS_NV- , gl_FEEDBACK- , gl_MAGNITUDE_BIAS_NV- , gl_POST_CONVOLUTION_ALPHA_SCALE- , gl_PATH_TERMINAL_END_CAP_NV- , gl_GLYPH_HEIGHT_BIT_NV- , gl_TEXTURE_STORAGE_HINT_APPLE- , gl_MATRIX2_NV- , gl_RGB16I- , gl_NUM_SHADER_BINARY_FORMATS- , gl_MULTISAMPLE_BUFFER_BIT7_QCOM- , gl_SAMPLE_ALPHA_TO_ONE- , gl_CON_11_ATI- , gl_MAP2_TEXTURE_COORD_1- , gl_DRAW_BUFFER14_ARB- , gl_SHARPEN_TEXTURE_FUNC_POINTS_SGIS- , gl_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB- , gl_FLOAT_RGBA_MODE_NV- , gl_VERTEX_ATTRIB_ARRAY9_NV- , gl_ALPHA4- , gl_EVAL_VERTEX_ATTRIB9_NV- , gl_VARIANT_ARRAY_POINTER_EXT- , gl_INDEX_TEST_EXT- , gl_MAX_RENDERBUFFER_SIZE_EXT- , gl_MAP1_GRID_SEGMENTS- , gl_DETAIL_TEXTURE_MODE_SGIS- , gl_LINEARBURN_NV- , gl_SOURCE2_ALPHA- , gl_COLOR_ATTACHMENT9_EXT- , gl_RENDERBUFFER_OES- , gl_RGBA8UI- , gl_MIPMAP- , gl_SMOOTH_LINE_WIDTH_RANGE- , gl_COMBINER7_NV- , gl_VIEW_CLASS_64_BITS- , gl_SAMPLE_MASK_VALUE_SGIS- , gl_MAX_SHADER_STORAGE_BUFFER_BINDINGS- , gl_ALPHA32UI_EXT- , gl_NONE- , gl_MATRIX25_ARB- , gl_DUAL_LUMINANCE_ALPHA4_SGIS- , gl_PATCH_VERTICES- , gl_COLOR_MATERIAL_PARAMETER- , gl_NUM_PROGRAM_BINARY_FORMATS- , gl_PACK_ROW_LENGTH- , gl_RENDERBUFFER_BINDING_EXT- , gl_FORMAT_SUBSAMPLE_24_24_OML- , gl_RELATIVE_ROUNDED_RECT4_NV- , gl_TEXTURE3- , gl_DEPTH_COMPONENT16_SGIX- , gl_SAMPLER_2D_SHADOW_EXT- , gl_MIN_MAP_BUFFER_ALIGNMENT- , gl_PROXY_TEXTURE_2D_ARRAY_EXT- , gl_WEIGHT_ARRAY_TYPE_ARB- , gl_LOW_INT- , gl_DRAW_BUFFER11_ATI- , gl_MAX_ELEMENTS_VERTICES_EXT- , gl_COMPRESSED_RED_RGTC1_EXT- , gl_RGBA- , gl_DRAW_BUFFER0_ARB- , gl_TEXTURE_RED_TYPE- , gl_FENCE_APPLE- , gl_MAX_CONVOLUTION_WIDTH_EXT- , gl_UNSIGNED_INVERT_NV- , gl_LIGHT6- , gl_STREAM_COPY- , gl_INSTRUMENT_BUFFER_POINTER_SGIX- , gl_MODELVIEW- , gl_RGB32F- , gl_MAP_COLOR- , gl_COLOR_TABLE_INTENSITY_SIZE_SGI- , gl_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV- , gl_LAYER_PROVOKING_VERTEX_EXT- , gl_COMPRESSED_RGBA_ASTC_6x5x5_OES- , gl_FOG_BIT- , gl_NATIVE_GRAPHICS_HANDLE_PGI- , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT- , gl_MAX_COMPUTE_SHARED_MEMORY_SIZE- , gl_STENCIL_INDEX1_EXT- , gl_COLOR_ATTACHMENT2_NV- , gl_DRAW_BUFFER5_ARB- , gl_TEXTURE_OBJECT_VALID_QCOM- , gl_PHONG_HINT_WIN- , gl_MAP1_VERTEX_ATTRIB0_4_NV- , gl_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX- , gl_COLOR_TABLE_WIDTH- , gl_INT_IMAGE_1D_ARRAY- , gl_BUFFER_MAPPED- , gl_TEXTURE_SWIZZLE_R- , gl_COLOR_ATTACHMENT9_NV- , gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER- , gl_LUMINANCE16_ALPHA16- , gl_PERFQUERY_GLOBAL_CONTEXT_INTEL- , gl_POINT_FADE_THRESHOLD_SIZE_EXT- , gl_BLEND_EQUATION_OES- , gl_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES- , gl_TEXTURE_BINDING_2D_ARRAY_EXT- , gl_CON_7_ATI- , gl_DUAL_LUMINANCE16_SGIS- , gl_RASTER_POSITION_UNCLIPPED_IBM- , gl_ALLOW_DRAW_FRG_HINT_PGI- , gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT- , gl_TEXTURE_COORD_ARRAY- , gl_MAX_DEBUG_LOGGED_MESSAGES_KHR- , gl_ARRAY_BUFFER_BINDING_ARB- , gl_PIXEL_TEXTURE_SGIS- , gl_STENCIL_INDEX8- , gl_IMAGE_CLASS_10_10_10_2- , gl_DRAW_INDIRECT_LENGTH_NV- , gl_DEBUG_CALLBACK_FUNCTION_ARB- , gl_INT_SAMPLER_2D_ARRAY- , gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB- , gl_GENERIC_ATTRIB_NV- , gl_TEXTURE_RED_TYPE_ARB- , gl_MAX_VERTEX_UNITS_ARB- , gl_DEPTH_BIAS- , gl_SRGB- , gl_TEXTURE_COORD_ARRAY_TYPE- , gl_TRANSFORM_FEEDBACK_BUFFER_START_EXT- , gl_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV- , gl_CURRENT_TIME_NV- , gl_TEXTURE_DEPTH_SIZE- , gl_INDEX_ARRAY_LIST_STRIDE_IBM- , gl_CLIP_PLANE1_IMG- , gl_CULL_VERTEX_EYE_POSITION_EXT- , gl_COPY_READ_BUFFER_NV- , gl_CONTEXT_CORE_PROFILE_BIT- , gl_ARC_TO_NV- , gl_PACK_COMPRESSED_BLOCK_SIZE- , gl_TRACE_NAME_MESA- , gl_TEXTURE_CROP_RECT_OES- , gl_MAP2_VERTEX_ATTRIB15_4_NV- , gl_DRAW_INDIRECT_UNIFIED_NV- , gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS- , gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS- , gl_CULL_FACE_MODE- , gl_LUMINANCE_ALPHA_INTEGER_EXT- , gl_SURFACE_MAPPED_NV- , gl_FOG_COORD_ARRAY_LENGTH_NV- , gl_R- , gl_NUM_VIDEO_CAPTURE_STREAMS_NV- , gl_VERTEX_PROGRAM_POINT_SIZE_NV- , gl_CONSTANT_NV- , gl_RGB10_A2- , gl_INTENSITY16_EXT- , gl_TEXTURE28- , gl_COMPRESSED_RGBA_ASTC_4x4_KHR- , gl_SRGB_READ- , gl_LUMINANCE16_ALPHA16_SNORM- , gl_UNSIGNED_INT_IMAGE_1D_ARRAY- , gl_ELEMENT_ARRAY_TYPE_ATI- , gl_PATCH_DEFAULT_OUTER_LEVEL- , gl_LINE_STRIP_ADJACENCY_ARB- , gl_POLYGON_OFFSET_POINT- , gl_UNSIGNED_SHORT_8_8_APPLE- , gl_DYNAMIC_ATI- , gl_UNSIGNED_INT16_NV- , gl_TEXTURE_BINDING_BUFFER_EXT- , gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB- , gl_MAP2_VERTEX_ATTRIB14_4_NV- , gl_COMPRESSED_RGB- , gl_VERTEX_ATTRIB_ARRAY0_NV- , gl_MIN- , gl_COLOR_SUM- , gl_ATC_RGBA_INTERPOLATED_ALPHA_AMD- , gl_RECIP_ADD_SIGNED_ALPHA_IMG- , gl_FONT_MAX_ADVANCE_WIDTH_BIT_NV- , gl_SPRITE_AXIAL_SGIX- , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES- , gl_TEXTURE_ENV_BIAS_SGIX- , gl_PROGRAM_FORMAT_ASCII_ARB- , gl_OUTPUT_COLOR1_EXT- , gl_SELECTION_BUFFER_SIZE- , gl_VERTEX_ATTRIB_MAP2_ORDER_APPLE- , gl_INTENSITY_FLOAT16_ATI- , gl_TEXTURE30_ARB- , gl_TEXTURE_1D_STACK_MESAX- , gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE- , gl_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM- , gl_SIGNED_HILO_NV- , gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT- , gl_ACTIVE_ATTRIBUTE_MAX_LENGTH- , gl_IMAGE_2D_RECT_EXT- , gl_TESS_GEN_MODE- , gl_TEXTURE_MIN_FILTER- , gl_FLOAT_VEC4- , gl_LIGHT2- , gl_MODELVIEW24_ARB- , gl_TESS_EVALUATION_SHADER- , gl_PROXY_COLOR_TABLE_SGI- , gl_INDEX_ARRAY_EXT- , gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB- , gl_FRAGMENT_INPUT_NV- , gl_CON_13_ATI- , gl_IMAGE_ROTATE_ORIGIN_Y_HP- , gl_VERTEX_ARRAY_COUNT_EXT- , gl_STENCIL_INDEX1_OES- , gl_BUFFER_DATA_SIZE- , gl_MAX_NAME_STACK_DEPTH- , gl_SAMPLES_PASSED_ARB- , gl_TEXTURE_PRE_SPECULAR_HP- , gl_RESCALE_NORMAL_EXT- , gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY- , gl_TRANSLATE_2D_NV- , gl_QUAD_INTENSITY8_SGIS- , gl_LOCATION_INDEX- , gl_MODELVIEW9_ARB- , gl_CONTEXT_RELEASE_BEHAVIOR_KHR- , gl_EDGE_FLAG_ARRAY_BUFFER_BINDING- , gl_DEBUG_TYPE_PERFORMANCE_KHR- , gl_POINT_DISTANCE_ATTENUATION- , gl_PIXEL_TILE_GRID_HEIGHT_SGIX- , gl_COLOR_ATTACHMENT3- , gl_COUNT_UP_NV- , gl_STENCIL_BACK_VALUE_MASK- , gl_PERFQUERY_DONOT_FLUSH_INTEL- , gl_VARIABLE_F_NV- , gl_STENCIL_BACK_PASS_DEPTH_FAIL- , gl_IMAGE_CUBIC_WEIGHT_HP- , gl_STENCIL- , gl_DRAW_BUFFER6_ARB- , gl_MAX_COMBINED_IMAGE_UNIFORMS- , gl_PROGRAM_STRING_NV- , gl_STREAM_DRAW- , gl_BGR_INTEGER_EXT- , gl_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES- , gl_LAYER_PROVOKING_VERTEX- , gl_TEXTURE_ALPHA_SIZE_EXT- , gl_QUERY_DEPTH_PASS_EVENT_BIT_AMD- , gl_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX- , gl_VIEW_CLASS_48_BITS- , gl_DRAW_BUFFER15_NV- , gl_MAX_LABEL_LENGTH_KHR- , gl_DEBUG_TYPE_PERFORMANCE- , gl_DEPENDENT_RGB_TEXTURE_3D_NV- , gl_MAX_GEOMETRY_ATOMIC_COUNTERS- , gl_DRAW_BUFFER10_ARB- , gl_FONT_UNDERLINE_THICKNESS_BIT_NV- , gl_DRAW_BUFFER7- , gl_TEXTURE_GREEN_TYPE_ARB- , gl_TEXTURE_MIN_LOD_SGIS- , gl_UNSIGNED_INT_SAMPLER_BUFFER_EXT- , gl_ELEMENT_ARRAY_BARRIER_BIT_EXT- , gl_SAMPLE_COVERAGE_VALUE- , gl_VERTEX_ATTRIB_RELATIVE_OFFSET- , gl_COLOR_TABLE_RED_SIZE- , gl_TRANSFORM_FEEDBACK_BUFFER_START_NV- , gl_NAME_STACK_DEPTH- , gl_UNSIGNED_INT_5_9_9_9_REV- , gl_FUNC_SUBTRACT_EXT- , gl_STENCIL_INDEX4_EXT- , gl_TEXTURE_COMPRESSION_HINT- , gl_DEPTH_CLAMP- , gl_SAMPLE_COVERAGE_INVERT- , gl_DRAW_BUFFER0_EXT- , gl_DRAW_BUFFER4- , gl_ALPHA_FLOAT16_ATI- , gl_AFFINE_2D_NV- , gl_MAX_TRACK_MATRICES_NV- , gl_BINORMAL_ARRAY_STRIDE_EXT- , gl_UNSIGNED_SHORT_1_5_5_5_REV- , gl_ROUNDED_RECT4_NV- , gl_COMMAND_BARRIER_BIT_EXT- , gl_TEXTURE_ENV_COLOR- , gl_READ_WRITE_ARB- , gl_RGBA8_EXT- , gl_EVAL_VERTEX_ATTRIB10_NV- , gl_POST_CONVOLUTION_RED_BIAS- , gl_INT16_VEC4_NV- , gl_COLOR_SUM_ARB- , gl_OUTPUT_TEXTURE_COORD5_EXT- , gl_COMPRESSED_RGBA_ASTC_12x10_KHR- , gl_MAX_ELEMENTS_INDICES- , gl_REFERENCED_BY_FRAGMENT_SHADER- , gl_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB- , gl_WEIGHT_ARRAY_ARB- , gl_TIME_ELAPSED_EXT- , gl_BACK_SECONDARY_COLOR_NV- , gl_COMPARE_REF_TO_TEXTURE_EXT- , gl_IS_PER_PATCH_EXT- , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE- , gl_TEXTURE_LUMINANCE_SIZE_EXT- , gl_COVERAGE_BUFFERS_NV- , gl_MATRIX5_ARB- , gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT- , gl_COMPRESSED_RGBA_ASTC_5x5x4_OES- , gl_CONVOLUTION_FILTER_BIAS- , gl_TRACE_PRIMITIVES_BIT_MESA- , gl_POINT_SPRITE- , gl_POLYGON_STIPPLE_BIT- , gl_DEBUG_SEVERITY_HIGH- , gl_RENDERBUFFER_STENCIL_SIZE_EXT- , gl_RED- , gl_DRAW_BUFFER12_NV- , gl_COMPRESSED_RGBA_ASTC_10x10_KHR- , gl_ACTIVE_TEXTURE- , gl_Q- , gl_STRICT_LIGHTING_HINT_PGI- , gl_INT8_VEC2_NV- , gl_MAP2_VERTEX_ATTRIB0_4_NV- , gl_SHADER_SOURCE_LENGTH- , gl_FLOAT_MAT4- , gl_COLOR_MATRIX_SGI- , gl_SAMPLER_2D_ARRAY_EXT- , gl_MODULATE_SUBTRACT_ATI- , gl_TRIANGLES_ADJACENCY_ARB- , gl_PROGRAM_TARGET_NV- , gl_GEOMETRY_SHADER_ARB- , gl_TEXTURE_BASE_LEVEL_SGIS- , gl_1PASS_SGIS- , gl_TEXTURE_HEIGHT_QCOM- , gl_LUMINANCE12_ALPHA4_EXT- , gl_PIXEL_TILE_HEIGHT_SGIX- , gl_UNSIGNED_INT_S8_S8_8_8_NV- , gl_SOURCE0_RGB- , gl_DRAW_BUFFER6_EXT- , gl_PATH_FILL_BOUNDING_BOX_NV- , gl_RENDER_MODE- , gl_X_EXT- , gl_CON_14_ATI- , gl_TRIANGLE_STRIP_ADJACENCY- , gl_ROUNDED_RECT_NV- , gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB- , gl_DSDT_MAG_INTENSITY_NV- , gl_MODELVIEW13_ARB- , gl_MAX_COMBINED_CLIP_AND_CULL_DISTANCES- , gl_CLIP_ORIGIN- , gl_PATH_CLIENT_LENGTH_NV- , gl_SAMPLE_ALPHA_TO_ONE_ARB- , gl_RENDERBUFFER_INTERNAL_FORMAT_OES- , gl_POINT_SPRITE_ARB- , gl_FLOAT_MAT3_ARB- , gl_IMAGE_CLASS_4_X_8- , gl_PIXEL_SUBSAMPLE_4242_SGIX- , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT- , gl_ROUNDED_RECT8_NV- , gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING- , gl_DST_NV- , gl_MAX_TRANSFORM_FEEDBACK_BUFFERS- , gl_FUNC_ADD_OES- , gl_VERTEX_STREAM7_ATI- , gl_RG_EXT- , gl_STENCIL_BACK_PASS_DEPTH_PASS- , gl_FRAMEBUFFER_RENDERABLE_LAYERED- , gl_MAP2_VERTEX_ATTRIB1_4_NV- , gl_DRAW_BUFFER2_ATI- , gl_RGBA_FLOAT16_ATI- , gl_EVAL_VERTEX_ATTRIB13_NV- , gl_DRAW_BUFFER15_ATI- , gl_MAP_WRITE_BIT- , gl_DOT3_RGBA- , gl_MAT_SHININESS_BIT_PGI- , gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN- , gl_MAX_TRACK_MATRIX_STACK_DEPTH_NV- , gl_MATRIX30_ARB- , gl_STENCIL_TEST- , gl_MAX_INTEGER_SAMPLES- , gl_COPY_READ_BUFFER_BINDING- , gl_TRANSFORM_FEEDBACK_BUFFER- , gl_LUMINANCE_FLOAT16_APPLE- , gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS- , gl_MAX_VERTEX_UNIFORM_VECTORS- , gl_WRITE_PIXEL_DATA_RANGE_LENGTH_NV- , gl_SAMPLER_RENDERBUFFER_NV- , gl_DRAW_BUFFER13_NV- , gl_RGB32F_ARB- , gl_FRAGMENT_LIGHT5_SGIX- , gl_MAX_GENERAL_COMBINERS_NV- , gl_TRANSPOSE_TEXTURE_MATRIX_ARB- , gl_OPERAND1_ALPHA_ARB- , gl_COLOR_ATTACHMENT12- , gl_GREEN_MAX_CLAMP_INGR- , gl_PATH_PROJECTION_STACK_DEPTH_NV- , gl_MAP2_COLOR_4- , gl_COLOR_SUM_EXT- , gl_CLAMP_FRAGMENT_COLOR_ARB- , gl_INDEX_BITS- , gl_CON_15_ATI- , gl_BLEND_OVERLAP_NV- , gl_DS_SCALE_NV- , gl_CURRENT_PALETTE_MATRIX_ARB- , gl_IMAGE_BINDING_LAYER_EXT- , gl_WEIGHT_SUM_UNITY_ARB- , gl_ALPHA32I_EXT- , gl_SHADER_STORAGE_BUFFER_SIZE- , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER- , gl_MAX_UNIFORM_LOCATIONS- , gl_DEBUG_SOURCE_OTHER_KHR- , gl_FRACTIONAL_EVEN- , gl_MIN_PROGRAM_TEXEL_OFFSET- , gl_WEIGHT_ARRAY_OES- , gl_RESET_NOTIFICATION_STRATEGY_KHR- , gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV- , gl_RGB2_EXT- , gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT- , gl_ELEMENT_ARRAY_BUFFER- , gl_MEDIUM_FLOAT- , gl_SAMPLER_1D_SHADOW_ARB- , gl_DRAW_BUFFER5- , gl_PARALLEL_ARRAYS_INTEL- , gl_REG_24_ATI- , gl_DEPTH_STENCIL_TO_BGRA_NV- , gl_MAX_FRAMEBUFFER_WIDTH- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES- , gl_POLYGON_OFFSET_FILL- , gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES- , gl_TEXTURE_GEN_T- , gl_TEXTURE_POST_SPECULAR_HP- , gl_TEXTURE_CUBE_MAP_NEGATIVE_X_OES- , gl_MAGNITUDE_SCALE_NV- , gl_VERTEX_SHADER_LOCALS_EXT- , gl_INT_2_10_10_10_REV- , gl_DOUBLE_MAT3x2_EXT- , gl_DISCARD_NV- , gl_MATRIX13_ARB- , gl_GENERATE_MIPMAP_HINT- , gl_MAX_PIXEL_MAP_TABLE- , gl_SHADER_STORAGE_BUFFER- , gl_BUFFER_UPDATE_BARRIER_BIT- , gl_FRAMEBUFFER_BINDING_OES- , gl_CONTEXT_PROFILE_MASK- , gl_MAX_VIEWPORTS- , gl_DRAW_BUFFER4_ARB- , gl_RESAMPLE_DECIMATE_SGIX- , gl_SHADER_OBJECT_ARB- , gl_SYNC_FLAGS_APPLE- , gl_Z4Y12Z4CB12Z4CR12_444_NV- , gl_VERTEX_ARRAY_LENGTH_NV- , gl_FOG_COORDINATE_ARRAY_LIST_IBM- , gl_FRAMEBUFFER_DEFAULT_SAMPLES- , gl_FLAT- , gl_REG_2_ATI- , gl_VIEWPORT_BIT- , gl_TEXTURE_VIEW_MIN_LEVEL_EXT- , gl_FRACTIONAL_ODD_EXT- , gl_VIRTUAL_PAGE_SIZE_X_ARB- , gl_GLOBAL_ALPHA_SUN- , gl_TEXTURE_BORDER- , gl_MAP2_VERTEX_ATTRIB7_4_NV- , gl_BUFFER_ACCESS- , gl_COLOR_ATTACHMENT15_EXT- , gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT- , gl_PRIMITIVE_RESTART_FIXED_INDEX- , gl_MAX_COMBINED_DIMENSIONS- , gl_MINUS_NV- , gl_NORMAL_MAP_ARB- , gl_MAT_AMBIENT_BIT_PGI- , gl_REG_14_ATI- , gl_SECONDARY_INTERPOLATOR_ATI- , gl_FRAGMENT_SHADER_BIT_EXT- , gl_CON_20_ATI- , gl_DYNAMIC_DRAW- , gl_STENCIL_INDEX1- , gl_DEPTH_COMPONENTS- , gl_SEPARATE_SPECULAR_COLOR_EXT- , gl_CONSTANT_COLOR0_NV- , gl_LUMINANCE16I_EXT- , gl_TEXTURE_COORD_ARRAY_SIZE_EXT- , gl_BLEND_DST_RGB- , gl_VARIABLE_C_NV- , gl_INT_VEC2_ARB- , gl_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX- , gl_PIXEL_MAP_G_TO_G_SIZE- , gl_BLUE_MIN_CLAMP_INGR- , gl_RETURN- , gl_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD- , gl_DOUBLE- , gl_COMBINE4_NV- , gl_IMAGE_ROTATE_ORIGIN_X_HP- , gl_COMBINER5_NV- , gl_SYNC_CONDITION- , gl_DEBUG_LOGGED_MESSAGES_ARB- , gl_REG_15_ATI- , gl_BUFFER_MAP_POINTER_OES- , gl_SM_COUNT_NV- , gl_MAX_FRAMEBUFFER_HEIGHT- , gl_INCR_WRAP_OES- , gl_GCCSO_SHADER_BINARY_FJ- , gl_DRAW_BUFFER4_NV- , gl_RGB565- , gl_WRITE_PIXEL_DATA_RANGE_NV- , gl_UNIFORM_OFFSET- , gl_UNSIGNED_INT64_ARB- , gl_STENCIL_RENDERABLE- , gl_COMPRESSED_RGBA_BPTC_UNORM- , gl_FLOAT_R32_NV- , gl_TEXTURE_CLIPMAP_OFFSET_SGIX- , gl_TEXTURE_IMAGE_VALID_QCOM- , gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC- , gl_IMAGE_PIXEL_TYPE- , gl_EDGE_FLAG_ARRAY_STRIDE- , gl_RED_SCALE- , gl_RENDERBUFFER_ALPHA_SIZE_OES- , gl_CLIP_DISTANCE7- , gl_INTENSITY32UI_EXT- , gl_DEBUG_SOURCE_WINDOW_SYSTEM_KHR- , gl_PN_TRIANGLES_ATI- , gl_LIGHT5- , gl_QUERY_RESULT_ARB- , gl_LUMINANCE16- , gl_ALPHA_TEST_QCOM- , gl_TEXTURE_BORDER_COLOR_NV- , gl_CULL_FRAGMENT_NV- , gl_PATH_GEN_MODE_NV- , gl_PROGRAM_POINT_SIZE_ARB- , gl_INTERNALFORMAT_DEPTH_TYPE- , gl_UNPACK_SKIP_ROWS- , gl_DEBUG_SEVERITY_NOTIFICATION- , gl_MAX_FRAGMENT_LIGHTS_SGIX- , gl_COUNTER_TYPE_AMD- , gl_TEXTURE_FETCH_BARRIER_BIT_EXT- , gl_CURRENT_NORMAL- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES- , gl_MULTIVIEW_EXT- , gl_TESS_GEN_VERTEX_ORDER_EXT- , gl_IMAGE_SCALE_X_HP- , gl_TEXTURE_COLOR_TABLE_SGI- , gl_DSDT_MAG_NV- , gl_Z400_BINARY_AMD- , gl_COLOR_INDEX8_EXT- , gl_SRGB8_NV- , gl_UNSIGNED_IDENTITY_NV- , gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES- , gl_ALPHA_SNORM- , gl_MAX_TEXTURE_UNITS- , gl_DEBUG_SEVERITY_MEDIUM_KHR- , gl_TEXTURE_RECTANGLE- , gl_CONTRAST_NV- , gl_FILL- , gl_BLEND_COLOR- , gl_POINT_SMOOTH_HINT- , gl_CONTEXT_ROBUST_ACCESS- , gl_FRAGMENT_PROGRAM_NV- , gl_OP_MULTIPLY_MATRIX_EXT- , gl_DEPENDENT_GB_TEXTURE_2D_NV- , gl_DOUBLE_EXT- , gl_VERTEX_PROGRAM_NV- , gl_PATH_END_CAPS_NV- , gl_PATH_STROKE_MASK_NV- , gl_SAMPLER_CUBE_SHADOW_EXT- , gl_COLOR_SAMPLES_NV- , gl_DUAL_INTENSITY16_SGIS- , gl_IMPLEMENTATION_COLOR_READ_TYPE_OES- , gl_MAX_DEBUG_GROUP_STACK_DEPTH_KHR- , gl_SCISSOR_TEST- , gl_ADJACENT_PAIRS_NV- , gl_MAX_VERTEX_ATTRIB_BINDINGS- , gl_TEXTURE_GATHER- , gl_LUMINANCE_ALPHA8UI_EXT- , gl_RELATIVE_ARC_TO_NV- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR- , gl_TEXTURE_BINDING_CUBE_MAP_EXT- , gl_FRAGMENT_ALPHA_MODULATE_IMG- , gl_CURRENT_VERTEX_EXT- , gl_MAP1_VERTEX_ATTRIB11_4_NV- , gl_MATRIX_INDEX_ARRAY_SIZE_ARB- , gl_TRANSFORM_FEEDBACK_BUFFER_MODE- , gl_PIXEL_TILE_CACHE_SIZE_SGIX- , gl_MODELVIEW0_EXT- , gl_FONT_DESCENDER_BIT_NV- , gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS- , gl_RASTERIZER_DISCARD- , gl_TRANSFORM_FEEDBACK_BUFFER_SIZE- , gl_MAX_DEBUG_MESSAGE_LENGTH_ARB- , gl_EXTENSIONS- , gl_RESAMPLE_AVERAGE_OML- , gl_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV- , gl_RELATIVE_SMALL_CCW_ARC_TO_NV- , gl_FRONT- , gl_BLEND_COLOR_EXT- , gl_BUFFER_ACCESS_OES- , gl_MATRIX29_ARB- , gl_GEOMETRY_LINKED_INPUT_TYPE_EXT- , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES- , gl_COLOR_ATTACHMENT12_EXT- , gl_DRAW_BUFFER1- , gl_FLOAT_32_UNSIGNED_INT_24_8_REV- , gl_UNSIGNED_INT_SAMPLER_2D_RECT_EXT- , gl_UNSIGNED_INT_SAMPLER_CUBE- , gl_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI- , gl_MAX_CULL_DISTANCES- , gl_TEXTURE_LOD_BIAS_S_SGIX- , gl_SPRITE_SGIX- , gl_VERTEX_ATTRIB_ARRAY3_NV- , gl_QUAD_INTENSITY4_SGIS- , gl_DIFFERENCE_KHR- , gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT- , gl_VOLATILE_APPLE- , gl_MAT_EMISSION_BIT_PGI- , gl_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV- , gl_DRAW_FRAMEBUFFER_BINDING- , gl_TEXTURE8- , gl_MUL_ATI- , gl_PROGRAM_OBJECT_EXT- , gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB- , gl_MATRIX_INDEX_ARRAY_TYPE_ARB- , gl_PIXEL_MAG_FILTER_EXT- , gl_LESS- , gl_SOURCE2_RGB_ARB- , gl_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH- , gl_PATH_STENCIL_VALUE_MASK_NV- , gl_IMPLEMENTATION_COLOR_READ_TYPE- , gl_TEXTURE_CLIPMAP_CENTER_SGIX- , gl_BUFFER- , gl_DEBUG_CALLBACK_USER_PARAM_ARB- , gl_FIXED_OES- , gl_INT_VEC2- , gl_VARIANT_VALUE_EXT- , gl_QUAD_STRIP- , gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT- , gl_ZERO_TO_ONE- , gl_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB- , gl_CND_ATI- , gl_PROGRAM_POINT_SIZE- , gl_VIEWPORT_BOUNDS_RANGE- , gl_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL- , gl_R1UI_T2F_N3F_V3F_SUN- , gl_DEPTH_STENCIL_EXT- , gl_RESCALE_NORMAL- , gl_INDEX_CLEAR_VALUE- , gl_VERTEX_STREAM5_ATI- , gl_CON_4_ATI- , gl_LAYOUT_DEFAULT_INTEL- , gl_RGBA8I_EXT- , gl_IMAGE_CLASS_4_X_16- , gl_RGB8_EXT- , gl_TEXTURE_DS_SIZE_NV- , gl_CLAMP_VERTEX_COLOR- , gl_DEPTH_CLEAR_VALUE- , gl_VERTEX_ATTRIB_ARRAY_SIZE_ARB- , gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS- , gl_RGB_FLOAT16_APPLE- , gl_DOT_PRODUCT_REFLECT_CUBE_MAP_NV- , gl_COLOR_ATTACHMENT1- , gl_MAX_TESS_GEN_LEVEL_EXT- , gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER- , gl_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM- , gl_MATRIX3_ARB- , gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB- , gl_FRAGMENT_PROGRAM_BINDING_NV- , gl_DOT2_ADD_ATI- , gl_CON_2_ATI- , gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES- , gl_UNIFORM_ARRAY_STRIDE- , gl_RECLAIM_MEMORY_HINT_PGI- , gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS- , gl_DRAW_BUFFER11_ARB- , gl_NORMAL_ARRAY- , gl_PATH_GEN_COMPONENTS_NV- , gl_COLOR_FLOAT_APPLE- , gl_WAIT_FAILED- , gl_SAMPLER_1D_ARRAY_SHADOW- , gl_PIXEL_TEX_GEN_Q_CEILING_SGIX- , gl_ALWAYS_FAST_HINT_PGI- , gl_GEOMETRY_OUTPUT_TYPE_EXT- , gl_MAX_PROGRAM_PATCH_ATTRIBS_NV- , gl_TEXTURE_1D_ARRAY- , gl_LIST_MODE- , gl_COLOR_ARRAY_TYPE- , gl_SAMPLE_MASK_VALUE_EXT- , gl_PIXEL_BUFFER_BARRIER_BIT- , gl_SCISSOR_BOX- , gl_UNSIGNED_INT_SAMPLER_3D_EXT- , gl_MAX_ATOMIC_COUNTER_BUFFER_SIZE- , gl_CLIENT_ALL_ATTRIB_BITS- , gl_TRANSPOSE_MODELVIEW_MATRIX_ARB- , gl_TEXTURE_BINDING_RECTANGLE_NV- , gl_ALPHA_FLOAT32_ATI- , gl_MAP1_TEXTURE_COORD_4- , gl_CONSTANT_ALPHA- , gl_PREVIOUS_EXT- , gl_PACK_COMPRESSED_SIZE_SGIX- , gl_IMAGE_2D_ARRAY_EXT- , gl_ASYNC_TEX_IMAGE_SGIX- , gl_QUERY_RESULT- , gl_MATRIX0_ARB- , gl_UNPACK_CMYK_HINT_EXT- , gl_MAP1_TEXTURE_COORD_1- , gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH- , gl_PN_TRIANGLES_POINT_MODE_LINEAR_ATI- , gl_TEXTURE_BLUE_SIZE_EXT- , gl_VARIANT_EXT- , gl_UNPACK_ROW_LENGTH- , gl_VARIANT_DATATYPE_EXT- , gl_LINEAR_MIPMAP_LINEAR- , gl_ALPHA8I_EXT- , gl_OUTPUT_TEXTURE_COORD20_EXT- , gl_EYE_LINEAR- , gl_VIEWPORT- , gl_SHADER_BINARY_DMP- , gl_TEXTURE25_ARB- , gl_UNSIGNED_SHORT_4_4_4_4_EXT- , gl_PROXY_HISTOGRAM_EXT- , gl_SCALEBIAS_HINT_SGIX- , gl_MAP_INVALIDATE_RANGE_BIT_EXT- , gl_FRAGMENT_PROGRAM_CALLBACK_MESA- , gl_TRANSLATE_3D_NV- , gl_PATH_COORD_COUNT_NV- , gl_MAX_ACTIVE_LIGHTS_SGIX- , gl_TRANSFORM_FEEDBACK_OVERFLOW_ARB- , gl_REFERENCE_PLANE_EQUATION_SGIX- , gl_PATH_TERMINAL_DASH_CAP_NV- , gl_INDEX_ARRAY- , gl_INNOCENT_CONTEXT_RESET_ARB- , gl_TEXTURE_BINDING_1D- , gl_TRANSFORM_FEEDBACK_BUFFER_STRIDE- , gl_QUERY_OBJECT_EXT- , gl_UNIFORM_BLOCK- , gl_CONVOLUTION_HEIGHT- , gl_STENCIL_FAIL- , gl_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX- , gl_TEXTURE_SAMPLES_IMG- , gl_REFLECTION_MAP_NV- , gl_GREEN_SCALE- , gl_TRANSFORM_FEEDBACK_BUFFER_EXT- , gl_LIGHTEN_NV- , gl_HISTOGRAM_ALPHA_SIZE_EXT- , gl_UNSIGNED_INT64_NV- , gl_LINE_STIPPLE_REPEAT- , gl_YCBCR_MESA- , gl_LEQUAL- , gl_BUFFER_USAGE_ARB- , gl_MAP1_VERTEX_ATTRIB6_4_NV- , gl_SAMPLER_BUFFER_AMD- , gl_OBJECT_DISTANCE_TO_LINE_SGIS- , gl_PIXEL_COUNT_NV- , gl_VERTEX_PROGRAM_POSITION_MESA- , gl_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI- , gl_POST_COLOR_MATRIX_BLUE_BIAS- , gl_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX- , gl_VERTEX_ATTRIB_MAP2_APPLE- , gl_PLUS_DARKER_NV- , gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT- , gl_FRAGMENT_SHADER_INVOCATIONS_ARB- , gl_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT- , gl_PROXY_TEXTURE_CUBE_MAP_ARRAY- , gl_UNSIGNED_INT_IMAGE_CUBE_EXT- , gl_DYNAMIC_DRAW_ARB- , gl_RGBA_SNORM- , gl_MAX_UNIFORM_BLOCK_SIZE- , gl_FUNC_REVERSE_SUBTRACT_EXT- , gl_STENCIL_BUFFER_BIT1_QCOM- , gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER- , gl_TEXTURE_1D_BINDING_EXT- , gl_RGBA4_EXT- , gl_PREFER_DOUBLEBUFFER_HINT_PGI- , gl_UNKNOWN_CONTEXT_RESET_KHR- , gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES- , gl_REFERENCED_BY_COMPUTE_SHADER- , gl_REG_17_ATI- , gl_BUFFER_FLUSHING_UNMAP_APPLE- , gl_UNIFORM- , gl_TEXCOORD4_BIT_PGI- , gl_BIAS_BY_NEGATIVE_ONE_HALF_NV- , gl_OP_FLOOR_EXT- , gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV- , gl_CURRENT_QUERY- , gl_UNIFORM_BUFFER_START- , gl_DEBUG_SEVERITY_HIGH_KHR- , gl_T2F_C4UB_V3F- , gl_FONT_GLYPHS_AVAILABLE_NV- , gl_MAX_CONVOLUTION_HEIGHT_EXT- , gl_STENCIL_BUFFER_BIT3_QCOM- , gl_MAP1_VERTEX_ATTRIB3_4_NV- , gl_BLEND_EQUATION_ALPHA_EXT- , gl_RGB_FLOAT32_APPLE- , gl_CONSTANT_BORDER- , gl_CON_0_ATI- , gl_VERTEX_ARRAY_RANGE_POINTER_NV- , gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV- , gl_INTERLACE_SGIX- , gl_UNPACK_CONSTANT_DATA_SUNX- , gl_VERTEX_BINDING_STRIDE- , gl_IS_PER_PATCH- , gl_AVERAGE_HP- , gl_MAX_VERTEX_ATTRIBS- , gl_MAX_SAMPLES_ANGLE- , gl_RED_EXT- , gl_MAP1_NORMAL- , gl_TEXTURE_COMPRESSED_BLOCK_HEIGHT- , gl_MIN_SAMPLE_SHADING_VALUE_ARB- , gl_COMPRESSED_SLUMINANCE_EXT- , gl_RGBA4- , gl_TEXTURE_VIEW_MIN_LAYER- , gl_ONE_EXT- , gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES- , gl_MODELVIEW31_ARB- , gl_MAX_TEXTURE_IMAGE_UNITS- , gl_COLOR_ATTACHMENT3_NV- , gl_LUMINANCE6_ALPHA2- , gl_POINT_SPRITE_R_MODE_NV- , gl_COMPARE_REF_TO_TEXTURE- , gl_MAX_PROJECTION_STACK_DEPTH- , gl_BLEND_DST_ALPHA- , gl_TEXTURE_1D_STACK_BINDING_MESAX- , gl_VERTEX_ATTRIB_ARRAY_LENGTH_NV- , gl_PROGRAM_PARAMETER_NV- , gl_VIDEO_CAPTURE_FRAME_WIDTH_NV- , gl_MATRIX21_ARB- , gl_LIST_BASE- , gl_COLOR_ATTACHMENT5- , gl_VERTEX_ARRAY_BINDING_APPLE- , gl_RELATIVE_LARGE_CW_ARC_TO_NV- , gl_MAX_DEFORMATION_ORDER_SGIX- , gl_COVERAGE_AUTOMATIC_NV- , gl_FOG_FUNC_SGIS- , gl_SAMPLER_BUFFER_EXT- , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT- , gl_RGB8- , gl_PRIMARY_COLOR_NV- , gl_DEPTH_TEXTURE_MODE_ARB- , gl_LUMINANCE12_ALPHA4- , gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS- , gl_TEXTURE_BUFFER_EXT- , gl_LINK_STATUS- , gl_VERTEX_SHADER_EXT- , gl_VERTEX_ARRAY_POINTER- , gl_ONE_MINUS_SRC1_ALPHA- , gl_TEXTURE_BUFFER_SIZE_EXT- , gl_DEBUG_SEVERITY_MEDIUM- , gl_ASYNC_READ_PIXELS_SGIX- , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME- , gl_REPLACE_EXT- , gl_DEBUG_SOURCE_APPLICATION_ARB- , gl_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES- , gl_BROWSER_DEFAULT_WEBGL- , gl_MULTISAMPLE_BUFFER_BIT0_QCOM- , gl_DUAL_ALPHA8_SGIS- , gl_COMPRESSED_RGB_FXT1_3DFX- , gl_BLEND_SRC_RGB_OES- , gl_T2F_IUI_V2F_EXT- , gl_DRAW_BUFFER13_ARB- , gl_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV- , gl_TEXTURE_INTENSITY_TYPE_ARB- , gl_DU8DV8_ATI- , gl_MAP1_VERTEX_ATTRIB14_4_NV- , gl_VARIANT_ARRAY_STRIDE_EXT- , gl_RGB_S3TC- , gl_NORMAL_ARRAY_POINTER- , gl_CONSTANT_ALPHA_EXT- , gl_COLOR_ATTACHMENT8_NV- , gl_MAX_LIST_NESTING- , gl_FRAMEBUFFER_UNDEFINED- , gl_ACTIVE_STENCIL_FACE_EXT- , gl_DEPTH_SCALE- , gl_READ_PIXELS_FORMAT- , gl_QUADS_EXT- , gl_MAX_COMBINED_SHADER_STORAGE_BLOCKS- , gl_OUTPUT_VERTEX_EXT- , gl_PROGRAM_ATTRIBS_ARB- , gl_MAP1_VERTEX_ATTRIB8_4_NV- , gl_INVALID_ENUM- , gl_1PASS_EXT- , gl_FUNC_ADD_EXT- , gl_DISTANCE_ATTENUATION_SGIS- , gl_REG_3_ATI- , gl_INTERPOLATE- , gl_MITER_TRUNCATE_NV- , gl_MAX_PROGRAM_NATIVE_ATTRIBS_ARB- , gl_CONTEXT_COMPATIBILITY_PROFILE_BIT- , gl_MATRIX_STRIDE- , gl_FONT_Y_MIN_BOUNDS_BIT_NV- , gl_COMBINER_BIAS_NV- , gl_TEXTURE_CUBE_MAP_POSITIVE_X_ARB- , gl_CIRCULAR_CW_ARC_TO_NV- , gl_UNSIGNED_INT_IMAGE_1D_EXT- , gl_BLUE_SCALE- , gl_OFFSET_TEXTURE_SCALE_NV- , gl_OFFSET_TEXTURE_2D_NV- , gl_INTERNALFORMAT_DEPTH_SIZE- , gl_TIMEOUT_IGNORED- , gl_BGRA_EXT- , gl_GEQUAL- , gl_EXCLUSION_KHR- , gl_LINES_ADJACENCY_ARB- , gl_MAX_COMPUTE_WORK_GROUP_COUNT- , gl_RENDERBUFFER_EXT- , gl_GENERATE_MIPMAP- , gl_SOURCE1_ALPHA_EXT- , gl_VERTEX_TEXTURE- , gl_LIGHT1- , gl_STATIC_READ_ARB- , gl_INTERLACE_READ_INGR- , gl_COMPRESSED_R11_EAC_OES- , gl_FRAGMENT_SHADER_ARB- , gl_CURRENT_RASTER_POSITION- , gl_WEIGHT_ARRAY_BUFFER_BINDING_OES- , gl_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT- , gl_RGB_FLOAT32_ATI- , gl_LUMINANCE16_ALPHA16_EXT- , gl_RENDERBUFFER_WIDTH_EXT- , gl_DEPTH_RANGE- , gl_4_BYTES- , gl_VERTEX_WEIGHTING_EXT- , gl_TEXTURE_SWIZZLE_B- , gl_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV- , gl_FEEDBACK_BUFFER_POINTER- , gl_CULL_VERTEX_IBM- , gl_UNPACK_SKIP_VOLUMES_SGIS- , gl_PIXEL_CUBIC_WEIGHT_EXT- , gl_DECR_WRAP_EXT- , gl_TEXTURE31- , gl_MAX_TESS_GEN_LEVEL- , gl_YCBAYCR8A_4224_NV- , gl_POINT_SPRITE_OES- , gl_SAMPLER_EXTERNAL_OES- , gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT- , gl_PIXEL_PACK_BUFFER_BINDING_ARB- , gl_DEBUG_CATEGORY_API_ERROR_AMD- , gl_TEXCOORD3_BIT_PGI- , gl_UNIFORM_BUFFER_EXT- , gl_COMPRESSED_RGBA8_ETC2_EAC- , gl_COLOR_SUM_CLAMP_NV- , gl_SAMPLER_CUBE- , gl_FRACTIONAL_ODD- , gl_ONE_MINUS_DST_COLOR- , gl_REG_9_ATI- , gl_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV- , gl_PIXEL_MAP_I_TO_G- , gl_FOG_COORD_ARRAY_STRIDE- , gl_TRIANGLES_ADJACENCY_EXT- , gl_DRAW_BUFFER14_EXT- , gl_TEXTURE_COMPARE_MODE_ARB- , gl_REFLECTION_MAP_OES- , gl_WARPS_PER_SM_NV- , gl_QUERY_WAIT- , gl_COMPRESSED_SLUMINANCE_ALPHA- , gl_MAP2_TEXTURE_COORD_3- , gl_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV- , gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV- , gl_INTENSITY_FLOAT32_ATI- , gl_CLAMP_TO_BORDER_SGIS- , gl_FIELDS_NV- , gl_MAX_GEOMETRY_OUTPUT_VERTICES- , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER- , gl_INT_SAMPLER_CUBE_EXT- , gl_SOURCE0_RGB_EXT- , gl_DRAW_BUFFER10_ATI- , gl_VERTEX_ATTRIB_ARRAY_INTEGER_EXT- , gl_COPY_WRITE_BUFFER_NV- , gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV- , gl_LUMINANCE8_OES- , gl_POST_CONVOLUTION_RED_BIAS_EXT- , gl_HSL_COLOR_KHR- , gl_SAMPLE_MASK_VALUE_NV- , gl_SLUMINANCE8_NV- , gl_ASYNC_MARKER_SGIX- , gl_TEXTURE17- , gl_SYNC_CL_EVENT_COMPLETE_ARB- , gl_INVARIANT_VALUE_EXT- , gl_BUMP_ROT_MATRIX_SIZE_ATI- , gl_ACTIVE_VARYING_MAX_LENGTH_NV- , gl_DEPTH_COMPONENT16- , gl_MODELVIEW25_ARB- , gl_SHADER_BINARY_VIV- , gl_VERTEX_ARRAY_STRIDE_EXT- , gl_VERTEX_ATTRIB_ARRAY_POINTER_ARB- , gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB- , gl_MAX_PALETTE_MATRICES_ARB- , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER- , gl_DEPTH_COMPONENT32_ARB- , gl_PRESERVE_ATI- , gl_PIXEL_TEX_GEN_ALPHA_LS_SGIX- , gl_VERTEX_PROGRAM_TWO_SIDE_NV- , gl_MAX_ELEMENTS_INDICES_EXT- , gl_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS- , gl_CONTEXT_LOST- , gl_VERTEX_SUBROUTINE_UNIFORM- , gl_COMPRESSED_SRGB_EXT- , gl_SAMPLER_2D_MULTISAMPLE_ARRAY- , gl_MAX_PROGRAM_ADDRESS_REGISTERS_ARB- , gl_STENCIL_INDEX_OES- , gl_PATH_INITIAL_END_CAP_NV- , gl_INTENSITY32F_ARB- , gl_SAMPLES_PASSED- , gl_INT_IMAGE_2D_RECT_EXT- , gl_CLIP_PLANE2- , gl_PALETTE8_RGB8_OES- , gl_ALPHA16I_EXT- , gl_VERTEX_ARRAY- , gl_TEXTURE23_ARB- , gl_AMBIENT_AND_DIFFUSE- , gl_MULTISAMPLE_BUFFER_BIT2_QCOM- , gl_LUMINANCE_FLOAT16_ATI- , gl_INDEX_ARRAY_TYPE- , gl_COMPATIBLE_SUBROUTINES- , gl_VERTEX4_BIT_PGI- , gl_FOG_COORD_SRC- , gl_FULL_SUPPORT- , gl_STEREO- , gl_LUMINANCE_ALPHA16UI_EXT- , gl_ONE_MINUS_SRC_COLOR- , gl_MAX_SHADER_STORAGE_BLOCK_SIZE- , gl_REPLICATE_BORDER_HP- , gl_VERTEX_ATTRIB_MAP1_ORDER_APPLE- , gl_CPU_OPTIMIZED_QCOM- , gl_FLOAT16_VEC2_NV- , gl_SAMPLE_ALPHA_TO_ONE_SGIS- , gl_MAP2_VERTEX_ATTRIB12_4_NV- , gl_COMBINER_MUX_SUM_NV- , gl_UNSIGNED_SHORT_5_6_5_REV_EXT- , gl_TEXTURE20_ARB- , gl_DOT3_RGB- , gl_STENCIL_BUFFER_BIT0_QCOM- , gl_LO_SCALE_NV- , gl_FONT_ASCENDER_BIT_NV- , gl_DRAW_BUFFER9_EXT- , gl_UNSIGNED_INT_2_10_10_10_REV- , gl_BINNING_CONTROL_HINT_QCOM- , gl_PROGRAM_TEMPORARIES_ARB- , gl_MODELVIEW27_ARB- , gl_RGBA16F_EXT- , gl_INDEX_ARRAY_TYPE_EXT- , gl_MAX_VERTEX_SHADER_LOCALS_EXT- , gl_TEXTURE_CUBE_MAP_POSITIVE_Z_OES- , gl_COMP_BIT_ATI- , gl_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT- , gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY- , gl_RGB10_A2_EXT- , gl_MAP1_VERTEX_ATTRIB4_4_NV- , gl_FLOAT_VEC3- , gl_DELETE_STATUS- , gl_PN_TRIANGLES_TESSELATION_LEVEL_ATI- , gl_UNCORRELATED_NV- , gl_RELATIVE_SMALL_CW_ARC_TO_NV- , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT- , gl_RGB_FLOAT16_ATI- , gl_DRAW_BUFFER7_ATI- , gl_COMBINE_ALPHA_ARB- , gl_RESET_NOTIFICATION_STRATEGY_EXT- , gl_DRAW_BUFFER10_NV- , gl_READ_PIXEL_DATA_RANGE_POINTER_NV- , gl_TRANSFORM_FEEDBACK_ACTIVE- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR- , gl_PROGRAM_PIPELINE_BINDING- , gl_SRGB8_ALPHA8- , gl_COLOR_INDEX16_EXT- , gl_PHONG_WIN- , gl_MAX_TEXTURE_IMAGE_UNITS_NV- , gl_DSDT8_MAG8_NV- , gl_COPY_READ_BUFFER- , gl_RGBA16F- , gl_UNSIGNED_SHORT_5_6_5- , gl_CLIP_DISTANCE5- , gl_TEXTURE_BINDING_3D_OES- , gl_IUI_V2F_EXT- , gl_OFFSET_HILO_TEXTURE_RECTANGLE_NV- , gl_ONE_MINUS_CONSTANT_ALPHA- , gl_SMALL_CW_ARC_TO_NV- , gl_IMAGE_BINDING_NAME_EXT- , gl_CURRENT_FOG_COORDINATE_EXT- , gl_SKIP_COMPONENTS4_NV- , gl_CLIP_PLANE5_IMG- , gl_PATH_MITER_LIMIT_NV- , gl_TEXTURE_3D- , gl_MAX_COMPUTE_SHADER_STORAGE_BLOCKS- , gl_COMPRESSED_LUMINANCE_LATC1_EXT- , gl_MULTISAMPLE_BUFFER_BIT3_QCOM- , gl_SECONDARY_COLOR_ARRAY_SIZE- , gl_RENDERBUFFER_SAMPLES_IMG- , gl_R1UI_C4UB_V3F_SUN- , gl_PIXEL_TEX_GEN_ALPHA_MS_SGIX- , gl_TRANSFORM_FEEDBACK_NV- , gl_FRAMEBUFFER_RENDERABLE- , gl_HARDLIGHT_KHR- , gl_SOURCE0_ALPHA- , gl_COMBINER4_NV- , gl_ELEMENT_ARRAY_BUFFER_BINDING- , gl_TEXTURE10_ARB- , gl_CURRENT_BINORMAL_EXT- , gl_REG_26_ATI- , gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS- , gl_ACTIVE_VARYINGS_NV- , gl_COMBINE_RGB_EXT- , gl_FRAMEBUFFER_COMPLETE_EXT- , gl_MAX_WIDTH- , gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS- , gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT- , gl_COLORDODGE_KHR- , gl_PATH_GEN_COEFF_NV- , gl_FLOAT_MAT4x3_NV- , gl_MINMAX_SINK- , gl_FRONT_AND_BACK- , gl_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT- , gl_MATRIX1_ARB- , gl_VIEWPORT_SUBPIXEL_BITS- , gl_MAX_DUAL_SOURCE_DRAW_BUFFERS- , gl_BOOL_VEC3_ARB- , gl_OPERAND2_ALPHA- , gl_MAX_DEBUG_GROUP_STACK_DEPTH- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR- , gl_PROGRAM- , gl_WEIGHT_ARRAY_SIZE_ARB- , gl_BUFFER_GPU_ADDRESS_NV- , gl_ALPHA8_EXT- , gl_RGBA_MODE- , gl_DUDV_ATI- , gl_VERTEX_ATTRIB_ARRAY_INTEGER_NV- , gl_RESAMPLE_DECIMATE_OML- , gl_QUERY_BUFFER- , gl_SINGLE_COLOR- , gl_INT_SAMPLER_RENDERBUFFER_NV- , gl_MAT_COLOR_INDEXES_BIT_PGI- , gl_MODELVIEW3_ARB- , gl_TESS_CONTROL_OUTPUT_VERTICES_EXT- , gl_PIXEL_MAP_B_TO_B- , gl_VERTEX_ATTRIB_MAP1_SIZE_APPLE- , gl_DOUBLE_MAT3- , gl_MAX_COMBINED_UNIFORM_BLOCKS- , gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT- , gl_MAX_VERTEX_IMAGE_UNIFORMS- , gl_QUERY_RESULT_NO_WAIT_AMD- , gl_MODELVIEW26_ARB- , gl_DEPTH_COMPONENT24_OES- , gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB- , gl_EVAL_VERTEX_ATTRIB6_NV- , gl_OUTPUT_TEXTURE_COORD24_EXT- , gl_COMPUTE_SHADER_BIT- , gl_MATRIX7_ARB- , gl_RENDER- , gl_VERTEX_ATTRIB_BINDING- , gl_VIDEO_CAPTURE_TO_422_SUPPORTED_NV- , gl_TEXTURE_COORD_ARRAY_ADDRESS_NV- , gl_UNSIGNED_INT_SAMPLER_2D_RECT- , gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB- , gl_GENERATE_MIPMAP_SGIS- , gl_SHADER_IMAGE_STORE- , gl_INT_SAMPLER_3D- , gl_PROGRAM_BINARY_LENGTH- , gl_REFERENCED_BY_GEOMETRY_SHADER- , gl_SHADER_IMAGE_ACCESS_BARRIER_BIT- , gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS- , gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT- , gl_LINE- , gl_RENDERBUFFER_ALPHA_SIZE_EXT- , gl_INTENSITY- , gl_AFFINE_3D_NV- , gl_ADD_SIGNED_ARB- , gl_OBJECT_COMPILE_STATUS_ARB- , gl_RGB8I_EXT- , gl_COMMAND_BARRIER_BIT- , gl_COMBINE_RGB- , gl_VERTEX_SHADER_BINDING_EXT- , gl_SECONDARY_COLOR_ARRAY_SIZE_EXT- , gl_DEPTH_EXT- , gl_LINE_RESET_TOKEN- , gl_SMOOTH_POINT_SIZE_GRANULARITY- , gl_SAMPLER_2D_MULTISAMPLE- , gl_PRIMARY_COLOR_ARB- , gl_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY- , gl_GEOMETRY_TEXTURE- , gl_SOURCE1_RGB_ARB- , gl_COLOR_ATTACHMENT6_EXT- , gl_PIXEL_MAP_I_TO_I- , gl_EVAL_VERTEX_ATTRIB7_NV- , gl_OP_MIN_EXT- , gl_RGB16F_EXT- , gl_TEXTURE_CUBE_MAP_POSITIVE_Z- , gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS- , gl_PACK_RESAMPLE_SGIX- , gl_GREEN_BIAS- , gl_DEPTH_STENCIL_NV- , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER- , gl_CON_29_ATI- , gl_COLOR_ARRAY_STRIDE_EXT- , gl_ISOLINES_EXT- , gl_MODELVIEW4_ARB- , gl_LINES_ADJACENCY- , gl_PATH_FILL_MASK_NV- , gl_HISTOGRAM_LUMINANCE_SIZE- , gl_TEXTURE_BINDING_RENDERBUFFER_NV- , gl_PIXEL_UNPACK_BUFFER_EXT- , gl_RENDERBUFFER_GREEN_SIZE- , gl_PASS_THROUGH_NV- , gl_GEOMETRY_VERTICES_OUT_EXT- , gl_EVAL_VERTEX_ATTRIB12_NV- , gl_SMOOTH_QUADRATIC_CURVE_TO_NV- , gl_TEXTURE_BUFFER_SIZE- , gl_READ_PIXEL_DATA_RANGE_NV- , gl_ALIASED_LINE_WIDTH_RANGE- , gl_TRACK_MATRIX_NV- , gl_COLOR_ARRAY_LIST_STRIDE_IBM- , gl_WEIGHT_ARRAY_POINTER_ARB- , gl_SMOOTH_LINE_WIDTH_GRANULARITY- , gl_CLIP_DISTANCE6- , gl_FRAMEBUFFER_BINDING- , gl_EVAL_VERTEX_ATTRIB4_NV- , gl_CURRENT_SECONDARY_COLOR_EXT- , gl_IMAGE_CLASS_2_X_32- , gl_PERSPECTIVE_CORRECTION_HINT- , gl_NATIVE_GRAPHICS_BEGIN_HINT_PGI- , gl_SATURATE_BIT_ATI- , gl_FONT_UNITS_PER_EM_BIT_NV- , gl_EVAL_VERTEX_ATTRIB3_NV- , gl_R16UI- , gl_OUTPUT_TEXTURE_COORD17_EXT- , gl_TEXTURE_MULTI_BUFFER_HINT_SGIX- , gl_SKIP_MISSING_GLYPH_NV- , gl_MIRROR_CLAMP_TO_EDGE_EXT- , gl_TEXTURE_TYPE_QCOM- , gl_RGB5_A1- , gl_UNIFORM_BARRIER_BIT_EXT- , gl_MULTISAMPLE- , gl_SAMPLES_ARB- , gl_RGBA_INTEGER- , gl_STENCIL_COMPONENTS- , gl_DEBUG_SEVERITY_LOW- , gl_TEXTURE_COMPARE_SGIX- , gl_COLOR_ARRAY_LIST_IBM- , gl_COMPRESSED_SIGNED_RED_RGTC1- , gl_MATRIX3_NV- , gl_MAX_FRAGMENT_UNIFORM_BLOCKS- , gl_INT_SAMPLER_3D_EXT- , gl_MODELVIEW19_ARB- , gl_SWIZZLE_STRQ_DQ_ATI- , gl_COMBINE_ARB- , gl_FRAGMENT_COLOR_EXT- , gl_RENDERBUFFER_WIDTH- , gl_LUMINANCE4_EXT- , gl_UNSIGNED_INT_SAMPLER_2D_EXT- , gl_RGB_SCALE_EXT- , gl_PIXEL_MAP_I_TO_R- , gl_DOT4_ATI- , gl_MAP1_VERTEX_ATTRIB7_4_NV- , gl_VERTEX_ATTRIB_ARRAY_ENABLED_ARB- , gl_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB- , gl_POST_COLOR_MATRIX_BLUE_SCALE_SGI- , gl_NUM_VIRTUAL_PAGE_SIZES_ARB- , gl_RENDERBUFFER_FREE_MEMORY_ATI- , gl_FRAMEBUFFER_DEFAULT_LAYERS- , gl_COMPUTE_SUBROUTINE- , gl_PROGRAM_TEX_INSTRUCTIONS_ARB- , gl_SIGNALED_APPLE- , gl_MULTISAMPLE_3DFX- , gl_TEXTURE_INDEX_SIZE_EXT- , gl_LAYOUT_LINEAR_INTEL- , gl_LERP_ATI- , gl_FACTOR_MAX_AMD- , gl_MATRIX2_ARB- , gl_EQUAL- , gl_COLOR_ATTACHMENT0_OES- , gl_MAX_COLOR_MATRIX_STACK_DEPTH_SGI- , gl_RGB16- , gl_COLOR_INDEX4_EXT- , gl_PROXY_TEXTURE_CUBE_MAP_EXT- , gl_STENCIL_BACK_FUNC_ATI- , gl_DRAW_BUFFER8_EXT- , gl_DST_ALPHA- , gl_DEBUG_SOURCE_SHADER_COMPILER_KHR- , gl_C4UB_V2F- , gl_INTERNALFORMAT_BLUE_TYPE- , gl_PIXEL_TILE_GRID_DEPTH_SGIX- , gl_DEPTH_BITS- , gl_FLOAT16_VEC3_NV- , gl_ARRAY_OBJECT_OFFSET_ATI- , gl_DOUBLE_MAT2_EXT- , gl_TEXTURE_COLOR_SAMPLES_NV- , gl_NORMAL_ARRAY_EXT- , gl_MIRROR_CLAMP_TO_EDGE_ATI- , gl_EDGE_FLAG_ARRAY_POINTER- , gl_UNSIGNED_INT_24_8_MESA- , gl_IMAGE_COMPATIBILITY_CLASS- , gl_BACK_LEFT- , gl_TESS_EVALUATION_SHADER_INVOCATIONS_ARB- , gl_COLOR_TABLE_BIAS- , gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG- , gl_DARKEN_KHR- , gl_OCCLUSION_TEST_RESULT_HP- , gl_DEBUG_TYPE_POP_GROUP_KHR- , gl_CLAMP_TO_BORDER_ARB- , gl_UNSIGNED_BYTE_2_3_3_REV- , gl_SOURCE2_ALPHA_ARB- , gl_SAMPLE_COVERAGE- , gl_INTERLEAVED_ATTRIBS_EXT- , gl_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL- , gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING- , gl_VERTEX_SHADER- , gl_INDEX_ARRAY_ADDRESS_NV- , gl_QUERY_COUNTER_BITS- , gl_COMPRESSED_RGBA_ASTC_8x6_KHR- , gl_FRAMEBUFFER_BINDING_EXT- , gl_VERTEX_ELEMENT_SWIZZLE_AMD- , gl_DEBUG_CATEGORY_SHADER_COMPILER_AMD- , gl_ARRAY_OBJECT_BUFFER_ATI- , gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES- , gl_RENDERBUFFER_INTERNAL_FORMAT- , gl_VIEW_CLASS_8_BITS- , gl_TEXTURE_CUBE_MAP_POSITIVE_Y_OES- , gl_SHADER_IMAGE_ATOMIC- , gl_MAX_GEOMETRY_OUTPUT_VERTICES_ARB- , gl_COVERAGE_ATTACHMENT_NV- , gl_NUM_PROGRAM_BINARY_FORMATS_OES- , gl_CURRENT_RASTER_TEXTURE_COORDS- , gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS- , gl_PIXEL_MAP_A_TO_A- , gl_TEXTURE_WRAP_T- , gl_LINE_SMOOTH_HINT- , gl_DRAW_BUFFER11_EXT- , gl_OFFSET_TEXTURE_RECTANGLE_SCALE_NV- , gl_LUMINANCE16_SNORM- , gl_PERFQUERY_FLUSH_INTEL- , gl_HISTOGRAM_SINK- , gl_MAP1_VERTEX_ATTRIB15_4_NV- , gl_OUTPUT_TEXTURE_COORD7_EXT- , gl_HISTOGRAM_BLUE_SIZE- , gl_LUMINANCE32F_EXT- , gl_RG16UI- , gl_TEXTURE_ALPHA_MODULATE_IMG- , gl_INT_SAMPLER_2D_RECT- , gl_STENCIL_BACK_WRITEMASK- , gl_PIXEL_TRANSFORM_2D_MATRIX_EXT- , gl_AUX3- , gl_FRAMEBUFFER_UNSUPPORTED- , gl_MAX_TEXTURE_MAX_ANISOTROPY_EXT- , gl_TEXTURE_DEFORMATION_SGIX- , gl_CON_23_ATI- , gl_CLIP_DISTANCE0- , gl_COLOR_ATTACHMENT10- , gl_POINT_SIZE_MAX_EXT- , gl_TEXTURE5- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR- , gl_PATH_MODELVIEW_MATRIX_NV- , gl_LINE_LOOP- , gl_MODELVIEW17_ARB- , gl_UNSIGNED_INT16_VEC2_NV- , gl_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES- , gl_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS- , gl_DRAW_BUFFER3_EXT- , gl_TEXTURE_SHADOW- , gl_STENCIL_ATTACHMENT- , gl_MAP_STENCIL- , gl_PATH_DASH_ARRAY_COUNT_NV- , gl_BLEND- , gl_UNIFORM_BUFFER_OFFSET_ALIGNMENT- , gl_TEXTURE_TARGET_QCOM- , gl_NORMAL_MAP_OES- , gl_UNSIGNED_SHORT_4_4_4_4_REV_EXT- , gl_TEXTURE20- , gl_EDGE_FLAG_ARRAY_COUNT_EXT- , gl_SMOOTH- , gl_SHADER_INCLUDE_ARB- , gl_CLAMP_TO_EDGE_SGIS- , gl_COMPRESSED_ALPHA- , gl_TEXTURE_IMAGE_FORMAT- , gl_MAX_FRAMEBUFFER_LAYERS- , gl_WRITEONLY_RENDERING_QCOM- , gl_BACK_RIGHT- , gl_INVARIANT_DATATYPE_EXT- , gl_LINE_TO_NV- , gl_PIXEL_UNPACK_BUFFER_BINDING_ARB- , gl_LIST_BIT- , gl_MAX_ATTRIB_STACK_DEPTH- , gl_FRAGMENT_SHADER- , gl_IMPLEMENTATION_COLOR_READ_FORMAT- , gl_COLOR_TABLE_WIDTH_SGI- , gl_DEBUG_OBJECT_MESA- , gl_EYE_LINE_SGIS- , gl_COMPRESSED_ALPHA_ARB- , gl_DEPTH_BUFFER_BIT7_QCOM- , gl_OPERAND2_RGB_ARB- , gl_PROGRAM_BINARY_ANGLE- , gl_MATRIX_EXT- , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS- , gl_RED_NV- , gl_LIGHT7- , gl_LOW_FLOAT- , gl_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT- , gl_CON_18_ATI- , gl_UNIFORM_BUFFER_ADDRESS_NV- , gl_VERTEX_ARRAY_BUFFER_BINDING_ARB- , gl_RED_BIT_ATI- , gl_TRACE_TEXTURES_BIT_MESA- , gl_GEOMETRY_SHADER- , gl_VERTEX_ARRAY_ADDRESS_NV- , gl_TIMEOUT_IGNORED_APPLE- , gl_RENDERBUFFER_BINDING- , gl_RGB16F- , gl_TEXTURE_COORD_ARRAY_LENGTH_NV- , gl_MAX_FRAMEBUFFER_LAYERS_EXT- , gl_MODELVIEW23_ARB- , gl_BGR_EXT- , gl_ONE_MINUS_SRC1_COLOR- , gl_VARIANT_ARRAY_EXT- , gl_RGB4- , gl_RENDERBUFFER_DEPTH_SIZE_OES- , gl_MAX_VARYING_COMPONENTS_EXT- , gl_CURRENT_MATRIX_NV- , gl_T2F_IUI_N3F_V3F_EXT- , gl_SLUMINANCE8- , gl_MODELVIEW1_MATRIX_EXT- , gl_MODELVIEW29_ARB- , gl_COLOR_ATTACHMENT5_EXT- , gl_DOUBLE_MAT2- , gl_RGBA12_EXT- , gl_ACCUM_BLUE_BITS- , gl_INVARIANT_EXT- , gl_ACTIVE_UNIFORM_MAX_LENGTH- , gl_FOG_SPECULAR_TEXTURE_WIN- , gl_COLOR_TABLE_SCALE_SGI- , gl_IUI_V3F_EXT- , gl_UNSIGNED_INT_IMAGE_3D_EXT- , gl_MAX_DEBUG_MESSAGE_LENGTH_KHR- , gl_TEXTURE_CUBE_MAP_POSITIVE_Y- , gl_DOUBLE_VEC2- , gl_MAX_SAMPLE_MASK_WORDS- , gl_DEBUG_OUTPUT- , gl_OBJECT_SHADER_SOURCE_LENGTH_ARB- , gl_R32F_EXT- , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV- , gl_COPY_WRITE_BUFFER_BINDING- , gl_TEXTURE15_ARB- , gl_UNIFORM_BLOCK_NAME_LENGTH- , gl_COLOR_ATTACHMENT4_NV- , gl_DST_OVER_NV- , gl_ATOMIC_COUNTER_BUFFER- , gl_MAP1_VERTEX_ATTRIB12_4_NV- , gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB- , gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV- , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE- , gl_RGB_RAW_422_APPLE- , gl_MAX_RECTANGLE_TEXTURE_SIZE- , gl_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT- , gl_FRAGMENT_COLOR_MATERIAL_SGIX- , gl_POST_COLOR_MATRIX_RED_SCALE_SGI- , gl_VIBRANCE_SCALE_NV- , gl_POINT_FADE_THRESHOLD_SIZE- , gl_QUERY_NO_WAIT_NV- , gl_FRAGMENT_SHADER_DERIVATIVE_HINT_OES- , gl_RESAMPLE_REPLICATE_OML- , gl_RENDERBUFFER_BINDING_ANGLE- , gl_R1UI_V3F_SUN- , gl_CONVOLUTION_2D- , gl_OBJECT_TYPE- , gl_MAX_MAP_TESSELLATION_NV- , gl_DOUBLE_MAT4x3_EXT- , gl_MULTISAMPLE_BUFFER_BIT4_QCOM- , gl_UNSIGNED_INT64_AMD- , gl_MAX_PATCH_VERTICES- , gl_TEXTURE_COMPONENTS- , gl_ELEMENT_ARRAY_POINTER_APPLE- , gl_COLOR_ATTACHMENT6_NV- , gl_MODELVIEW_PROJECTION_NV- , gl_STATIC_ATI- , gl_TEXTURE_CUBE_MAP_NEGATIVE_Z- , gl_CONVOLUTION_BORDER_MODE- , gl_2PASS_0_SGIS- , gl_GREEN_INTEGER_EXT- , gl_DEBUG_TYPE_OTHER- , gl_FRAMEBUFFER_SRGB_EXT- , gl_COLOR_WRITEMASK- , gl_TANGENT_ARRAY_EXT- , gl_FONT_TARGET_UNAVAILABLE_NV- , gl_FONT_UNAVAILABLE_NV- , gl_COMBINER2_NV- , gl_TEXTURE22_ARB- , gl_PATH_INITIAL_DASH_CAP_NV- , gl_SWIZZLE_STRQ_ATI- , gl_OBJECT_LINE_SGIS- , gl_MAX_NUM_ACTIVE_VARIABLES- , gl_COLOR_ATTACHMENT3_EXT- , gl_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI- , gl_SCREEN_KHR- , gl_ZOOM_X- , gl_PROGRAM_MATRIX_EXT- , gl_TEXTURE_VIEW- , gl_NEGATIVE_ONE_TO_ONE- , gl_CONVOLUTION_1D_EXT- , gl_CLAMP_READ_COLOR- , gl_REFLECTION_MAP- , gl_PROXY_HISTOGRAM- , gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS- , gl_HALF_FLOAT_ARB- , gl_LINE_QUALITY_HINT_SGIX- , gl_MAP_WRITE_BIT_EXT- , gl_PIXEL_TRANSFORM_2D_EXT- , gl_INCR- , gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES- , gl_LUMINANCE_FLOAT32_ATI- , gl_EVAL_VERTEX_ATTRIB11_NV- , gl_TEXTURE_COORD_ARRAY_SIZE- , gl_IMAGE_BINDING_LEVEL_EXT- , gl_RGBA16I_EXT- , gl_T2F_IUI_N3F_V2F_EXT- , gl_MIN_PROGRAM_TEXEL_OFFSET_NV- , gl_EQUIV- , gl_TEXTURE_BINDING_CUBE_MAP_ARB- , gl_DRAW_BUFFER1_NV- , gl_INTERLACE_READ_OML- , gl_TEXTURE15- , gl_NAND- , gl_VERTEX_ARRAY_RANGE_APPLE- , gl_CONDITION_SATISFIED_APPLE- , gl_DISPATCH_INDIRECT_BUFFER_BINDING- , gl_RG16I- , gl_EYE_RADIAL_NV- , gl_SLUMINANCE_ALPHA_EXT- , gl_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL- , gl_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT- , gl_RG32F- , gl_SRC1_ALPHA- , gl_RGBA2- , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES- , gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT- , gl_TEXTURE_COORD_ARRAY_STRIDE_EXT- , gl_OUTPUT_TEXTURE_COORD10_EXT- , gl_DEPTH_ATTACHMENT- , gl_NORMAL_ARRAY_POINTER_EXT- , gl_OPERAND0_ALPHA_ARB- , gl_COMPRESSED_LUMINANCE_ARB- , gl_LIST_PRIORITY_SGIX- , gl_BOUNDING_BOX_NV- , gl_PATCH_VERTICES_EXT- , gl_COPY_INVERTED- , gl_FRAMEBUFFER_BARRIER_BIT_EXT- , gl_OBJECT_ACTIVE_ATTRIBUTES_ARB- , gl_DISCRETE_AMD- , gl_DOT3_RGBA_ARB- , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES- , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES- , gl_SET- , gl_TEXTURE_MAX_ANISOTROPY_EXT- , gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2- , gl_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB- , gl_MAP2_GRID_DOMAIN- , gl_RENDERBUFFER_SAMPLES- , gl_MAX_TEXTURE_LOD_BIAS- , gl_DEPTH_PASS_INSTRUMENT_SGIX- , gl_TEXTURE_COORD_NV- , gl_PROGRAM_ERROR_POSITION_NV- , gl_RENDERBUFFER_RED_SIZE_EXT- , gl_INDEX_OFFSET- , gl_CURRENT_FOG_COORD- , gl_MIRRORED_REPEAT- , gl_MAP_INVALIDATE_BUFFER_BIT- , gl_MATRIX_INDEX_ARRAY_OES- , gl_DRAW_BUFFER6_ATI- , gl_INTENSITY12- , gl_FLOAT_RGBA_NV- , gl_SMOOTH_POINT_SIZE_RANGE- , gl_COLOR_BUFFER_BIT1_QCOM- , gl_TEXT_FRAGMENT_SHADER_ATI- , gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT- , gl_CLIP_PLANE3- , gl_NAMED_STRING_TYPE_ARB- , gl_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB- , gl_TEXTURE_VIEW_MIN_LEVEL- , gl_SWIZZLE_STQ_ATI- , gl_RGBA_FLOAT_MODE_ARB- , gl_RG8UI- , gl_FRAGMENT_DEPTH- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR- , gl_MULTISAMPLE_SGIS- , gl_PROXY_TEXTURE_1D- , gl_MODELVIEW0_ARB- , gl_LINE_STRIP_ADJACENCY_EXT- , gl_RGBA16UI- , gl_SRC_ATOP_NV- , gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE- , gl_REG_30_ATI- , gl_4PASS_3_EXT- , gl_INT_IMAGE_3D_EXT- , gl_SYSTEM_FONT_NAME_NV- , gl_DRAW_BUFFER6- , gl_RG32I- , gl_COLOR_BUFFER_BIT3_QCOM- , gl_CURRENT_OCCLUSION_QUERY_ID_NV- , gl_INTERNALFORMAT_STENCIL_SIZE- , gl_STATIC_DRAW_ARB- , gl_COMPRESSED_SRGB_ALPHA_EXT- , gl_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI- , gl_PALETTE8_RGBA4_OES- , gl_FOG_START- , gl_DEBUG_TYPE_POP_GROUP- , gl_DRAW_BUFFER14_ATI- , gl_IMAGE_1D_ARRAY- , gl_RELATIVE_LARGE_CCW_ARC_TO_NV- , gl_FONT_MAX_ADVANCE_HEIGHT_BIT_NV- , gl_EXCLUSION_NV- , gl_FONT_X_MAX_BOUNDS_BIT_NV- , gl_PIXEL_TEX_GEN_Q_FLOOR_SGIX- , gl_DEPTH_BUFFER_BIT2_QCOM- , gl_UNPACK_FLIP_Y_WEBGL- , gl_COLOR_ATTACHMENT15_NV- , gl_RG16F_EXT- , gl_PRIMARY_COLOR- , gl_UNIFORM_BLOCK_DATA_SIZE- , gl_INTERNALFORMAT_STENCIL_TYPE- , gl_COLOR_MATRIX_STACK_DEPTH_SGI- , gl_AND- , gl_GEOMETRY_INPUT_TYPE_ARB- , gl_SAMPLER_BUFFER- , gl_COLOR_BUFFER_BIT2_QCOM- , gl_MAX_CLIP_DISTANCES- , gl_OUTPUT_TEXTURE_COORD25_EXT- , gl_SLIM8U_SGIX- , gl_OP_DOT4_EXT- , gl_INFO_LOG_LENGTH- , gl_REG_25_ATI- , gl_MAX_PROGRAM_CALL_DEPTH_NV- , gl_VIRTUAL_PAGE_SIZE_INDEX_ARB- , gl_MAX_PROGRAM_RESULT_COMPONENTS_NV- , gl_RELATIVE_CONIC_CURVE_TO_NV- , gl_CLIP_DISTANCE4- , gl_UTF8_NV- , gl_INVALID_INDEX- , gl_DOT3_RGBA_IMG- , gl_FRAGMENT_MATERIAL_EXT- , gl_PACK_CMYK_HINT_EXT- , gl_LUMINANCE_ALPHA8I_EXT- , gl_PIXEL_BUFFER_BARRIER_BIT_EXT- , gl_BUFFER_KHR- , gl_STENCIL_BACK_OP_VALUE_AMD- , gl_DST_COLOR- , gl_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT- , gl_ZERO- , gl_COORD_REPLACE- , gl_FRAMEBUFFER_SRGB- , gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES- , gl_CONSTANT- , gl_TEXTURE_CONSTANT_DATA_SUNX- , gl_MAX_DEBUG_MESSAGE_LENGTH- , gl_MAX_VARYING_FLOATS- , gl_PLUS_NV- , gl_UNIFORM_NAME_LENGTH- , gl_SECONDARY_COLOR_ARRAY_STRIDE- , gl_MAP1_VERTEX_ATTRIB13_4_NV- , gl_TRACK_MATRIX_TRANSFORM_NV- , gl_MAX_COMPUTE_UNIFORM_COMPONENTS- , gl_DOUBLE_MAT4- , gl_TEXTURE_SRGB_DECODE_EXT- , gl_TEXTURE_BORDER_COLOR- , gl_DISPLAY_LIST- , gl_COLOR_ENCODING- , gl_EXPAND_NEGATE_NV- , gl_UNPACK_ROW_LENGTH_EXT- , gl_RGB_SCALE_ARB- , gl_CURRENT_ATTRIB_NV- , gl_TEXTURE25- , gl_DEPTH- , gl_DRAW_BUFFER2_ARB- , gl_FENCE_CONDITION_NV- , gl_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB- , gl_OP_POWER_EXT- , gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB- , gl_FRAMEBUFFER_DEFAULT- , gl_COLOR_ATTACHMENT13_EXT- , gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE- , gl_CUBIC_HP- , gl_GREATER- , gl_OP_MOV_EXT- , gl_RED_SNORM- , gl_ALPHA_MAX_CLAMP_INGR- , gl_VERTEX_ATTRIB_ARRAY_LONG- , gl_DEBUG_SEVERITY_LOW_ARB- , gl_PURGEABLE_APPLE- , gl_MAX_SHININESS_NV- , gl_VERTEX_SHADER_INVARIANTS_EXT- , gl_CLIP_DISTANCE1- , gl_PROGRAM_NATIVE_PARAMETERS_ARB- , gl_SRC_ALPHA_SATURATE- , gl_COLOR_RENDERABLE- , gl_LINE_STIPPLE- , gl_COMPILE_AND_EXECUTE- , gl_FOG_COORDINATE- , gl_MULTISAMPLE_COVERAGE_MODES_NV- , gl_OUTPUT_TEXTURE_COORD16_EXT- , gl_SCALE_BY_FOUR_NV- , gl_INDEX_ARRAY_BUFFER_BINDING_ARB- , gl_MAX_TEXTURE_IMAGE_UNITS_ARB- , gl_HALF_BIAS_NEGATE_NV- , gl_INT_IMAGE_2D_MULTISAMPLE_EXT- , gl_CON_30_ATI- , gl_SAMPLE_ALPHA_TO_ONE_EXT- , gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB- , gl_STORAGE_CACHED_APPLE- , gl_SAMPLER_2D_SHADOW- , gl_ALPHA_FLOAT16_APPLE- , gl_PERFQUERY_COUNTER_EVENT_INTEL- , gl_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB- , gl_BACK_PRIMARY_COLOR_NV- , gl_PROGRAM_PARAMETERS_ARB- , gl_MIN_SPARSE_LEVEL_AMD- , gl_INT_SAMPLER_1D_ARRAY_EXT- , gl_DOUBLEBUFFER- , gl_NEGATIVE_W_EXT- , gl_VIEW_CLASS_RGTC1_RED- , gl_PROGRAM_KHR- , gl_LINEARDODGE_NV- , gl_NORMALIZED_RANGE_EXT- , gl_BUFFER_SERIALIZED_MODIFY_APPLE- , gl_TEXTURE3_ARB- , gl_INDEX_TEST_FUNC_EXT- , gl_COMPUTE_TEXTURE- , gl_UNSIGNED_INT_IMAGE_BUFFER_EXT- , gl_CON_9_ATI- , gl_RELATIVE_LINE_TO_NV- , gl_TEXTURE_RECTANGLE_NV- , gl_COMPRESSED_RGBA_S3TC_DXT5_ANGLE- , gl_COMPRESSED_RGBA_ASTC_6x5_KHR- , gl_TEXTURE_LUMINANCE_SIZE- , gl_PROJECTION_MATRIX- , gl_VIBRANCE_BIAS_NV- , gl_MAX_VERTEX_ATOMIC_COUNTERS- , gl_FOG_COORD_ARRAY_POINTER- , gl_POLYGON_OFFSET_BIAS_EXT- , gl_DEBUG_SOURCE_OTHER- , gl_LINEAR_SHARPEN_ALPHA_SGIS- , gl_AVERAGE_EXT- , gl_PACK_SKIP_IMAGES_EXT- , gl_BITMAP_TOKEN- , gl_TESSELLATION_MODE_AMD- , gl_POST_CONVOLUTION_COLOR_TABLE_SGI- , gl_MODELVIEW1_EXT- , gl_OPERAND1_RGB_ARB- , gl_4D_COLOR_TEXTURE- , gl_ACTIVE_ATTRIBUTES- , gl_BUFFER_BINDING- , gl_VERTEX_STATE_PROGRAM_NV- , gl_DST_ATOP_NV- , gl_TEXTURE_DEPTH_EXT- , gl_UNSIGNED_INT_VEC4- , gl_GREEN_INTEGER- , gl_DOUBLE_MAT4x2_EXT- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR- , gl_INDEX_ARRAY_LIST_IBM- , gl_SAMPLER_2D_ARRAY_SHADOW- , gl_COMPRESSED_SRGB_S3TC_DXT1_NV- , gl_COMPRESSED_RGBA_ASTC_4x3x3_OES- , gl_DRAW_BUFFER3_ATI- , gl_MAX_FRAGMENT_UNIFORM_COMPONENTS- , gl_PROXY_TEXTURE_3D_EXT- , gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT- , gl_PATH_COMPUTED_LENGTH_NV- , gl_DEPTH_STENCIL_MESA- , gl_MAT_DIFFUSE_BIT_PGI- , gl_TEXTURE_STENCIL_SIZE- , gl_PATH_PROJECTION_NV- , gl_DUAL_TEXTURE_SELECT_SGIS- , gl_MATRIX14_ARB- , gl_PATH_OBJECT_BOUNDING_BOX_NV- , gl_READ_PIXELS- , gl_TRIANGLE_LIST_SUN- , gl_COMPARE_R_TO_TEXTURE- , gl_INTENSITY8UI_EXT- , gl_DEBUG_OUTPUT_SYNCHRONOUS_ARB- , gl_COLOR_TABLE_GREEN_SIZE- , gl_CURRENT_VERTEX_ATTRIB- , gl_POST_COLOR_MATRIX_GREEN_BIAS- , gl_GPU_MEMORY_INFO_EVICTION_COUNT_NVX- , gl_SUBSAMPLE_DISTANCE_AMD- , gl_SRGB8_EXT- , gl_DETAIL_TEXTURE_FUNC_POINTS_SGIS- , gl_INCR_WRAP_EXT- , gl_UNPACK_COMPRESSED_BLOCK_SIZE- , gl_OBJECT_VALIDATE_STATUS_ARB- , gl_WEIGHT_ARRAY_STRIDE_ARB- , gl_OUTPUT_TEXTURE_COORD3_EXT- , gl_TEXTURE16_ARB- , gl_VIDEO_COLOR_CONVERSION_MATRIX_NV- , gl_EYE_DISTANCE_TO_POINT_SGIS- , gl_TEXTURE_COMPARE_FUNC- , gl_DEPTH_BUFFER_FLOAT_MODE_NV- , gl_TEXTURE_SWIZZLE_G- , gl_DEBUG_TYPE_OTHER_ARB- , gl_TESS_EVALUATION_SHADER_BIT_EXT- , gl_VERTEX_PROGRAM_CALLBACK_DATA_MESA- , gl_INT_SAMPLER_BUFFER_EXT- , gl_OP_CLAMP_EXT- , gl_POINT_SIZE_MIN- , gl_UNSIGNED_BYTE_3_3_2_EXT- , gl_TEXTURE_CLIPMAP_DEPTH_SGIX- , gl_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT- , gl_DOUBLE_VEC4_EXT- , gl_SYNC_CONDITION_APPLE- , gl_MAX_TEXTURE_COORDS_NV- , gl_RELATIVE_QUADRATIC_CURVE_TO_NV- , gl_DEBUG_GROUP_STACK_DEPTH_KHR- , gl_CONTEXT_LOST_KHR- , gl_QUADRATIC_CURVE_TO_NV- , gl_MIN_EXT- , gl_VERTEX_ATTRIB_ARRAY11_NV- , gl_FACTOR_ALPHA_MODULATE_IMG- , gl_MAP1_GRID_DOMAIN- , gl_COLOR_MATRIX_STACK_DEPTH- , gl_IMAGE_PIXEL_FORMAT- , gl_DRAW_BUFFER1_EXT- , gl_UNSIGNED_INT_VEC2- , gl_QUAD_LUMINANCE8_SGIS- , gl_ELEMENT_ARRAY_UNIFIED_NV- , gl_COLOR_LOGIC_OP- , gl_GREEN_NV- , gl_DEPTH_COMPONENT- , gl_TEXTURE18- , gl_COMBINER_SUM_OUTPUT_NV- , gl_DUAL_LUMINANCE8_SGIS- , gl_PATH_DASH_OFFSET_RESET_NV- , gl_INT_SAMPLER_BUFFER- , gl_DEBUG_SEVERITY_MEDIUM_ARB- , gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT- , gl_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX- , gl_UNSIGNED_SHORT_15_1_MESA- , gl_LUMINANCE32F_ARB- , gl_TRANSPOSE_NV- , gl_LUMINANCE8_EXT- , gl_WRITE_DISCARD_NV- , gl_STENCIL_BUFFER_BIT5_QCOM- , gl_FOG_END- , gl_DRAW_BUFFER9_NV- , gl_PROVOKING_VERTEX_EXT- , gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS- , gl_2PASS_0_EXT- , gl_MAP_UNSYNCHRONIZED_BIT- , gl_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI- , gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV- , gl_SAMPLER_CUBE_SHADOW- , gl_V2F- , gl_IMAGE_2D_EXT- , gl_LUMINANCE32UI_EXT- , gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT- , gl_SLUMINANCE8_ALPHA8_NV- , gl_MAX_ASYNC_DRAW_PIXELS_SGIX- , gl_POINT_SIZE_ARRAY_TYPE_OES- , gl_SIGNED_LUMINANCE8_ALPHA8_NV- , gl_UNSIGNED_INT_24_8_EXT- , gl_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV- , gl_CONIC_CURVE_TO_NV- , gl_STREAM_DRAW_ARB- , gl_ACTIVE_PROGRAM_EXT- , gl_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB- , gl_PROGRAM_RESIDENT_NV- , gl_COLOR_TABLE_ALPHA_SIZE_SGI- , gl_INT_IMAGE_2D_ARRAY_EXT- , gl_OUTPUT_TEXTURE_COORD15_EXT- , gl_SRC_OUT_NV- , gl_MAP_FLUSH_EXPLICIT_BIT- , gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB- , gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS- , gl_EVAL_VERTEX_ATTRIB2_NV- , gl_PIXEL_TILE_WIDTH_SGIX- , gl_PROXY_TEXTURE_RECTANGLE- , gl_VERTEX_ARRAY_BINDING- , gl_CLIP_PLANE4- , gl_EVAL_VERTEX_ATTRIB15_NV- , gl_POINT_FADE_THRESHOLD_SIZE_ARB- , gl_UNSIGNED_INT_5_9_9_9_REV_EXT- , gl_DEBUG_GROUP_STACK_DEPTH- , gl_QUERY_WAIT_INVERTED- , gl_DRAW_PIXEL_TOKEN- , gl_OPERAND2_ALPHA_ARB- , gl_STACK_UNDERFLOW- , gl_FLOAT_VEC4_ARB- , gl_OBJECT_INFO_LOG_LENGTH_ARB- , gl_DRAW_BUFFER15_EXT- , gl_PATH_PROJECTION_MATRIX_NV- , gl_ADD_SIGNED- , gl_FRAGMENT_INTERPOLATION_OFFSET_BITS- , gl_VERTEX_SHADER_INSTRUCTIONS_EXT- , gl_NEXT_BUFFER_NV- , gl_TRIANGLE_STRIP_ADJACENCY_ARB- , gl_UNSIGNED_BYTE_2_3_3_REV_EXT- , gl_QUERY_RESULT_NO_WAIT- , gl_SECONDARY_COLOR_ARRAY_ADDRESS_NV- , gl_ALPHA16_SNORM- , gl_COLOR_ARRAY_LENGTH_NV- , gl_SLUMINANCE_EXT- , gl_DOT_PRODUCT_TEXTURE_2D_NV- , gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES- , gl_INT_IMAGE_2D_ARRAY- , gl_POLYGON_OFFSET_LINE- , gl_ONE_MINUS_DST_ALPHA- , gl_ACCUM_BUFFER_BIT- , gl_SOURCE1_ALPHA_ARB- , gl_HISTOGRAM_WIDTH_EXT- , gl_RENDERBUFFER_SAMPLES_EXT- , gl_FRAGMENT_LIGHTING_SGIX- , gl_TEXTURE_WIDTH_QCOM- , gl_TEXTURE_BUFFER_FORMAT_EXT- , gl_VERTEX_PROGRAM_TWO_SIDE- , gl_DEBUG_TYPE_OTHER_KHR- , gl_PRIMARY_COLOR_EXT- , gl_TEXTURE_COMPRESSED_ARB- , gl_PROXY_TEXTURE_1D_ARRAY_EXT- , gl_NORMAL_ARRAY_TYPE- , gl_POST_COLOR_MATRIX_RED_BIAS_SGI- , gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB- , gl_VERTEX_ATTRIB_ARRAY7_NV- , gl_MAX_VERTEX_ATTRIB_STRIDE- , gl_COLOR- , gl_YCBCR_422_APPLE- , gl_TESS_GEN_SPACING- , gl_VERTEX_SHADER_INVOCATIONS_ARB- , gl_STENCIL_INDEX4_OES- , gl_COMBINER_CD_DOT_PRODUCT_NV- , gl_VIRTUAL_PAGE_SIZE_Z_ARB- , gl_RIGHT- , gl_ALPHA16F_ARB- , gl_TANGENT_ARRAY_TYPE_EXT- , gl_READ_FRAMEBUFFER_NV- , gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT- , gl_PALETTE4_RGB8_OES- , gl_UNSIGNED_INT_IMAGE_3D- , gl_NORMAL_ARRAY_ADDRESS_NV- , gl_NO_RESET_NOTIFICATION_EXT- , gl_RGB4_S3TC- , gl_AUX1- , gl_MODELVIEW1_ARB- , gl_OP_NEGATE_EXT- , gl_PACK_COMPRESSED_BLOCK_HEIGHT- , gl_RENDERBUFFER_BINDING_OES- , gl_INT_IMAGE_1D- , gl_TEXTURE_GEQUAL_R_SGIX- , gl_VERTEX_BINDING_DIVISOR- , gl_BLEND_SRC_ALPHA_OES- , gl_READ_BUFFER_NV- , gl_DEBUG_TYPE_ERROR_KHR- , gl_INT_IMAGE_CUBE_EXT- , gl_COMPRESSED_RGBA_ASTC_6x6x6_OES- , gl_IMAGE_MIN_FILTER_HP- , gl_QUAD_ALPHA8_SGIS- , gl_IMAGE_BINDING_LEVEL- , gl_DOT3_RGB_EXT- , gl_SAMPLER_3D_OES- , gl_INT_VEC4- , gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT- , gl_NO_RESET_NOTIFICATION_ARB- , gl_IMAGE_MAG_FILTER_HP- , gl_COLOR4_BIT_PGI- , gl_MAX_CLIPMAP_DEPTH_SGIX- , gl_DEBUG_CATEGORY_OTHER_AMD- , gl_INT_IMAGE_2D_MULTISAMPLE- , gl_PERFQUERY_COUNTER_DATA_FLOAT_INTEL- , gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB- , gl_BINORMAL_ARRAY_EXT- , gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT- , gl_DRAW_BUFFER9_ARB- , gl_DSDT8_NV- , gl_MAP1_VERTEX_ATTRIB9_4_NV- , gl_PROGRAM_OBJECT_ARB- , gl_FONT_UNDERLINE_POSITION_BIT_NV- , gl_SHADER_OPERATION_NV- , gl_QUERY_RESULT_AVAILABLE_EXT- , gl_VIVIDLIGHT_NV- , gl_HSL_HUE_NV- , gl_EMBOSS_MAP_NV- , gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB- , gl_ALL_BARRIER_BITS- , gl_TEXTURE11_ARB- , gl_BOLD_BIT_NV- , gl_SAMPLE_BUFFERS_3DFX- , gl_INTERNALFORMAT_ALPHA_SIZE- , gl_COMPRESSED_RGBA_ASTC_8x8_KHR- , gl_VIRTUAL_PAGE_SIZE_Z_AMD- , gl_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE- , gl_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB- , gl_DRAW_PIXELS_APPLE- , gl_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB- , gl_FRAGMENT_COLOR_MATERIAL_FACE_SGIX- , gl_DRAW_INDIRECT_ADDRESS_NV- , gl_COVERAGE_BUFFER_BIT_NV- , gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT- , gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT- , gl_BLUE_NV- , gl_TEXTURE0_ARB- , gl_DEBUG_SOURCE_THIRD_PARTY_ARB- , gl_TEXTURE_NORMAL_EXT- , gl_TEXTURE_BUFFER_FORMAT_ARB- , gl_OPERAND0_ALPHA- , gl_FLOAT_MAT2x3- , gl_TEXTURE_BINDING- , gl_INT_SAMPLER_2D- , gl_OR- , gl_INT16_VEC2_NV- , gl_DUAL_ALPHA4_SGIS- , gl_FRAMEZOOM_FACTOR_SGIX- , gl_IMAGE_2D_MULTISAMPLE_ARRAY_EXT- , gl_RGB_INTEGER- , gl_UNSIGNED_INT64_VEC2_NV- , gl_OUTPUT_TEXTURE_COORD21_EXT- , gl_ENABLE_BIT- , gl_POLYGON_OFFSET_EXT- , gl_PIXEL_TEX_GEN_MODE_SGIX- , gl_LINE_SMOOTH- , gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB- , gl_COLOR_TABLE_LUMINANCE_SIZE_SGI- , gl_COLOR_BUFFER_BIT7_QCOM- , gl_PATH_FILL_MODE_NV- , gl_IMAGE_CUBE- , gl_CON_5_ATI- , gl_COLOR_ATTACHMENT2_EXT- , gl_FAILURE_NV- , gl_VERTEX_ARRAY_LIST_STRIDE_IBM- , gl_MAX_SPARSE_TEXTURE_SIZE_ARB- , gl_VERSION_ES_CL_1_1- , gl_PERFMON_GLOBAL_MODE_QCOM- , gl_DEPTH_COMPONENT32F- , gl_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT- , gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS- , gl_IMAGE_2D_MULTISAMPLE_EXT- , gl_FRAMEBUFFER_OES- , gl_TRANSPOSE_PROJECTION_MATRIX- , gl_BUFFER_MAP_POINTER- , gl_INT_10_10_10_2_OES- , gl_PROGRAM_PIPELINE_OBJECT_EXT- , gl_GEOMETRY_SHADER_INVOCATIONS_EXT- , gl_SPRITE_AXIS_SGIX- , gl_RED_INTEGER_EXT- , gl_COMPRESSED_RGBA_ASTC_10x6_KHR- , gl_TEXTURE_COORD_ARRAY_COUNT_EXT- , gl_SIGNED_RGB_NV- , gl_CW- , gl_PACK_SUBSAMPLE_RATE_SGIX- , gl_TEXTURE14_ARB- , gl_OUTPUT_TEXTURE_COORD26_EXT- , gl_DRAW_BUFFER- , gl_PACK_ROW_BYTES_APPLE- , gl_BLUE_INTEGER_EXT- , gl_STORAGE_CLIENT_APPLE- , gl_ALL_SHADER_BITS- , gl_FOG_COORDINATE_ARRAY_POINTER- , gl_ACTIVE_PROGRAM- , gl_RGBA32F_ARB- , gl_VERTEX_ATTRIB_ARRAY_INTEGER- , gl_MAP2_VERTEX_ATTRIB13_4_NV- , gl_SAMPLER_2D- , gl_QUERY- , gl_GEOMETRY_INPUT_TYPE_EXT- , gl_RGB5_A1_OES- , gl_MATRIX15_ARB- , gl_INT_IMAGE_CUBE_MAP_ARRAY- , gl_STACK_OVERFLOW- , gl_NORMAL_ARRAY_LENGTH_NV- , gl_RENDERBUFFER_BLUE_SIZE_EXT- , gl_TEXTURE_INTENSITY_SIZE_EXT- , gl_POINT_SIZE_MIN_SGIS- , gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW- , gl_BEVEL_NV- , gl_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX- , gl_SIGNED_RGBA_NV- , gl_COLOR_CLEAR_VALUE- , gl_ARRAY_BUFFER- , gl_CLIP_PLANE2_IMG- , gl_POLYGON_OFFSET_UNITS- , gl_COLOR_ARRAY_POINTER_EXT- , gl_POST_COLOR_MATRIX_COLOR_TABLE- , gl_SHADOW_AMBIENT_SGIX- , gl_SAMPLES- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES- , gl_MIRRORED_REPEAT_IBM- , gl_TEXTURE_2D_MULTISAMPLE_ARRAY_OES- , gl_FRAMEBUFFER_DEFAULT_WIDTH- , gl_TEXTURE_GEN_MODE_OES- , gl_BLEND_SRC_ALPHA_EXT- , gl_OUTPUT_COLOR0_EXT- , gl_SLUMINANCE8_ALPHA8- , gl_SAMPLER_3D_ARB- , gl_UNSIGNED_INT_SAMPLER_3D- , gl_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT- , gl_PATH_FORMAT_SVG_NV- , gl_MAP1_BINORMAL_EXT- , gl_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX- , gl_COLOR_ARRAY_BUFFER_BINDING- , gl_MATRIX_INDEX_ARRAY_TYPE_OES- , gl_PROJECTION_STACK_DEPTH- , gl_AUTO_NORMAL- , gl_FRAGMENT_SHADER_ATI- , gl_SAMPLE_BUFFERS_EXT- , gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT- , gl_UNSIGNED_INT_10_10_10_2- , gl_COMPRESSED_RG11_EAC_OES- , gl_LUMINANCE8I_EXT- , gl_VERTEX_ATTRIB_ARRAY13_NV- , gl_UNIFORM_BUFFER_SIZE- , gl_TEXTURE2_ARB- , gl_COMPRESSED_RGBA_BPTC_UNORM_ARB- , gl_POLYGON- , gl_CLIENT_MAPPED_BUFFER_BARRIER_BIT- , gl_ELEMENT_ARRAY_BUFFER_BINDING_ARB- , gl_SAMPLE_BUFFERS_ARB- , gl_RGBA4_DXT5_S3TC- , gl_STREAM_READ- , gl_STATIC_READ- , gl_MAX_FRAGMENT_ATOMIC_COUNTERS- , gl_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT- , gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST- , gl_COUNT_DOWN_NV- , gl_SLUMINANCE- , gl_INNOCENT_CONTEXT_RESET- , gl_DRAW_FRAMEBUFFER_BINDING_NV- , gl_VERTEX_STREAM3_ATI- , gl_TRIANGULAR_NV- , gl_SAMPLER_2D_RECT_ARB- , gl_POST_CONVOLUTION_GREEN_SCALE_EXT- , gl_SKIP_COMPONENTS2_NV- , gl_IMAGE_1D- , gl_ATTRIB_ARRAY_TYPE_NV- , gl_ORDER- , gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB- , gl_RGB4_EXT- , gl_COMPRESSED_TEXTURE_FORMATS_ARB- , gl_STENCIL_INDEX16_EXT- , gl_OP_RECIP_SQRT_EXT- , gl_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS- , gl_MAX_PROGRAM_TEXEL_OFFSET- , gl_POST_TEXTURE_FILTER_BIAS_SGIX- , gl_RGB32F_EXT- , gl_SURFACE_REGISTERED_NV- , gl_RGBA_FLOAT16_APPLE- , gl_VIDEO_BUFFER_BINDING_NV- , gl_PRIMITIVE_RESTART_INDEX- , gl_DOT3_RGB_ARB- , gl_INT64_VEC4_NV- , gl_DRAW_BUFFER12_ATI- , gl_RESAMPLE_REPLICATE_SGIX- , gl_ALPHA- , gl_MATRIX22_ARB- , gl_DEPTH_TEST- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR- , gl_BLEND_SRC_ALPHA- , gl_MIRROR_CLAMP_ATI- , gl_COMBINER3_NV- , gl_TEXTURE_BINDING_1D_ARRAY_EXT- , gl_MIRROR_CLAMP_TO_BORDER_EXT- , gl_MAP1_INDEX- , gl_VIEW_CLASS_BPTC_FLOAT- , gl_TRANSPOSE_AFFINE_2D_NV- , gl_IMAGE_CLASS_2_X_8- , gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB- , gl_EYE_POINT_SGIS- , gl_TEXTURE_DEPTH_SIZE_ARB- , gl_GLYPH_HAS_KERNING_BIT_NV- , gl_ACTIVE_SUBROUTINES- , gl_MVP_MATRIX_EXT- , gl_READ_FRAMEBUFFER_BINDING- , gl_GUILTY_CONTEXT_RESET_EXT- , gl_ALPHA16UI_EXT- , gl_TEXTURE_SWIZZLE_B_EXT- , gl_RGB16I_EXT- , gl_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB- , gl_VERTEX_WEIGHT_ARRAY_EXT- , gl_SWIZZLE_STR_DR_ATI- , gl_READ_FRAMEBUFFER- , gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI- , gl_COORD_REPLACE_NV- , gl_MAX_CLIP_PLANES- , gl_DRAW_BUFFER0- , gl_SPRITE_OBJECT_ALIGNED_SGIX- , gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX- , gl_CONSERVE_MEMORY_HINT_PGI- , gl_GET_TEXTURE_IMAGE_FORMAT- , gl_MOVE_TO_RESETS_NV- , gl_SHADER_CONSISTENT_NV- , gl_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT- , gl_PACK_ALIGNMENT- , gl_HISTOGRAM_ALPHA_SIZE- , gl_SHARED_TEXTURE_PALETTE_EXT- , gl_MODELVIEW0_MATRIX_EXT- , gl_MAX_NAME_LENGTH- , gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY- , gl_IMAGE_2D- , gl_QUERY_BUFFER_AMD- , gl_BUMP_ENVMAP_ATI- , gl_POINTS- , gl_ARRAY_SIZE- , gl_MAX_CLIP_PLANES_IMG- , gl_TRIANGLE_STRIP_ADJACENCY_EXT- , gl_VERTEX_STREAM6_ATI- , gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR- , gl_TEXTURE22- , gl_CURRENT_FOG_COORDINATE- , gl_CON_27_ATI- , gl_MAX_VERTEX_UNITS_OES- , gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT- , gl_SIGNED_INTENSITY8_NV- , gl_MAX_EVAL_ORDER- , gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT- , gl_DYNAMIC_READ_ARB- , gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV- , gl_FLOAT16_NV- , gl_COMPUTE_SHADER_INVOCATIONS_ARB- , gl_VERTEX_SHADER_OPTIMIZED_EXT- , gl_TEXTURE_LOD_BIAS_EXT- , gl_INT8_VEC3_NV- , gl_4PASS_0_SGIS- , gl_HISTOGRAM_EXT- , gl_ALLOW_DRAW_WIN_HINT_PGI- , gl_TEXTURE_GREEN_SIZE_EXT- , gl_R32I- , gl_REG_22_ATI- , gl_UNSIGNED_INT_ATOMIC_COUNTER- , gl_COLOR_ATTACHMENT2- , gl_INTENSITY8- , gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS- , gl_FOG_DENSITY- , gl_RENDERBUFFER_HEIGHT_EXT- , gl_Z_EXT- , gl_TEXTURE_FETCH_BARRIER_BIT- , gl_PROGRAM_BINARY_FORMATS- , gl_UNSIGNED_INT_IMAGE_BUFFER- , gl_OPERAND0_RGB- , gl_COVERAGE_COMPONENT_NV- , gl_NEGATE_BIT_ATI- , gl_DEBUG_TYPE_PUSH_GROUP- , gl_SELECT- , gl_IMAGE_BINDING_ACCESS_EXT- , gl_TEXTURE_GEN_STR_OES- , gl_OCCLUSION_TEST_HP- , gl_BLEND_DST_RGB_OES- , gl_IMAGE_BINDING_NAME- , gl_DUAL_LUMINANCE_ALPHA8_SGIS- , gl_POLYGON_BIT- , gl_POST_COLOR_MATRIX_GREEN_BIAS_SGI- , gl_COLOR_ATTACHMENT8_EXT- , gl_BLUE_BIAS- , gl_EMISSION- , gl_DEPTH_ATTACHMENT_OES- , gl_POLYGON_OFFSET_FACTOR_EXT- , gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT- , gl_TEXTURE_MATERIAL_FACE_EXT- , gl_PN_TRIANGLES_POINT_MODE_CUBIC_ATI- , gl_DRAW_FRAMEBUFFER_ANGLE- , gl_DEPTH_BUFFER_BIT3_QCOM- , gl_DISTANCE_ATTENUATION_EXT- , gl_TRACE_ARRAYS_BIT_MESA- , gl_MOVE_TO_NV- , gl_2PASS_1_SGIS- , gl_DUAL_LUMINANCE4_SGIS- , gl_PRIMITIVES_SUBMITTED_ARB- , gl_TOP_LEVEL_ARRAY_STRIDE- , gl_NORMAL_ARRAY_STRIDE- , gl_TEXTURE_2D_ARRAY_EXT- , gl_UNPACK_COMPRESSED_BLOCK_WIDTH- , gl_TEXTURE_FIXED_SAMPLE_LOCATIONS- , gl_YCRCBA_SGIX- , gl_LOCATION_COMPONENT- , gl_TEXTURE27- , gl_CONTEXT_FLAG_DEBUG_BIT_KHR- , gl_FOG_COORDINATE_EXT- , gl_DEBUG_CALLBACK_USER_PARAM_KHR- , gl_MIRRORED_REPEAT_OES- , gl_SYNC_GPU_COMMANDS_COMPLETE- , gl_SLUMINANCE8_ALPHA8_EXT- , gl_TEXTURE_BUFFER_OFFSET- , gl_PROXY_COLOR_TABLE- , gl_FIXED- , gl_SRGB8- , gl_COMPRESSED_RGBA- , gl_IMAGE_BINDING_FORMAT- , gl_MAX_RENDERBUFFER_SIZE_OES- , gl_DEBUG_SOURCE_API- , gl_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH- , gl_CLIP_PLANE3_IMG- , gl_TEXTURE16- , gl_FRAGMENTS_INSTRUMENT_SGIX- , gl_MATRIX8_ARB- , gl_DOUBLE_MAT2x4- , gl_DRAW_BUFFER9_ATI- , gl_CURRENT_TEXTURE_COORDS- , gl_DOT_PRODUCT_TEXTURE_3D_NV- , gl_SECONDARY_COLOR_ARRAY_STRIDE_EXT- , gl_UNSIGNED_INT_IMAGE_2D_ARRAY- , gl_FRAMEBUFFER_BARRIER_BIT- , gl_MAX_SAMPLES_IMG- , gl_TESS_CONTROL_SHADER_BIT_EXT- , gl_PROGRAM_NATIVE_TEMPORARIES_ARB- , gl_COMPRESSED_RGB_PVRTC_4BPPV1_IMG- , gl_VERTEX_PROGRAM_ARB- , gl_MAP2_BINORMAL_EXT- , gl_ETC1_RGB8_OES- , gl_PROGRAM_MATRIX_STACK_DEPTH_EXT- , gl_TEXTURE_USAGE_ANGLE- , gl_TEXTURE_MATRIX- , gl_INT_SAMPLER_CUBE_MAP_ARRAY_EXT- , gl_INDEX_ARRAY_STRIDE- , gl_POST_COLOR_MATRIX_BLUE_SCALE- , gl_TESS_CONTROL_OUTPUT_VERTICES- , gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET- , gl_COMPRESSED_RGBA_ASTC_6x6_KHR- , gl_INTERNALFORMAT_SHARED_SIZE- , gl_SOURCE1_RGB_EXT- , gl_STENCIL_PASS_DEPTH_FAIL- , gl_MATRIX_PALETTE_OES- , gl_MIN_FRAGMENT_INTERPOLATION_OFFSET- , gl_DOT3_RGBA_EXT- , gl_CLIP_VOLUME_CLIPPING_HINT_EXT- , gl_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV- , gl_FONT_X_MIN_BOUNDS_BIT_NV- , gl_WRAP_BORDER_SUN- , gl_MAP_INVALIDATE_RANGE_BIT- , gl_PATH_MODELVIEW_NV- , gl_TESS_CONTROL_SHADER- , gl_VERTEX_STREAM1_ATI- , gl_R3_G3_B2- , gl_LARGE_CW_ARC_TO_NV- , gl_PRIMITIVE_BOUNDING_BOX_EXT- , gl_ALPHA_BIAS- , gl_DST_IN_NV- , gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT- , gl_NUM_FILL_STREAMS_NV- , gl_ATTRIB_ARRAY_POINTER_NV- , gl_SOURCE0_RGB_ARB- , gl_MAX_PROGRAM_TEXEL_OFFSET_EXT- , gl_MATRIX27_ARB- , gl_R11F_G11F_B10F- , gl_ATOMIC_COUNTER_BUFFER_INDEX- , gl_TEXTURE_SWIZZLE_R_EXT- , gl_MAX_ASYNC_READ_PIXELS_SGIX- , gl_ACTIVE_TEXTURE_ARB- , gl_VERTEX_SHADER_LOCAL_CONSTANTS_EXT- , gl_REFERENCE_PLANE_SGIX- , gl_UNPACK_CLIENT_STORAGE_APPLE- , gl_SKIP_DECODE_EXT- , gl_MAP2_VERTEX_ATTRIB10_4_NV- , gl_ALIASED_POINT_SIZE_RANGE- , gl_MATRIX1_NV- , gl_CCW- , gl_SIGNED_RGB_UNSIGNED_ALPHA_NV- , gl_TEXTURE_BUFFER_BINDING_EXT- , gl_LINEAR_ATTENUATION- , gl_FACTOR_MIN_AMD- , gl_POINT_SPRITE_NV- , gl_IMAGE_FORMAT_COMPATIBILITY_TYPE- , gl_QUERY_DEPTH_FAIL_EVENT_BIT_AMD- , gl_MAP2_VERTEX_ATTRIB4_4_NV- , gl_PATCHES_EXT- , gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS- , gl_OUTPUT_TEXTURE_COORD14_EXT- , gl_V3F- , gl_4PASS_2_EXT- , gl_SAMPLES_3DFX- , gl_MINOR_VERSION- , gl_MAX_DEBUG_LOGGED_MESSAGES_ARB- , gl_FUNC_REVERSE_SUBTRACT- , gl_LAYOUT_LINEAR_CPU_CACHED_INTEL- , gl_MULTISAMPLE_BUFFER_BIT1_QCOM- , gl_SIGNED_RGB8_UNSIGNED_ALPHA8_NV- , gl_PATH_COVER_DEPTH_FUNC_NV- , gl_MAX_FRAGMENT_IMAGE_UNIFORMS- , gl_PROXY_TEXTURE_COLOR_TABLE_SGI- , gl_PIXEL_MAP_I_TO_A_SIZE- , gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR- , gl_FRAME_NV- , gl_FLOAT_R_NV- , gl_REFLECTION_MAP_EXT- , gl_RG_SNORM- , gl_REPLACE_MIDDLE_SUN- , gl_COMBINER_MAPPING_NV- , gl_ELEMENT_ARRAY_BUFFER_ARB- , gl_SECONDARY_COLOR_ARRAY_LENGTH_NV- , gl_INTERPOLATE_ARB- , gl_POSITION- , gl_PIXEL_MAP_S_TO_S- , gl_READ_ONLY_ARB- , gl_INVALID_FRAMEBUFFER_OPERATION_OES- , gl_3DC_X_AMD- , gl_FRAGMENT_LIGHT2_SGIX- , gl_IMAGE_SCALE_Y_HP- , gl_READ_FRAMEBUFFER_APPLE- , gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES- , gl_INDEX_MATERIAL_PARAMETER_EXT- , gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH- , gl_CUBIC_CURVE_TO_NV- , gl_QUAD_ALPHA4_SGIS- , gl_FORCE_BLUE_TO_ONE_NV- , gl_DOT_PRODUCT_DEPTH_REPLACE_NV- , gl_MAX_VERTEX_OUTPUT_COMPONENTS- , gl_COMPRESSED_RGBA_ASTC_4x4x3_OES- , gl_COLOR_INDEX1_EXT- , gl_RELATIVE_CUBIC_CURVE_TO_NV- , gl_NOR- , gl_CLIPPING_OUTPUT_PRIMITIVES_ARB- , gl_VERTEX_ATTRIB_ARRAY12_NV- , gl_LINE_BIT- , gl_FOG_COORDINATE_ARRAY_STRIDE- , gl_DUP_FIRST_CUBIC_CURVE_TO_NV- , gl_FRAMEBUFFER_INCOMPLETE_FORMATS_OES- , gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS- , gl_PATH_MAX_MODELVIEW_STACK_DEPTH_NV- , gl_FRAGMENT_LIGHT1_SGIX- , gl_PALETTE8_R5_G6_B5_OES- , gl_DUAL_INTENSITY4_SGIS- , gl_TEXTURE_RANGE_LENGTH_APPLE- , gl_TEXTURE_RECTANGLE_ARB- , gl_LUMINANCE16F_EXT- , gl_DEPTH_COMPONENT16_ARB- , gl_BUMP_TARGET_ATI- , gl_MAX_CUBE_MAP_TEXTURE_SIZE_ARB- , gl_DOUBLE_MAT3_EXT- , gl_QUERY_BY_REGION_NO_WAIT_INVERTED- , gl_MAX_PROGRAM_TEX_INDIRECTIONS_ARB- , gl_QUADS- , gl_ALPHA_INTEGER_EXT- , gl_VERTEX_SHADER_BIT_EXT- , gl_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX- , gl_COLOR_MATERIAL_FACE- , gl_LIGHT_MODEL_TWO_SIDE- , gl_INTERLEAVED_ATTRIBS- , gl_RGBA16I- , gl_VERTEX_ATTRIB_ARRAY_TYPE_ARB- , gl_DEBUG_SEVERITY_LOW_AMD- , gl_POINT_SPRITE_COORD_ORIGIN- , gl_DRAW_BUFFER8- , gl_SPOT_DIRECTION- , gl_SAMPLE_COVERAGE_INVERT_ARB- , gl_PERFQUERY_COUNTER_RAW_INTEL- , gl_STRICT_SCISSOR_HINT_PGI- , gl_LUMINANCE16_EXT- , gl_UNPACK_ALIGNMENT- , gl_BIAS_BIT_ATI- , gl_LARGE_CCW_ARC_TO_NV- , gl_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB- , gl_FASTEST- , gl_LUMINANCE8_ALPHA8- , gl_CONVOLUTION_FILTER_BIAS_EXT- , gl_VIEW_CLASS_S3TC_DXT5_RGBA- , gl_DEPTH32F_STENCIL8_NV- , gl_TRACE_OPERATIONS_BIT_MESA- , gl_QUERY_RESULT_EXT- , gl_TRANSFORM_FEEDBACK_BINDING_NV- , gl_REG_10_ATI- , gl_MATRIX16_ARB- , gl_FONT_HAS_KERNING_BIT_NV- , gl_INNOCENT_CONTEXT_RESET_EXT- , gl_VIDEO_CAPTURE_FRAME_HEIGHT_NV- , gl_NATIVE_GRAPHICS_END_HINT_PGI- , gl_HISTOGRAM_LUMINANCE_SIZE_EXT- , gl_COMBINER0_NV- , gl_COORD_REPLACE_OES- , gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT- , gl_TIMESTAMP_EXT- , gl_MAX_IMAGE_UNITS_EXT- , gl_POINT_SIZE_MAX_ARB- , gl_DEPTH_WRITEMASK- , gl_FOG_COORDINATE_ARRAY_STRIDE_EXT- , gl_BUMP_NUM_TEX_UNITS_ATI- , gl_INT_SAMPLER_1D_EXT- , gl_INDEX_MODE- , gl_422_EXT- , gl_ATOMIC_COUNTER_BUFFER_START- , gl_GPU_ADDRESS_NV- , gl_REG_19_ATI- , gl_IMAGE_BUFFER- , gl_HISTOGRAM_GREEN_SIZE- , gl_VERTEX_ATTRIB_ARRAY_ADDRESS_NV- , gl_INTENSITY8_SNORM- , gl_DEBUG_TYPE_MARKER- , gl_VERTEX_PROGRAM_TWO_SIDE_ARB- , gl_INDEX_MATERIAL_FACE_EXT- , gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB- , gl_CMYKA_EXT- , gl_MAP_ATTRIB_V_ORDER_NV- , gl_OFFSET_HILO_TEXTURE_2D_NV- , gl_CALLIGRAPHIC_FRAGMENT_SGIX- , gl_MAX_PROGRAM_PARAMETERS_ARB- , gl_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV- , gl_MAP_READ_BIT- , gl_IMAGE_1D_EXT- , gl_READ_BUFFER- , gl_POST_CONVOLUTION_RED_SCALE- , gl_MATRIX23_ARB- , gl_MAX_SAMPLES_NV- , gl_RGB8_SNORM- , gl_MATRIX5_NV- , gl_UNPACK_SWAP_BYTES- , gl_TABLE_TOO_LARGE- , gl_MIN_SAMPLE_SHADING_VALUE_OES- , gl_SWIZZLE_STQ_DQ_ATI- , gl_BUFFER_IMMUTABLE_STORAGE- , gl_ELEMENT_ARRAY_TYPE_APPLE- , gl_POST_COLOR_MATRIX_BLUE_BIAS_SGI- , gl_PARTIAL_SUCCESS_NV- , gl_LOCAL_CONSTANT_EXT- , gl_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB- , gl_GEOMETRY_DEFORMATION_SGIX- , gl_SAMPLER_CUBE_MAP_ARRAY_EXT- , gl_STENCIL_BACK_PASS_DEPTH_PASS_ATI- , gl_DISJOINT_NV- , gl_FLOAT_MAT4x3- , gl_TRANSFORM_FEEDBACK_PAUSED- , gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION- , gl_RG8_EXT- , gl_RECT_NV- , gl_GEOMETRY_OUTPUT_TYPE_ARB- , gl_DEBUG_SOURCE_API_ARB- , gl_COLOR_ATTACHMENT15- , gl_MAX_VARYING_FLOATS_ARB- , gl_MAX_DRAW_BUFFERS_NV- , gl_VERTEX_BLEND_ARB- , gl_DOUBLE_MAT2x3_EXT- , gl_MAX_DEBUG_LOGGED_MESSAGES_AMD- , gl_VERTICES_SUBMITTED_ARB- , gl_UNSIGNED_SHORT_4_4_4_4_REV_IMG- , gl_STATE_RESTORE- , gl_MAX_COLOR_ATTACHMENTS_EXT- , gl_INDEX_LOGIC_OP- , gl_PRIMITIVE_RESTART_NV- , gl_FLOAT_MAT3x2_NV- , gl_VERTEX_CONSISTENT_HINT_PGI- , gl_LUMINANCE_ALPHA16F_EXT- , gl_FLOAT_VEC2_ARB- , gl_TEXTURE_SWIZZLE_RGBA- , gl_PROGRAM_SEPARABLE_EXT- , gl_COMPRESSED_RGBA_ASTC_10x8_KHR- , gl_DEPTH_ATTACHMENT_EXT- , gl_FRAMEBUFFER_UNSUPPORTED_OES- , gl_OPERAND1_ALPHA- , gl_PIXEL_MAP_I_TO_B_SIZE- , gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT- , gl_EVAL_2D_NV- , gl_GREEN_MIN_CLAMP_INGR- , gl_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS- , gl_VERTEX_ARRAY_RANGE_NV- , gl_CONTEXT_LOST_WEBGL- , gl_MAX_VERTEX_UNIFORM_BLOCKS- , gl_VERTEX_ATTRIB_MAP2_COEFF_APPLE- , gl_TEXTURE_MAX_CLAMP_T_SGIX- , gl_LUMINANCE_SNORM- , gl_PIXEL_UNPACK_BUFFER_BINDING- , gl_RGBA8_SNORM- , gl_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX- , gl_PIXEL_SUBSAMPLE_2424_SGIX- , gl_TEXTURE_GATHER_SHADOW- , gl_VIEWPORT_INDEX_PROVOKING_VERTEX- , gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT- , gl_UNSIGNED_INT_IMAGE_CUBE- , gl_WEIGHT_ARRAY_POINTER_OES- , gl_ALL_ATTRIB_BITS- , gl_PERFQUERY_COUNTER_TIMESTAMP_INTEL- , gl_TESS_EVALUATION_SHADER_EXT- , gl_BUFFER_OBJECT_EXT- , gl_TIMESTAMP- , gl_RGBA_INTEGER_EXT- , gl_RGB16UI- , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT- , gl_SAMPLE_SHADING_OES- , gl_CONVOLUTION_BORDER_COLOR- , gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV- , gl_VERTEX_ARRAY_BUFFER_BINDING- , gl_DEPTH_CLAMP_NEAR_AMD- , gl_POLYGON_TOKEN- , gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB- , gl_R8_SNORM- , gl_DS_BIAS_NV- , gl_2X_BIT_ATI- , gl_ALREADY_SIGNALED- , gl_2D- , gl_MAX_VERTEX_UNIFORM_COMPONENTS- , gl_DEBUG_CATEGORY_PERFORMANCE_AMD- , gl_OVERLAY_NV- , gl_ATOMIC_COUNTER_BUFFER_SIZE- , gl_COLOR_ATTACHMENT10_EXT- , gl_COLOR_TABLE_BLUE_SIZE_SGI- , gl_ADD_SIGNED_EXT- , gl_INT_SAMPLER_2D_ARRAY_EXT- , gl_TRANSFORM_FEEDBACK_BUFFER_INDEX- , gl_REFERENCED_BY_TESS_CONTROL_SHADER- , gl_FIELD_LOWER_NV- , gl_POST_COLOR_MATRIX_RED_SCALE- , gl_IMAGE_BUFFER_EXT- , gl_3D_COLOR_TEXTURE- , gl_DEBUG_CALLBACK_FUNCTION_KHR- , gl_SCISSOR_BIT- , gl_IMAGE_TRANSLATE_X_HP- , gl_PIXEL_MAP_I_TO_A- , gl_VERTEX_SUBROUTINE- , gl_TEXTURE4_ARB- , gl_PACK_COMPRESSED_BLOCK_DEPTH- , gl_SHADER_STORAGE_BLOCK- , gl_SIGNED_ALPHA_NV- , gl_BLEND_DST_ALPHA_EXT- , gl_MAP2_VERTEX_ATTRIB9_4_NV- , gl_HILO8_NV- , gl_SHADER_BINARY_FORMATS- , gl_DEBUG_OUTPUT_SYNCHRONOUS- , gl_TEXTURE_GEN_R- , gl_PERFORMANCE_MONITOR_AMD- , gl_INTENSITY_FLOAT16_APPLE- , gl_PROGRAM_PIPELINE- , gl_COLOR_BUFFER_BIT5_QCOM- , gl_MAX_GEOMETRY_VARYING_COMPONENTS_EXT- , gl_DEBUG_TYPE_PORTABILITY_KHR- , gl_RGB16F_ARB- , gl_PRIMITIVES_GENERATED_EXT- , gl_PROGRAM_BINARY_FORMATS_OES- , gl_AMBIENT- , gl_QUERY_BY_REGION_NO_WAIT_NV- , gl_VIEW_CLASS_RGTC2_RG- , gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT- , gl_DRAW_BUFFER2_EXT- , gl_TEXTURE_BUFFER_BINDING- , gl_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT- , gl_OPERAND3_ALPHA_NV- , gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV- , gl_LINEAR_SHARPEN_SGIS- , gl_MAP_UNSYNCHRONIZED_BIT_EXT- , gl_MODELVIEW28_ARB- , gl_EDGE_FLAG_ARRAY_LIST_IBM- , gl_PALETTE4_RGB5_A1_OES- , gl_MULTIPLY_KHR- , gl_GPU_OPTIMIZED_QCOM- , gl_FOG_FUNC_POINTS_SGIS- , gl_MAX_IMAGE_SAMPLES- , gl_DRAW_BUFFER3_NV- , gl_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS- , gl_RESET_NOTIFICATION_STRATEGY_ARB- , gl_MAX_TEXTURE_STACK_DEPTH- , gl_INT64_NV- , gl_DEBUG_SOURCE_APPLICATION- , gl_STENCIL_CLEAR_VALUE- , gl_SRC1_COLOR- , gl_LIGHT4- , gl_PIXEL_PACK_BUFFER_BINDING- , gl_MAX_LIGHTS- , gl_OPERAND1_ALPHA_EXT- , gl_PIXEL_MAP_B_TO_B_SIZE- , gl_COLOR_TABLE_FORMAT_SGI- , gl_MODELVIEW22_ARB- , gl_UNSIGNED_INT64_VEC4_NV- , gl_COLOR_ARRAY_TYPE_EXT- , gl_LOSE_CONTEXT_ON_RESET_EXT- , gl_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV- , gl_TEXTURE_PRIORITY_EXT- , gl_UNPACK_COMPRESSED_SIZE_SGIX- , gl_SEPARATE_ATTRIBS_EXT- , gl_IMAGE_BINDING_LAYERED- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR- , gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE- , gl_READ_ONLY- , gl_TEXTURE_3D_BINDING_OES- , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER- , gl_COVERAGE_ALL_FRAGMENTS_NV- , gl_SRC2_ALPHA- , gl_PRIMITIVE_ID_NV- , gl_VIDEO_COLOR_CONVERSION_MAX_NV- , gl_MAP2_TANGENT_EXT- , gl_LIGHTING- , gl_PROGRAM_UNDER_NATIVE_LIMITS_ARB- , gl_VERTEX_ATTRIB_ARRAY2_NV- , gl_PRESENT_TIME_NV- , gl_PATCH_DEFAULT_INNER_LEVEL- , gl_NEVER- , gl_PATH_STROKE_WIDTH_NV- , gl_INVERT_RGB_NV- , gl_BUFFER_MAP_POINTER_ARB- , gl_MAP2_GRID_SEGMENTS- , gl_INVALID_VALUE- , gl_BLEND_EQUATION_ALPHA_OES- , gl_MAX_RATIONAL_EVAL_ORDER_NV- , gl_VERTEX_ATTRIB_ARRAY10_NV- , gl_UNPACK_IMAGE_DEPTH_SGIS- , gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES- , gl_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS- , gl_TRANSPOSE_PROJECTION_MATRIX_ARB- , gl_REDUCE_EXT- , gl_RGB8UI_EXT- , gl_MAX_CLIENT_ATTRIB_STACK_DEPTH- , gl_RGB9_E5_EXT- , gl_OUTPUT_TEXTURE_COORD18_EXT- , gl_COLOR_ATTACHMENT0_EXT- , gl_ALPHA_SCALE- , gl_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV- , gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE- , gl_BLEND_SRC- , gl_TEXTURE_MAX_CLAMP_R_SGIX- , gl_MAX_PROGRAM_TEXEL_OFFSET_NV- , gl_TEXTURE_LOD_BIAS_R_SGIX- , gl_UNSIGNED_INT_SAMPLER_2D- , gl_TEXTURE_FILTER_CONTROL_EXT- , gl_VARIABLE_G_NV- , gl_SELECTION_BUFFER_POINTER- , gl_INT_SAMPLER_1D- , gl_COMBINE_ALPHA- , gl_FONT_Y_MAX_BOUNDS_BIT_NV- , gl_UNIFORM_BARRIER_BIT- , gl_TEXTURE_BLUE_TYPE_ARB- , gl_STENCIL_INDEX16- , gl_SRC_OVER_NV- , gl_INT_SAMPLER_2D_MULTISAMPLE- , gl_COLOR_TABLE_GREEN_SIZE_SGI- , gl_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV- , gl_TEXTURE_COMPRESSED_IMAGE_SIZE- , gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV- , gl_REFERENCED_BY_TESS_EVALUATION_SHADER- , gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT- , gl_MAX_HEIGHT- , gl_ALPHA32F_ARB- , gl_COLOR_ATTACHMENT13- , gl_OP_SET_GE_EXT- , gl_RGBA16_EXT- , gl_OPERAND3_RGB_NV- , gl_RENDERBUFFER_BLUE_SIZE_OES- , gl_LUMINANCE_ALPHA_FLOAT16_ATI- , gl_VERTEX_ATTRIB_ARRAY_DIVISOR_NV- , gl_PERFQUERY_COUNTER_DURATION_RAW_INTEL- , gl_MAX_DEPTH- , gl_LINEAR_MIPMAP_NEAREST- , gl_UNSIGNED_INT_8_8_S8_S8_REV_NV- , gl_N3F_V3F- , gl_PACK_MAX_COMPRESSED_SIZE_SGIX- , gl_QUERY_BUFFER_BINDING_AMD- , gl_FOG_MODE- , gl_RGBA32F- , gl_FRAGMENT_SHADER_DERIVATIVE_HINT- , gl_UNPACK_SKIP_ROWS_EXT- , gl_LINES- , gl_SPOT_EXPONENT- , gl_MAX_NUM_COMPATIBLE_SUBROUTINES- , gl_RGBA_FLOAT32_APPLE- , gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT- , gl_BLEND_EQUATION_ALPHA- , gl_PATH_MODELVIEW_STACK_DEPTH_NV- , gl_TEXTURE_SHARED_SIZE_EXT- , gl_RGBA16- , gl_UNDEFINED_VERTEX_EXT- , gl_PALETTE8_RGB5_A1_OES- , gl_MAX_GEOMETRY_OUTPUT_VERTICES_EXT- , gl_IMAGE_CLASS_11_11_10- , gl_HISTOGRAM_GREEN_SIZE_EXT- , gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT- , gl_MAX_COMPUTE_IMAGE_UNIFORMS- , gl_MAX_PATCH_VERTICES_EXT- , gl_ISOLINES- , gl_LUMINANCE_ALPHA_SNORM- , gl_PROGRAM_PIPELINE_BINDING_EXT- , gl_FIRST_VERTEX_CONVENTION_EXT- , gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT- , gl_UTF16_NV- , gl_PRESENT_DURATION_NV- , gl_TEXTURE_SAMPLES- , gl_BGR- , gl_CULL_VERTEX_OBJECT_POSITION_EXT- , gl_FRAGMENT_PROGRAM_POSITION_MESA- , gl_FLOAT_RG_NV- , gl_PROXY_TEXTURE_2D_MULTISAMPLE- , gl_CON_21_ATI- , gl_MAX_GEOMETRY_IMAGE_UNIFORMS- , gl_FLOAT_MAT3x4_NV- , gl_BUFFER_VARIABLE- , gl_ANY_SAMPLES_PASSED_EXT- , gl_TEXTURE_GEN_Q- , gl_GEOMETRY_VERTICES_OUT_ARB- , gl_POLYGON_SMOOTH_HINT- , gl_TEXTURE_BINDING_CUBE_MAP_ARRAY- , gl_SEPARABLE_2D_EXT- , gl_VERSION_ES_CL_1_0- , gl_VERTEX_PROGRAM_PARAMETER_BUFFER_NV- , gl_RED_INTEGER- , gl_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD- , gl_OFFSET_TEXTURE_RECTANGLE_NV- , gl_TEXTURE_COORD_ARRAY_TYPE_EXT- , gl_INT8_NV- , gl_VIDEO_COLOR_CONVERSION_MIN_NV- , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV- , gl_FRAMEBUFFER_ATTACHMENT_ANGLE- , gl_SRC1_RGB- , gl_CON_24_ATI- , gl_DEBUG_CALLBACK_USER_PARAM- , gl_MALI_SHADER_BINARY_ARM- , gl_VIEW_CLASS_16_BITS- , gl_DITHER- , gl_PATH_STROKE_COVER_MODE_NV- , gl_BGR_INTEGER- , gl_TEXTURE_MATERIAL_PARAMETER_EXT- , gl_COMPRESSED_RGBA_ASTC_5x4_KHR- , gl_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT- , gl_POST_CONVOLUTION_GREEN_BIAS_EXT- , gl_PATH_ERROR_POSITION_NV- , gl_SAMPLE_ALPHA_TO_COVERAGE- , gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY- , gl_NUM_COMPATIBLE_SUBROUTINES- , gl_RGBA16UI_EXT- , gl_VERTEX_SHADER_ARB- , gl_RGB- , gl_MAP_PERSISTENT_BIT- , gl_QUERY_COUNTER_BITS_ARB- , gl_BLEND_EQUATION_RGB_OES- , gl_FRAGMENT_SHADER_BIT- , gl_MATRIX_INDEX_ARRAY_ARB- , gl_OUTPUT_TEXTURE_COORD29_EXT- , gl_HISTOGRAM_FORMAT- , gl_MAX_ASYNC_HISTOGRAM_SGIX- , gl_MAX_VERTEX_ATTRIBS_ARB- , gl_SAMPLE_MASK_NV- , gl_COLOR_INDEXES- , gl_QUAD_TEXTURE_SELECT_SGIS- , gl_RG16_SNORM- , gl_ACTIVE_SUBROUTINE_MAX_LENGTH- , gl_LOGIC_OP_MODE- , gl_DEPTH_COMPONENT16_NONLINEAR_NV- , gl_PRIMITIVE_RESTART_INDEX_NV- , gl_UNKNOWN_CONTEXT_RESET- , gl_VBO_FREE_MEMORY_ATI- , gl_TEXTURE_CUBE_MAP_POSITIVE_X_OES- , gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR- , gl_TEXTURE_2D_STACK_MESAX- , gl_DRAW_BUFFER10- , gl_FLOAT16_VEC4_NV- , gl_SIGNED_HILO16_NV- , gl_BUFFER_MAPPED_OES- , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT- , gl_DRAW_BUFFER5_EXT- , gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB- , gl_NUM_EXTENSIONS- , gl_WARP_SIZE_NV- , gl_TEXTURE23- , gl_INT_SAMPLER_2D_RECT_EXT- , gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES- , gl_REG_4_ATI- , gl_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG- , gl_FOG_INDEX- , gl_QUADRATIC_ATTENUATION- , gl_COLOR_MATERIAL- , gl_SAMPLE_MASK- , gl_DRAW_FRAMEBUFFER_BINDING_EXT- , gl_MULTISAMPLE_BUFFER_BIT5_QCOM- , gl_DEPTH_STENCIL_OES- , gl_STENCIL_BITS- , gl_CURRENT_VERTEX_ATTRIB_ARB- , gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB- , gl_COORD_REPLACE_ARB- , gl_RGBA32I_EXT- , gl_TEXTURE6- , gl_FLOAT_RGB16_NV- , gl_TEXTURE_IMMUTABLE_FORMAT- , gl_ZERO_EXT- , gl_SOFTLIGHT_NV- , gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT- , gl_TEXTURE_BASE_LEVEL- , gl_COMPRESSED_SRGB_ALPHA- , gl_TEXTURE18_ARB- , gl_AND_INVERTED- , gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT- , gl_ARRAY_BUFFER_ARB- , gl_RGBA32F_EXT- , gl_BLEND_EQUATION_RGB_EXT- , gl_FRONT_FACE- , gl_SINGLE_COLOR_EXT- , gl_QUERY_COUNTER_BITS_EXT- , gl_TESS_CONTROL_SHADER_PATCHES_ARB- , gl_SPOT_CUTOFF- , gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB- , gl_OUTPUT_TEXTURE_COORD6_EXT- , gl_COLOR_ATTACHMENT13_NV- , gl_COMPRESSED_RGBA_S3TC_DXT3_EXT- , gl_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV- , gl_TRANSPOSE_TEXTURE_MATRIX- , gl_MULTISAMPLE_ARB- , gl_DEPTH_COMPONENT24- , gl_PIXEL_MAP_G_TO_G- , gl_NAMED_STRING_LENGTH_ARB- , gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT- , gl_UNIFORM_SIZE- , gl_MODELVIEW21_ARB- , gl_FRAGMENT_LIGHT7_SGIX- , gl_DRAW_BUFFER3_ARB- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES- , gl_UNSIGNED_SHORT- , gl_MULTISAMPLE_BIT_ARB- , gl_FOG- , gl_TEXTURE_COMPARE_MODE- , gl_SPHERE_MAP- , gl_TIMEOUT_EXPIRED_APPLE- , gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT- , gl_PROXY_TEXTURE_1D_ARRAY- , gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT- , gl_TEXTURE_BINDING_CUBE_MAP- , gl_COLOR_ATTACHMENT14- , gl_STENCIL_BUFFER_BIT- , gl_SIGNALED- , gl_TEXTURE_WIDTH- , gl_EVAL_BIT- , gl_REG_28_ATI- , gl_TEXTURE_BIT- , gl_CONTEXT_ROBUST_ACCESS_EXT- , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV- , gl_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB- , gl_DEPTH_BUFFER_BIT- , gl_TEXCOORD2_BIT_PGI- , gl_POST_CONVOLUTION_RED_SCALE_EXT- , gl_QUERY_KHR- , gl_PACK_IMAGE_HEIGHT_EXT- , gl_COMPRESSED_RGBA_ASTC_5x5_KHR- , gl_MAX_VERTEX_UNIFORM_COMPONENTS_ARB- , gl_DEPTH_STENCIL_ATTACHMENT- , gl_HSL_HUE_KHR- , gl_ATC_RGB_AMD- , gl_DECR_WRAP- , gl_GEOMETRY_VERTICES_OUT- , gl_OFFSET_TEXTURE_BIAS_NV- , gl_COLOR_ATTACHMENT5_NV- , gl_POINT_SIZE_ARRAY_POINTER_OES- , gl_TEXTURE_COMPARE_FAIL_VALUE_ARB- , gl_RENDERBUFFER_COLOR_SAMPLES_NV- , gl_CON_10_ATI- , gl_IMAGE_ROTATE_ANGLE_HP- , gl_UNIFORM_BUFFER_UNIFIED_NV- , gl_INTENSITY4- , gl_DEBUG_LOGGED_MESSAGES_KHR- , gl_MINUS_CLAMPED_NV- , gl_BUFFER_SIZE- , gl_SRGB_EXT- , gl_PIXEL_TEX_GEN_Q_ROUND_SGIX- , gl_R16I- , gl_COLOR_COMPONENTS- , gl_TEXTURE_VIEW_NUM_LEVELS- , gl_COLOR_ATTACHMENT11- , gl_OBJECT_PLANE- , gl_IMAGE_3D_EXT- , gl_MAX_GEOMETRY_INPUT_COMPONENTS- , gl_TEXTURE_COORD_ARRAY_LIST_IBM- , gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS- , gl_CLIENT_ACTIVE_TEXTURE- , gl_MAX_GEOMETRY_VARYING_COMPONENTS_ARB- , gl_OPERAND1_RGB- , gl_POINT_SIZE_ARRAY_OES- , gl_GLYPH_VERTICAL_BEARING_Y_BIT_NV- , gl_MODELVIEW6_ARB- , gl_DEBUG_OUTPUT_SYNCHRONOUS_KHR- , gl_AND_REVERSE- , gl_CLAMP_TO_BORDER_NV- , gl_GUILTY_CONTEXT_RESET_ARB- , gl_INT64_VEC2_NV- , gl_C3F_V3F- , gl_OBJECT_LINEAR_NV- , gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT- , gl_TEXTURE_FLOAT_COMPONENTS_NV- , gl_SOURCE3_ALPHA_NV- , gl_OPERAND2_ALPHA_EXT- , gl_CON_12_ATI- , gl_SYNC_STATUS- , gl_BLEND_SRC_RGB_EXT- , gl_DEBUG_SOURCE_WINDOW_SYSTEM_ARB- , gl_TEXTURE_2D_MULTISAMPLE_ARRAY- , gl_LEFT- , gl_UNSIGNED_INT_SAMPLER_1D- , gl_PIXEL_MAP_I_TO_R_SIZE- , gl_VERTEX_ARRAY_BINDING_OES- , gl_COMBINE_ALPHA_EXT- , gl_TRANSFORM_FEEDBACK_ATTRIBS_NV- , gl_CURRENT_WEIGHT_ARB- , gl_RASTERIZER_DISCARD_NV- , gl_SRC_IN_NV- , gl_OBJECT_DISTANCE_TO_POINT_SGIS- , gl_COMPRESSED_RGB8_ETC2- , gl_MAX_VERTEX_SHADER_STORAGE_BLOCKS- , gl_RGB_SNORM- , gl_INTENSITY4_EXT- , gl_R8I- , gl_MAX_SUBROUTINE_UNIFORM_LOCATIONS- , gl_EDGEFLAG_BIT_PGI- , gl_MAX_FRAMEBUFFER_SAMPLES- , gl_SECONDARY_COLOR_ARRAY_TYPE- , gl_ALL_BARRIER_BITS_EXT- , gl_TEXTURE14- , gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER- , gl_SRC0_ALPHA- , gl_MODELVIEW16_ARB- , gl_DARKEN_NV- , gl_INTENSITY_EXT- , gl_CURRENT_BIT- , gl_FLOAT_RGBA32_NV- , gl_SHADOW_ATTENUATION_EXT- , gl_COMPRESSED_SRGB8_ETC2- , gl_DRAW_BUFFER15- , gl_COMPARE_R_TO_TEXTURE_ARB- , gl_R11F_G11F_B10F_EXT- , gl_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG- , gl_MULTISAMPLE_BUFFER_BIT6_QCOM- , gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT- , gl_FEEDBACK_BUFFER_TYPE- , gl_IMAGE_BINDING_FORMAT_EXT- , gl_PROXY_TEXTURE_2D_EXT- , gl_DEPTH32F_STENCIL8- , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS- , gl_TESS_EVALUATION_SUBROUTINE- , gl_TEXTURE_LOD_BIAS_T_SGIX- , gl_COVERAGE_COMPONENT4_NV- , gl_TEXTURE6_ARB- , gl_MAX_3D_TEXTURE_SIZE_EXT- , gl_TEXTURE_RESIDENT- , gl_FOG_COORD_ARRAY_TYPE- , gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR- , gl_QUERY_BY_REGION_WAIT- , gl_SLUMINANCE_ALPHA- , gl_INT_SAMPLER_CUBE- , gl_UNSIGNED_SHORT_4_4_4_4_REV- , gl_MAX_PROGRAM_NATIVE_PARAMETERS_ARB- , gl_LUMINANCE4_ALPHA4_EXT- , gl_OPERAND0_RGB_ARB- , gl_PROXY_TEXTURE_2D_STACK_MESAX- , gl_TEXTURE_3D_EXT- , gl_STREAM_RASTERIZATION_AMD- , gl_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT- , gl_DEPTH_COMPONENT32_SGIX- , gl_LINE_STRIP- , gl_CON_25_ATI- , gl_SLIM10U_SGIX- , gl_COLOR_INDEX2_EXT- , gl_CON_22_ATI- , gl_DEFORMATIONS_MASK_SGIX- , gl_INVERSE_TRANSPOSE_NV- , gl_MULT- , gl_ATTRIB_ARRAY_STRIDE_NV- , gl_RGBA16_SNORM- , gl_MIN_SAMPLE_SHADING_VALUE- , gl_RG8_SNORM- , gl_OBJECT_ATTACHED_OBJECTS_ARB- , gl_UNPACK_SKIP_PIXELS_EXT- , gl_ACTIVE_VERTEX_UNITS_ARB- , gl_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT- , gl_INTERNALFORMAT_RED_TYPE- , gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV- , gl_FLOAT_RGB_NV- , gl_MAP_FLUSH_EXPLICIT_BIT_EXT- , gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS- , gl_HALF_FLOAT_NV- , gl_DEPTH_STENCIL- , gl_PROGRAM_ERROR_POSITION_ARB- , gl_TRACE_ERRORS_BIT_MESA- , gl_STENCIL_OP_VALUE_AMD- , gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES- , gl_COMPRESSED_SIGNED_R11_EAC- , gl_FLOAT_MAT3x2- , gl_PROGRAM_ERROR_STRING_NV- , gl_VERTEX_ID_NV- , gl_VERTEX_BINDING_OFFSET- , gl_RESTART_SUN- , gl_INT_IMAGE_CUBE_MAP_ARRAY_EXT- , gl_COLOR_INDEX- , gl_TEXTURE31_ARB- , gl_MAX_DRAW_BUFFERS_ARB- , gl_MAX_IMAGE_UNITS- , gl_OUTPUT_TEXTURE_COORD4_EXT- , gl_COLOR_ARRAY_POINTER- , gl_MAX_COLOR_TEXTURE_SAMPLES- , gl_SIGNED_NEGATE_NV- , gl_MAX_GEOMETRY_UNIFORM_BLOCKS- , gl_DEBUG_TYPE_ERROR- , gl_HISTOGRAM_RED_SIZE_EXT- , gl_SECONDARY_COLOR_ARRAY_POINTER_EXT- , gl_UNSIGNALED- , gl_CON_8_ATI- , gl_COMPRESSED_RED- , gl_RGBA2_EXT- , gl_T2F_C3F_V3F- , gl_SECONDARY_COLOR_ARRAY- , gl_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT- , gl_COLOR3_BIT_PGI- , gl_CLIP_DISTANCE3- , gl_TEXTURE_SWIZZLE_G_EXT- , gl_SAMPLER_CUBE_MAP_ARRAY- , gl_4PASS_3_SGIS- , gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT- , gl_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT- , gl_VERTEX_ARRAY_STRIDE- , gl_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS- , gl_TEXTURE_SWIZZLE_A- , gl_DOUBLE_MAT3x2- , gl_TEXTURE_UPDATE_BARRIER_BIT_EXT- , gl_SHADING_LANGUAGE_VERSION- , gl_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP- , gl_FIXED_ONLY_ARB- , gl_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI- , gl_CON_19_ATI- , gl_CONTEXT_RELEASE_BEHAVIOR- , gl_ARRAY_BUFFER_BINDING- , gl_UNPACK_COLORSPACE_CONVERSION_WEBGL- , gl_CONVEX_HULL_NV- , gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB- , gl_FIRST_TO_REST_NV- , gl_MAX_TEXTURE_COORDS- , gl_TEXTURE_DEPTH- , gl_LIGHT0- , gl_VERTEX_STREAM4_ATI- , gl_POST_COLOR_MATRIX_ALPHA_BIAS_SGI- , gl_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS- , gl_SAMPLER_2D_RECT_SHADOW_ARB- , gl_DRAW_BUFFER1_ATI- , gl_SAMPLE_BUFFERS_SGIS- , gl_SIGNED_LUMINANCE_ALPHA_NV- , gl_R16_SNORM- , gl_DRAW_BUFFER13_ATI- , gl_TEXTURE_LIGHT_EXT- , gl_BOOL_ARB- , gl_BGRA_IMG- , gl_SRGB_ALPHA_EXT- , gl_RELATIVE_ROUNDED_RECT2_NV- , gl_LUMINANCE16UI_EXT- , gl_MATRIX7_NV- , gl_INTENSITY16- , gl_DRAW_INDIRECT_BUFFER- , gl_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM- , gl_MAX_IMAGE_SAMPLES_EXT- , gl_DEBUG_SOURCE_OTHER_ARB- , gl_POINT_BIT- , gl_MAX_VARYING_VECTORS- , gl_SUBTRACT_ARB- , gl_INT_SAMPLER_BUFFER_AMD- , gl_SAMPLE_MASK_INVERT_SGIS- , gl_POINT_DISTANCE_ATTENUATION_ARB- , gl_GREEN_BIT_ATI- , gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT- , gl_FRAMEBUFFER- , gl_TEXTURE_COMPRESSION_HINT_ARB- , gl_PROGRAM_INPUT- , gl_SCREEN_NV- , gl_TEXTURE_CUBE_MAP_ARRAY_EXT- , gl_FENCE_STATUS_NV- , gl_MAX_BINDABLE_UNIFORM_SIZE_EXT- , gl_PACK_COMPRESSED_BLOCK_WIDTH- , gl_RELATIVE_VERTICAL_LINE_TO_NV- , gl_POST_COLOR_MATRIX_COLOR_TABLE_SGI- , gl_ALPHA_INTEGER- , gl_MAX_SUBROUTINES- , gl_UNSIGNED_INT_VEC3_EXT- , gl_ELEMENT_ARRAY_ATI- , gl_ONE_MINUS_CONSTANT_COLOR- , gl_MODELVIEW18_ARB- , gl_CONSTANT_ARB- , gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV- , gl_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL- , gl_DRAW_BUFFER_EXT- , gl_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT- , gl_FLOAT_MAT2x4_NV- , gl_CULL_VERTEX_EXT- , gl_MATRIX_PALETTE_ARB- , gl_VERTEX_PROGRAM_POINT_SIZE_ARB- , gl_FLOAT_RG16_NV- , gl_CON_1_ATI- , gl_BLEND_EQUATION_RGB- , gl_OP_CROSS_PRODUCT_EXT- , gl_VERTEX_WEIGHT_ARRAY_STRIDE_EXT- , gl_TESS_CONTROL_PROGRAM_NV- , gl_FIXED_ONLY- , gl_4PASS_1_EXT- , gl_SAMPLER_2D_MULTISAMPLE_ARRAY_OES- , gl_UNSIGNED_INT_8_8_8_8_REV- , gl_UNIFORM_BLOCK_ACTIVE_UNIFORMS- , gl_SLUMINANCE_ALPHA_NV- , gl_PROXY_TEXTURE_CUBE_MAP- , gl_IMAGE_CLASS_1_X_32- , gl_STACK_OVERFLOW_KHR- , gl_COMPRESSED_RGBA_ASTC_5x5x5_OES- , gl_CLOSE_PATH_NV- , gl_PIXEL_COUNT_AVAILABLE_NV- , gl_PATH_DASH_OFFSET_NV- , gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV- , gl_GLOBAL_ALPHA_FACTOR_SUN- , gl_INDEX_ARRAY_COUNT_EXT- , gl_PACK_RESAMPLE_OML- , gl_LAYER_NV- , gl_DRAW_FRAMEBUFFER- , gl_LINEAR_DETAIL_ALPHA_SGIS- , gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT- , gl_EDGE_FLAG_ARRAY- , gl_TEXTURE_DEFORMATION_BIT_SGIX- , gl_SOURCE1_RGB- , gl_TEXTURE_3D_OES- , gl_ALLOW_DRAW_OBJ_HINT_PGI- , gl_PATH_STROKE_BOUNDING_BOX_NV- , gl_HINT_BIT- , gl_VERTICAL_LINE_TO_NV- , gl_MAX_TEXTURE_BUFFER_SIZE_EXT- , gl_MAX_DRAW_BUFFERS_ATI- , gl_R8_EXT- , gl_TEXTURE_COVERAGE_SAMPLES_NV- , gl_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV- , gl_REFERENCED_BY_VERTEX_SHADER- , gl_FLOAT_RG32_NV- , gl_TESSELLATION_FACTOR_AMD- , gl_MAX_PROGRAM_TEMPORARIES_ARB- , gl_COMPRESSED_RGBA_ASTC_12x12_KHR- , gl_PROJECTION- , gl_S- , gl_ALPHA_FLOAT32_APPLE- , gl_LUMINANCE8_ALPHA8_OES- , gl_4_BYTES_NV- , gl_CONST_EYE_NV- , gl_MAT_SPECULAR_BIT_PGI- , gl_TEXTURE1_ARB- , gl_LINE_WIDTH_GRANULARITY- , gl_DRAW_INDIRECT_BUFFER_BINDING- , gl_BLEND_EQUATION- , gl_RGBA8UI_EXT- , gl_NORMALIZE- , gl_LUMINANCE_ALPHA_FLOAT16_APPLE- , gl_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX- , gl_INVERSE_NV- , gl_TEXTURE_SWIZZLE_A_EXT- , gl_DEPTH24_STENCIL8_OES- , gl_UNPACK_COMPRESSED_BLOCK_HEIGHT- , gl_RGBA32UI- , gl_MAP1_COLOR_4- , gl_MAX_ELEMENTS_VERTICES- , gl_CLIENT_VERTEX_ARRAY_BIT- , gl_TEXTURE_GREEN_TYPE- , gl_TEXTURE_BINDING_BUFFER_ARB- , gl_MAX_RECTANGLE_TEXTURE_SIZE_NV- , gl_INTERNALFORMAT_GREEN_TYPE- , gl_OP_ADD_EXT- , gl_UNSIGNED_INT_24_8- , gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS- , gl_3D_COLOR- , gl_MODULATE_COLOR_IMG- , gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB- , gl_TEXTURE_CLIPMAP_FRAME_SGIX- , gl_NORMAL_ARRAY_STRIDE_EXT- , gl_R16- , gl_PIXEL_PACK_BUFFER- , gl_SOFTLIGHT_KHR- , gl_POST_CONVOLUTION_BLUE_SCALE- , gl_INTERLEAVED_ATTRIBS_NV- , gl_COLOR_ATTACHMENT8- , gl_DEBUG_TYPE_PUSH_GROUP_KHR- , gl_PERFQUERY_COUNTER_DATA_UINT64_INTEL- , gl_MOV_ATI- , gl_PROGRAM_SEPARABLE- , gl_REG_20_ATI- , gl_DOUBLE_VEC3- , gl_8X_BIT_ATI- , gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY- , gl_MATRIX26_ARB- , gl_PROXY_TEXTURE_RECTANGLE_ARB- , gl_TRANSFORM_HINT_APPLE- , gl_UNPACK_ROW_BYTES_APPLE- , gl_POST_COLOR_MATRIX_ALPHA_SCALE_SGI- , gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB- , gl_ONE_MINUS_CONSTANT_COLOR_EXT- , gl_TEXTURE_BINDING_CUBE_MAP_OES- , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT- , gl_VERTEX_ARRAY_STORAGE_HINT_APPLE- , gl_VERTEX_BINDING_BUFFER- , gl_FRAGMENT_LIGHT0_SGIX- , gl_GLYPH_HORIZONTAL_BEARING_X_BIT_NV- , gl_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT- , gl_SRC2_RGB- , gl_NUM_COMPRESSED_TEXTURE_FORMATS- , gl_OUTPUT_TEXTURE_COORD2_EXT- , gl_DEPTH_TEXTURE_MODE- , gl_SAMPLE_PATTERN_EXT- , gl_ELEMENT_ARRAY_APPLE- , gl_MAX_FOG_FUNC_POINTS_SGIS- , gl_TEXTURE_APPLICATION_MODE_EXT- , gl_COLOR_ARRAY_SIZE_EXT- , gl_VERTEX_SOURCE_ATI- , gl_MAP2_VERTEX_ATTRIB3_4_NV- , gl_LIGHTEN_KHR- , gl_INT_SAMPLER_1D_ARRAY- , gl_UNSIGNED_INT_10F_11F_11F_REV_EXT- , gl_LUMINANCE8- , gl_ACCUM_ALPHA_BITS- , gl_MINMAX_FORMAT- , gl_NOOP- , gl_READ_FRAMEBUFFER_EXT- , gl_SHADER- , gl_UNSIGNED_INT_10_10_10_2_OES- , gl_TEXTURE_COMPRESSED_BLOCK_WIDTH- , gl_DEBUG_OUTPUT_KHR- , gl_SOURCE0_ALPHA_ARB- , gl_SAMPLER_1D_ARRAY_EXT- , gl_T2F_V3F- , gl_SAMPLE_MASK_SGIS- , gl_CIRCULAR_TANGENT_ARC_TO_NV- , gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS- , gl_MAX_DEBUG_LOGGED_MESSAGES- , gl_SOURCE1_ALPHA- , gl_RGB_422_APPLE- , gl_COLOR_TABLE- , gl_MAP1_TEXTURE_COORD_3- , gl_DEBUG_SEVERITY_HIGH_AMD- , gl_UNSIGNED_INT- , gl_VERTEX_PROGRAM_CALLBACK_MESA- , gl_BLOCK_INDEX- , gl_FLOAT- , gl_TRACE_PIXELS_BIT_MESA- , gl_BACK- , gl_PATH_JOIN_STYLE_NV- , gl_LUMINANCE_ALPHA16I_EXT- , gl_FLOAT_MAT2- , gl_SIGNED_IDENTITY_NV- , gl_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA- , gl_DEPTH_PASS_INSTRUMENT_MAX_SGIX- , gl_CLIP_DEPTH_MODE- , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT- , gl_CULL_FACE- , gl_DETAIL_TEXTURE_LEVEL_SGIS- , gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB- , gl_PACK_SKIP_ROWS- , gl_COEFF- , gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT- , gl_NUM_INSTRUCTIONS_PER_PASS_ATI- , gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB- , gl_RGBA8- , gl_TESS_GEN_VERTEX_ORDER- , gl_TEXTURE_CUBE_MAP- , gl_VERTEX_PRECLIP_HINT_SGIX- , gl_NUM_SHADING_LANGUAGE_VERSIONS- , gl_OUTPUT_TEXTURE_COORD9_EXT- , gl_MAX_PROGRAM_GENERIC_RESULTS_NV- , gl_COLOR_ATTACHMENT7_NV- , gl_OUT_OF_MEMORY- , gl_TEXTURE_COORD_ARRAY_POINTER_EXT- , gl_FLOAT_MAT2_ARB- , gl_COMBINER_AB_DOT_PRODUCT_NV- , gl_INDEX_ARRAY_POINTER_EXT- , gl_WRITE_PIXEL_DATA_RANGE_POINTER_NV- , gl_3D- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES- , gl_UPPER_LEFT- , gl_IMAGE_1D_ARRAY_EXT- , gl_GREEN- , gl_RGB12- , gl_GEOMETRY_DEFORMATION_BIT_SGIX- , gl_LUMINANCE_ALPHA_FLOAT32_ATI- , gl_INT_SAMPLER_CUBE_MAP_ARRAY- , gl_EVAL_TRIANGULAR_2D_NV- , gl_QUERY_BY_REGION_WAIT_INVERTED- , gl_CONTEXT_ROBUST_ACCESS_KHR- , gl_STREAM_READ_ARB- , gl_INT_IMAGE_1D_ARRAY_EXT- , gl_QUERY_NO_WAIT_INVERTED- , gl_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT- , gl_COLOR_ATTACHMENT4_EXT- , gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR- , gl_LOSE_CONTEXT_ON_RESET- , gl_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM- , gl_REPLACEMENT_CODE_SUN- , gl_422_REV_EXT- , gl_COMPILE_STATUS- , gl_VERTEX_ATTRIB_MAP1_COEFF_APPLE- , gl_TRANSPOSE_COLOR_MATRIX- , gl_COLOR_TABLE_FORMAT- , gl_VERSION_ES_CM_1_1- , gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE- , gl_BUFFER_STORAGE_FLAGS- , gl_UNSIGNED_NORMALIZED_EXT- , gl_LIGHT_MODEL_SPECULAR_VECTOR_APPLE- , gl_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT- , gl_3_BYTES- , gl_CND0_ATI- , gl_TEXTURE_MAX_LEVEL_APPLE- , gl_POINT- , gl_MODELVIEW11_ARB- , gl_RED_BITS- , gl_PIXEL_TILE_GRID_WIDTH_SGIX- , gl_DRAW_BUFFER7_NV- , gl_OP_SET_LT_EXT- , gl_TEXTURE24_ARB- , gl_TESS_GEN_POINT_MODE- , gl_INTERNALFORMAT_PREFERRED- , gl_VERTEX_SHADER_VARIANTS_EXT- , gl_COMBINER_CD_OUTPUT_NV- , gl_TRANSPOSE_CURRENT_MATRIX_ARB- , gl_MAX_ARRAY_TEXTURE_LAYERS_EXT- , gl_UNSIGNED_SHORT_8_8_MESA- , gl_BLEND_ADVANCED_COHERENT_NV- , gl_VERTEX_ARRAY_EXT- , gl_BOOL_VEC4_ARB- , gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV- , gl_UNSIGNED_SHORT_5_5_5_1- , gl_SHADE_MODEL- , gl_MIRROR_CLAMP_TO_EDGE- , gl_RGB5_EXT- , gl_TEXTURE_GEN_S- , gl_TEXTURE_COMPRESSED- , gl_FRAMEBUFFER_BLEND- , gl_REPLACE_VALUE_AMD- , gl_YCRCB_SGIX- , gl_UNIFORM_BLOCK_INDEX- , gl_TEXTURE_TOO_LARGE_EXT- , gl_MIRRORED_REPEAT_ARB- , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER- , gl_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB- , gl_MAX_SAMPLES- , gl_ATTENUATION_EXT- , gl_MIRROR_CLAMP_EXT- , gl_DEBUG_LOGGED_MESSAGES- , gl_DOT3_ATI- , gl_EMBOSS_CONSTANT_NV- , gl_OUTPUT_TEXTURE_COORD11_EXT- , gl_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL- , gl_INDEX- , gl_CURRENT_MATRIX_ARB- , gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS- , gl_MAX_DRAW_BUFFERS_EXT- , gl_ADD_BLEND_IMG- , gl_CLIP_FAR_HINT_PGI- , gl_POST_CONVOLUTION_COLOR_TABLE- , gl_RGBA4_OES- , gl_QUERY_RESULT_AVAILABLE_ARB- , gl_RGB8UI- , gl_DYNAMIC_READ- , gl_TEXTURE_BINDING_2D_MULTISAMPLE- , gl_OBJECT_TYPE_APPLE- , gl_PERCENTAGE_AMD- , gl_LIGHT_MODEL_LOCAL_VIEWER- , gl_SPARE0_PLUS_SECONDARY_COLOR_NV- , gl_OP_INDEX_EXT- , gl_VIEW_CLASS_S3TC_DXT3_RGBA- , gl_TEXTURE_DEPTH_TYPE_ARB- , gl_TEXTURE_ALPHA_SIZE- , gl_YCRCB_422_SGIX- , gl_INDEX_ARRAY_LENGTH_NV- , gl_TRANSPOSE_AFFINE_3D_NV- , gl_MATRIX17_ARB- , gl_SRGB_ALPHA- , gl_MAP_TESSELLATION_NV- , gl_PACK_SKIP_VOLUMES_SGIS- , gl_COLOR_BUFFER_BIT- , gl_REG_6_ATI- , gl_ATOMIC_COUNTER_BUFFER_BINDING- , gl_POST_CONVOLUTION_ALPHA_BIAS- , gl_HARDLIGHT_NV- , gl_INTENSITY16_SNORM- , gl_TEXCOORD1_BIT_PGI- , gl_DEBUG_CALLBACK_FUNCTION- , gl_TEXTURE8_ARB- , gl_DOUBLE_VEC2_EXT- , gl_TRIANGLES_ADJACENCY- , gl_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER- , gl_R16F- , gl_OUTPUT_TEXTURE_COORD19_EXT- , gl_QUAD_LUMINANCE4_SGIS- , gl_SAMPLER_OBJECT_AMD- , gl_COMPRESSED_RGBA_S3TC_DXT3_ANGLE- , gl_UNSIGNED_INT_IMAGE_2D- , gl_ALPHA_TEST- , gl_CONVOLUTION_WIDTH- , gl_SLUMINANCE_NV- , gl_FRAMEBUFFER_UNDEFINED_OES- , gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED- , gl_HALF_FLOAT_OES- , gl_CONVOLUTION_FORMAT_EXT- , gl_FALSE- , gl_ADD_ATI- , gl_STENCIL_BACK_FAIL- , gl_DOUBLE_VEC4- , gl_STANDARD_FONT_NAME_NV- , gl_ALPHA4_EXT- , gl_EXPAND_NORMAL_NV- , gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB- , gl_TRACE_MASK_MESA- , gl_VARIABLE_B_NV- , gl_RGB16_EXT- , gl_TEXTURE- , gl_PIXEL_UNPACK_BUFFER_BINDING_EXT- , gl_IMAGE_CLASS_1_X_8- , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE- , gl_BOOL_VEC2_ARB- , gl_MAP2_VERTEX_3- , gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH- , gl_TEXTURE_WRAP_S- , gl_TEXTURE_CUBE_MAP_NEGATIVE_X- , gl_TEXTURE_CUBE_MAP_ARRAY- , gl_TEXTURE_ALPHA_TYPE- , gl_MAX_COLOR_ATTACHMENTS_NV- , gl_MAX_CUBE_MAP_TEXTURE_SIZE- , gl_ANY_SAMPLES_PASSED- , gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE- , gl_COLOR_ARRAY_STRIDE- , gl_MULTISAMPLE_BIT_EXT- , gl_VERTEX_ATTRIB_ARRAY_DIVISOR- , gl_UNSIGNED_INT64_VEC3_NV- , gl_WAIT_FAILED_APPLE- , gl_DRAW_BUFFER5_ATI- , gl_MAX_CUBE_MAP_TEXTURE_SIZE_EXT- , gl_ONE_MINUS_CONSTANT_ALPHA_EXT- , gl_UNSIGNED_INT_8_24_REV_MESA- , gl_MAX_PROGRAM_ENV_PARAMETERS_ARB- , gl_MAX_VERTEX_VARYING_COMPONENTS_EXT- , gl_CURRENT_TANGENT_EXT- , gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB- , gl_ALPHA16- , gl_MAP1_VERTEX_4- , gl_SAMPLER_CUBE_SHADOW_NV- , gl_SAMPLER_2D_SHADOW_ARB- , gl_PROGRAM_LENGTH_NV- , gl_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM- , gl_IGNORE_BORDER_HP- , gl_DEBUG_SOURCE_SHADER_COMPILER- , gl_TEXTURE_BORDER_VALUES_NV- , gl_FRAGMENT_SUBROUTINE- , gl_MAX_DEPTH_TEXTURE_SAMPLES- , gl_VERTEX_ATTRIB_ARRAY_POINTER- , gl_COLOR_ATTACHMENT7- , gl_LAST_VERTEX_CONVENTION_EXT- , gl_TEXTURE_LO_SIZE_NV- , gl_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER- , gl_COMPRESSED_RGB8_ETC2_OES- , gl_NORMAL_MAP_NV- , gl_COLOR_ARRAY_COUNT_EXT- , gl_TEXTURE_COMPARE_MODE_EXT- , gl_BINORMAL_ARRAY_TYPE_EXT- , gl_OPERAND0_RGB_EXT- , gl_MAX_VERTEX_VARYING_COMPONENTS_ARB- , gl_PIXEL_MIN_FILTER_EXT- , gl_ACCUM_ADJACENT_PAIRS_NV- , gl_BLEND_DST- , gl_W_EXT- , gl_RENDERBUFFER_COVERAGE_SAMPLES_NV- , gl_STENCIL_FUNC- , gl_MAX_VERTEX_STREAMS- , gl_GEOMETRY_INPUT_TYPE- , gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV- , gl_MINMAX_SINK_EXT- , gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER- , gl_DOUBLE_MAT2x3- , gl_FRACTIONAL_EVEN_EXT- , gl_VERTEX_ARRAY_TYPE_EXT- , gl_BINORMAL_ARRAY_POINTER_EXT- , gl_SAMPLE_MASK_EXT- , gl_TESS_CONTROL_SHADER_EXT- , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT- , gl_TANGENT_ARRAY_STRIDE_EXT- , gl_GET_TEXTURE_IMAGE_TYPE- , gl_OFFSET- , gl_ALL_STATIC_DATA_IBM- , gl_READ_PIXEL_DATA_RANGE_LENGTH_NV- , gl_CONSTANT_COLOR- , gl_UNSIGNED_SHORT_1_5_5_5_REV_EXT- , gl_MATERIAL_SIDE_HINT_PGI- , gl_UNPACK_RESAMPLE_OML- , gl_SAMPLE_SHADING- , gl_OUTPUT_TEXTURE_COORD13_EXT- , gl_MAX_COLOR_MATRIX_STACK_DEPTH- , gl_INT64_VEC3_NV- , gl_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV- , gl_TEXTURE_STACK_DEPTH- , gl_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL- , gl_FRAMEBUFFER_UNSUPPORTED_EXT- , gl_QUERY_TARGET- , gl_LUMINANCE4_ALPHA4- , gl_TRANSFORM_FEEDBACK_BARRIER_BIT- , gl_RGB32UI- , gl_STATIC_DRAW- , gl_MAX_COMPUTE_UNIFORM_BLOCKS- , gl_PALETTE4_RGBA8_OES- , gl_UNPACK_PREMULTIPLY_ALPHA_WEBGL- , gl_TEXTURE21- , gl_RGB32I- , gl_MAX_TEXTURE_LOD_BIAS_EXT- , gl_PATH_GEN_COLOR_FORMAT_NV- , gl_RGB10_A2UI- , gl_GREEN_BITS- , gl_POLYGON_MODE- , gl_SUCCESS_NV- , gl_RGBA12- , gl_PATCHES- , gl_ACCUM- , gl_NUM_PASSES_ATI- , gl_DEBUG_TYPE_ERROR_ARB- , gl_TEXTURE_LIGHTING_MODE_HP- , gl_HISTOGRAM_SINK_EXT- , gl_POINT_SIZE_GRANULARITY- , gl_R32F- , gl_STATIC_COPY- , gl_FOG_COORDINATE_ARRAY_TYPE_EXT- , gl_SPARE0_NV- , gl_3DC_XY_AMD- , gl_LUMINANCE_ALPHA32F_ARB- , gl_VERTEX_ARRAY_RANGE_VALID_NV- , gl_DEPTH_BUFFER_BIT6_QCOM- , gl_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX- , gl_LINE_WIDTH- , gl_FOG_OFFSET_SGIX- , gl_GEOMETRY_SHADER_BIT_EXT- , gl_TEXTURE_BLUE_SIZE- , gl_TEXTURE_SHADER_NV- , gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV- , gl_FRAMEZOOM_SGIX- , gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT- , gl_DEPTH_RENDERABLE- , gl_MAX_TEXTURE_BUFFER_SIZE- , gl_COLOR_ALPHA_PAIRING_ATI- , gl_PACK_REVERSE_ROW_ORDER_ANGLE- , gl_VERTEX_ATTRIB_ARRAY_NORMALIZED- , gl_OP_MADD_EXT- , gl_TEXTURE7- , gl_RGB32I_EXT- , gl_RED_BIAS- , gl_FLOAT_VEC2- , gl_HALF_APPLE- , gl_SGX_BINARY_IMG- , gl_CON_28_ATI- , gl_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP- , gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV- , gl_MAP2_VERTEX_ATTRIB2_4_NV- , gl_TRANSFORM_BIT- , gl_R8- , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV- , gl_T- , gl_TEXTURE_ENV_MODE- , gl_HIGH_INT- , gl_TEXTURE_UNSIGNED_REMAP_MODE_NV- , gl_MAX_PROGRAM_LOOP_COUNT_NV- , gl_PERFQUERY_WAIT_INTEL- , gl_INVALID_FRAMEBUFFER_OPERATION_EXT- , gl_TEXTURE_2D_BINDING_EXT- , gl_TEXTURE_NUM_LEVELS_QCOM- , gl_TEXTURE_BUFFER_ARB- , gl_TRUE- , gl_MAX_LAYERS- , gl_MAX_TEXTURE_UNITS_ARB- , gl_MAP2_NORMAL- , gl_DUAL_ALPHA16_SGIS- , gl_PROGRAM_OUTPUT- , gl_OUTPUT_TEXTURE_COORD22_EXT- , gl_SAMPLER_1D_ARB- , gl_POST_CONVOLUTION_GREEN_BIAS- , gl_INT_IMAGE_CUBE- , gl_CURRENT_VERTEX_WEIGHT_EXT- , gl_SIGNED_LUMINANCE8_NV- , gl_TEXTURE_VIEW_NUM_LAYERS_EXT- , gl_RG16F- , gl_PROGRAM_POINT_SIZE_EXT- , gl_FILE_NAME_NV- , gl_INT_IMAGE_BUFFER_EXT- , gl_TEXTURE_UPDATE_BARRIER_BIT- , gl_HARDMIX_NV- , gl_FLOAT_MAT3x4- , gl_TEXTURE_INTERNAL_FORMAT_QCOM- , gl_INTERNALFORMAT_BLUE_SIZE- , gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV- , gl_HSL_COLOR_NV- , gl_CONDITION_SATISFIED- , gl_UNIFORM_BUFFER_LENGTH_NV- , gl_ALPHA8UI_EXT- , gl_REG_23_ATI- , gl_UNSIGNED_SHORT_5_6_5_EXT- , gl_EDGE_FLAG_ARRAY_LENGTH_NV- , gl_IMAGE_CLASS_1_X_16- , gl_LUMINANCE8_ALPHA8_SNORM- , gl_PATH_FILL_COVER_MODE_NV- , gl_LUMINANCE_ALPHA_FLOAT32_APPLE- , gl_INTENSITY16UI_EXT- , gl_RENDERBUFFER_SAMPLES_APPLE- , gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE- , gl_LUMINANCE_ALPHA32I_EXT- , gl_REGISTER_COMBINERS_NV- , gl_R1UI_N3F_V3F_SUN- , gl_FOG_COORDINATE_SOURCE- , gl_DEBUG_SEVERITY_MEDIUM_AMD- , gl_MODELVIEW30_ARB- , gl_COMPRESSED_RGBA_S3TC_DXT5_EXT- , gl_DRAW_BUFFER0_NV- , gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT- , gl_ELEMENT_ARRAY_BARRIER_BIT- , gl_SHADER_PIXEL_LOCAL_STORAGE_EXT- , gl_FRONT_LEFT- , gl_UNIFORM_BUFFER_BINDING- , gl_SIGNED_RGBA8_NV- , gl_EYE_PLANE- , gl_TEXTURE_1D- , gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT- , gl_MALI_PROGRAM_BINARY_ARM- , gl_SKIP_COMPONENTS3_NV- , gl_LUMINANCE_ALPHA- , gl_ACCUM_RED_BITS- , gl_POLYGON_OFFSET_FACTOR- , gl_SAMPLER_2D_ARRAY_SHADOW_NV- , gl_VARIABLE_D_NV- , gl_TEXTURE_LEQUAL_R_SGIX- , gl_INT- , gl_IMAGE_TRANSLATE_Y_HP- , gl_POINT_TOKEN- , gl_RESAMPLE_ZERO_FILL_OML- , gl_DEBUG_SOURCE_THIRD_PARTY_KHR- , gl_TEXTURE_MAG_SIZE_NV- , gl_PER_STAGE_CONSTANTS_NV- , gl_VIRTUAL_PAGE_SIZE_Y_ARB- , gl_SPRITE_EYE_ALIGNED_SGIX- , gl_EVAL_VERTEX_ATTRIB14_NV- , gl_TRANSFORM_FEEDBACK_VARYINGS_NV- , gl_RGB10- , gl_MAX_VIEWPORT_DIMS- , gl_BLUE_MAX_CLAMP_INGR- , gl_INCR_WRAP- , gl_VIRTUAL_PAGE_SIZE_X_AMD- , gl_BOOL_VEC3- , gl_CON_17_ATI- , gl_MAX_CUBE_MAP_TEXTURE_SIZE_OES- , gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT- , gl_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI- , gl_MINMAX- , gl_CONSTANT_BORDER_HP- , gl_SRGB_WRITE- , gl_MAX_TEXTURE_BUFFER_SIZE_ARB- , gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV- , gl_DECAL- , gl_REG_7_ATI- , gl_TESS_GEN_SPACING_EXT- , gl_ELEMENT_ARRAY_LENGTH_NV- , gl_MATRIX31_ARB- , gl_TRANSFORM_FEEDBACK_VARYING- , gl_VERTEX_ATTRIB_ARRAY_SIZE- , gl_NOTEQUAL- , gl_READ_PIXELS_TYPE- , gl_MODELVIEW_STACK_DEPTH- , gl_COMPRESSED_RGBA_ASTC_6x6x5_OES- , gl_COMBINE_EXT- , gl_NICEST- , gl_MODELVIEW2_ARB- , gl_UNPACK_IMAGE_HEIGHT- , gl_TEXTURE_CUBE_MAP_ARRAY_ARB- , gl_DRAW_BUFFER12- , gl_MAX_FRAGMENT_INTERPOLATION_OFFSET- , gl_FRAMEBUFFER_DEFAULT_HEIGHT- , gl_DT_BIAS_NV- , gl_DSDT_NV- , gl_IMAGE_CUBE_MAP_ARRAY- , gl_STENCIL_INDEX4- , gl_ROUND_NV- , gl_Y_EXT- , gl_PATH_DASH_CAPS_NV- , gl_TEXTURE_PRIORITY- , gl_TEXTURE_4D_BINDING_SGIS- , gl_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD- , gl_CULL_MODES_NV- , gl_VERTEX_ATTRIB_MAP2_SIZE_APPLE- , gl_REFERENCED_BY_GEOMETRY_SHADER_EXT- , gl_MODELVIEW_MATRIX- , gl_VIDEO_BUFFER_NV- , gl_TEXTURE12- , gl_COLORBURN_NV- , gl_COLOR_ARRAY_BUFFER_BINDING_ARB- , gl_READ_BUFFER_EXT- , gl_RENDERBUFFER_RED_SIZE_OES- , gl_TEXTURE_SHARED_SIZE- , gl_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS- , gl_ALL_SHADER_BITS_EXT- , gl_PERFQUERY_SINGLE_CONTEXT_INTEL- , gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT- , gl_PERFMON_RESULT_AMD- , gl_GUILTY_CONTEXT_RESET- , gl_PREVIOUS- , gl_UNSIGNED_INT16_VEC3_NV- , gl_VERTEX_ATTRIB_MAP1_APPLE- , gl_LIGHT3- , gl_TESS_EVALUATION_SUBROUTINE_UNIFORM- , gl_DUAL_INTENSITY8_SGIS- , gl_PARAMETER_BUFFER_BINDING_ARB- , gl_CURRENT_SECONDARY_COLOR- , gl_RENDERBUFFER_ALPHA_SIZE- , gl_DUAL_INTENSITY12_SGIS- , gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING- , gl_OP_MAX_EXT- , gl_EDGE_FLAG_ARRAY_EXT- , gl_COLOR_TABLE_LUMINANCE_SIZE- , gl_FOG_COORD_ARRAY_ADDRESS_NV- , gl_COPY- , gl_DRAW_BUFFER2_NV- , gl_SAMPLER_BINDING- , gl_COPY_WRITE_BUFFER- , gl_PIXEL_UNPACK_BUFFER- , gl_VIEW_CLASS_S3TC_DXT1_RGBA- , gl_DRAW_FRAMEBUFFER_APPLE- , gl_PIXEL_MAP_A_TO_A_SIZE- , gl_EDGE_FLAG- , gl_CLIP_DISTANCE2- , gl_TEXTURE_GEN_MODE- , gl_HALF_BIAS_NORMAL_NV- , gl_RESAMPLE_ZERO_FILL_SGIX- , gl_OUTPUT_TEXTURE_COORD12_EXT- , gl_UNSIGNED_SHORT_8_8_REV_MESA- , gl_PALETTE8_RGBA8_OES- , gl_TEXTURE_4D_SGIS- , gl_PIXEL_PACK_BUFFER_EXT- , gl_MAP_ATTRIB_U_ORDER_NV- , gl_FUNC_SUBTRACT- , gl_PIXEL_SUBSAMPLE_4444_SGIX- , gl_TEXTURE_CUBE_MAP_NEGATIVE_Y- , gl_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT- , gl_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT- , gl_DYNAMIC_COPY- , gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT- , gl_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT- , gl_PROGRAM_LENGTH_ARB- , gl_MODELVIEW14_ARB- , gl_ITALIC_BIT_NV- , gl_OR_INVERTED- , gl_CLIP_NEAR_HINT_PGI- , gl_COVERAGE_EDGE_FRAGMENTS_NV- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR- , gl_PROGRAM_BINARY_LENGTH_OES- , gl_DRAW_BUFFER8_ARB- , gl_DRAW_FRAMEBUFFER_EXT- , gl_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET- , gl_SYNC_CL_EVENT_ARB- , gl_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE- , gl_MAX_VERTEX_HINT_PGI- , gl_UNPACK_IMAGE_HEIGHT_EXT- , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV- , gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE- , gl_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB- , gl_STENCIL_BACK_REF- , gl_CLAMP_READ_COLOR_ARB- , gl_INTERNALFORMAT_RED_SIZE- , gl_PATCH_DEFAULT_INNER_LEVEL_EXT- , gl_OUTPUT_TEXTURE_COORD27_EXT- , gl_QUERY_STENCIL_FAIL_EVENT_BIT_AMD- , gl_MAX_COMPUTE_TEXTURE_IMAGE_UNITS- , gl_LOCATION- , gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS- , gl_POST_COLOR_MATRIX_GREEN_SCALE- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR- , gl_POST_COLOR_MATRIX_ALPHA_SCALE- , gl_HORIZONTAL_LINE_TO_NV- , gl_MAX_FRAGMENT_INPUT_COMPONENTS- , gl_PROGRAM_STRING_ARB- , gl_EDGE_FLAG_ARRAY_ADDRESS_NV- , gl_VENDOR- , gl_CLIPPING_INPUT_PRIMITIVES_ARB- , gl_TEXTURE_RENDERBUFFER_NV- , gl_ELEMENT_ARRAY_ADDRESS_NV- , gl_LOCAL_EXT- , gl_GEOMETRY_SHADER_INVOCATIONS- , gl_INT_VEC4_ARB- , gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE- , gl_SEPARATE_ATTRIBS_NV- , gl_FLOAT_MAT4_ARB- , gl_COLOR_ATTACHMENT_EXT- , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE- , gl_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB- , gl_SHININESS- , gl_INTERPOLATE_EXT- , gl_TRANSFORM_FEEDBACK- , gl_TEXTURE_DEPTH_QCOM- , gl_DOUBLE_MAT4x2- , gl_NORMAL_ARRAY_BUFFER_BINDING_ARB- , gl_PIXEL_TEX_GEN_SGIX- , gl_TRANSFORM_FEEDBACK_BUFFER_START- , gl_GLYPH_WIDTH_BIT_NV- , gl_STENCIL_ATTACHMENT_EXT- , gl_VERTEX_ARRAY_RANGE_POINTER_APPLE- , gl_VERTEX_WEIGHT_ARRAY_TYPE_EXT- , gl_MATRIX4_NV- , gl_READ_FRAMEBUFFER_ANGLE- , gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS- , gl_VERTEX_ARRAY_POINTER_EXT- , gl_RELATIVE_ROUNDED_RECT_NV- , gl_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV- , gl_MAX_PROGRAM_GENERIC_ATTRIBS_NV- , gl_TEXTURE_MEMORY_LAYOUT_INTEL- , gl_REG_0_ATI- , gl_VERTEX_ATTRIB_ARRAY15_NV- , gl_RGB12_EXT- , gl_FRAGMENT_LIGHT6_SGIX- , gl_MAX_PROGRAM_ATTRIB_COMPONENTS_NV- , gl_QUERY_ALL_EVENT_BITS_AMD- , gl_INTENSITY_FLOAT32_APPLE- , gl_LIST_INDEX- , gl_COMPRESSED_RGB_PVRTC_2BPPV1_IMG- , gl_REG_18_ATI- , gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT- , gl_COMPILE- , gl_VIEW_CLASS_128_BITS- , gl_4X_BIT_ATI- , gl_CLIENT_PIXEL_STORE_BIT- , gl_OPERAND2_RGB- , gl_MINMAX_FORMAT_EXT- , gl_UNSIGNED_INT_IMAGE_1D- , gl_INSTRUMENT_MEASUREMENTS_SGIX- , gl_VALIDATE_STATUS- , gl_NORMAL_ARRAY_COUNT_EXT- , gl_PATH_STENCIL_REF_NV- , gl_DRAW_BUFFER5_NV- , gl_COMPRESSED_RGBA_ARB- , gl_MAX_MULTISAMPLE_COVERAGE_MODES_NV- , gl_MAX_3D_TEXTURE_SIZE- , gl_FRAGMENT_NORMAL_EXT- , gl_SHADER_KHR- , gl_TEXTURE_DEPTH_TYPE- , gl_VERTEX_PROGRAM_CALLBACK_FUNC_MESA- , gl_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE- , gl_TEXTURE_2D_STACK_BINDING_MESAX- , gl_NUM_COMPRESSED_TEXTURE_FORMATS_ARB- , gl_INT_SAMPLER_2D_EXT- , gl_RGBA4_S3TC- , gl_MAX_SPOT_EXPONENT_NV- , gl_NEGATIVE_X_EXT- , gl_SYNC_X11_FENCE_EXT- , gl_OP_DOT3_EXT- , gl_LUMINANCE8_SNORM- , gl_SAMPLE_SHADING_ARB- , gl_CONVOLUTION_2D_EXT- , gl_MAP2_TEXTURE_COORD_2- , gl_SHADER_IMAGE_LOAD- , gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV- , gl_TEXTURE_VIEW_NUM_LEVELS_EXT- , gl_ACTIVE_UNIFORMS- , gl_ACCUM_GREEN_BITS- , gl_TESS_EVALUATION_PROGRAM_NV- , gl_COMPRESSED_SLUMINANCE- , gl_COLOR_ATTACHMENT14_EXT- , gl_VERTEX23_BIT_PGI- , gl_BUMP_ROT_MATRIX_ATI- , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT- , gl_MAX_PALETTE_MATRICES_OES- , gl_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV- , gl_CONVOLUTION_BORDER_MODE_EXT- , gl_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE- , gl_INTENSITY32I_EXT- , gl_RASTERIZER_DISCARD_EXT- , gl_MAX_SAMPLES_EXT- , gl_DRAW_BUFFER10_EXT- , gl_INT_IMAGE_2D- , gl_PROVOKING_VERTEX- , gl_UNPACK_RESAMPLE_SGIX- , gl_SAMPLE_POSITION_NV- , gl_MAX_PROGRAM_MATRICES_ARB- , gl_SHADER_STORAGE_BUFFER_BINDING- , gl_TEXTURE0- , gl_DSDT_MAG_VIB_NV- , gl_DOUBLE_MAT4x3- , gl_TEXTURE27_ARB- , gl_ACTIVE_ATOMIC_COUNTER_BUFFERS- , gl_LUMINANCE32I_EXT- , gl_SAMPLER_KHR- , gl_MITER_REVERT_NV- , gl_RGB32UI_EXT- , gl_DUAL_LUMINANCE12_SGIS- , gl_BOOL_VEC2- , gl_COLOR_ATTACHMENT1_NV- , gl_MAX_CONVOLUTION_WIDTH- , gl_DRAW_BUFFER14_NV- , gl_BLEND_DST_RGB_EXT- , gl_LUMINANCE12_ALPHA12_EXT- , gl_DEPTH_BOUNDS_EXT- , gl_CIRCULAR_CCW_ARC_TO_NV- , gl_COMPRESSED_LUMINANCE_ALPHA- , gl_SAMPLE_COVERAGE_VALUE_ARB- , gl_DEPTH_STENCIL_TO_RGBA_NV- , gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING- , gl_NAME_LENGTH- , gl_STENCIL_TEST_TWO_SIDE_EXT- , gl_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES- , gl_VERTEX_ATTRIB_ARRAY_STRIDE_ARB- , gl_OUTPUT_TEXTURE_COORD30_EXT- , gl_MAX_PROGRAM_SUBROUTINE_NUM_NV- , gl_MULTIPLY_NV- , gl_TEXTURE19- , gl_INVERT_OVG_NV- , gl_IMPLEMENTATION_COLOR_READ_FORMAT_OES- , gl_NEAREST_CLIPMAP_LINEAR_SGIX- , gl_VARIABLE_A_NV- , gl_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT- , gl_TEXTURE_2D_MULTISAMPLE- , gl_DEBUG_SOURCE_THIRD_PARTY- , gl_DRAW_BUFFER7_ARB- , gl_MAX_DRAW_BUFFERS- , gl_MAX_SERVER_WAIT_TIMEOUT- , gl_COMPRESSED_SIGNED_RG11_EAC- , gl_VERTEX_PROGRAM_POINT_SIZE- , gl_STENCIL_PASS_DEPTH_PASS- , gl_RENDERBUFFER_STENCIL_SIZE- , gl_TEXTURE_BINDING_2D- , gl_DATA_BUFFER_AMD- , gl_DEBUG_CATEGORY_APPLICATION_AMD- , gl_ASYNC_HISTOGRAM_SGIX- , gl_UNPACK_LSB_FIRST- , gl_UNSIGNED_INT_SAMPLER_CUBE_EXT- , gl_DEPTH_CLAMP_FAR_AMD- , gl_TRANSFORM_FEEDBACK_BUFFER_MODE_NV- , gl_VERTEX_ATTRIB_ARRAY_STRIDE- , gl_UNSIGNED_INT16_VEC4_NV- , gl_OBJECT_BUFFER_SIZE_ATI- , gl_YCRCB_444_SGIX- , gl_LOSE_CONTEXT_ON_RESET_KHR- , gl_TEXTURE_VIEW_NUM_LAYERS- , gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB- , gl_PERFQUERY_COUNTER_DATA_BOOL32_INTEL- , gl_OBJECT_DELETE_STATUS_ARB- , gl_SQUARE_NV- , gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT- , gl_DEBUG_SEVERITY_NOTIFICATION_KHR- , gl_EYE_LINEAR_NV- , gl_REG_16_ATI- , gl_LUMINANCE_ALPHA32UI_EXT- , gl_OUTPUT_TEXTURE_COORD31_EXT- , gl_COMPRESSED_RG_RGTC2- , gl_FLOAT_MAT3- , gl_INDEX_ARRAY_POINTER- , gl_FOG_COORD- , gl_DRAW_BUFFER13- , gl_SCALED_RESOLVE_NICEST_EXT- , gl_QUERY_RESULT_AVAILABLE- , gl_UNPACK_SUBSAMPLE_RATE_SGIX- , gl_3_BYTES_NV- , gl_CLEAR- , gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT- , gl_R8UI- , gl_OFFSET_TEXTURE_2D_MATRIX_NV- , gl_BGRA_INTEGER- , gl_MAX_ARRAY_TEXTURE_LAYERS- , gl_COMPRESSED_RGB_ARB- , gl_FOG_COORDINATE_ARRAY_POINTER_EXT- , gl_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT- , gl_TEXTURE_MAG_FILTER- , gl_DEPTH_COMPONENT32- , gl_VIEW_CLASS_S3TC_DXT1_RGB- , gl_FRONT_RIGHT- , gl_HISTOGRAM_WIDTH- , gl_SAMPLER_CUBE_MAP_ARRAY_ARB- , gl_WEIGHT_ARRAY_STRIDE_OES- , gl_PIXEL_PACK_BUFFER_ARB- , gl_DOT_PRODUCT_PASS_THROUGH_NV- , gl_COMPRESSED_RG11_EAC- , gl_SRGB_DECODE_ARB- , gl_OP_SUB_EXT- , gl_SLIM12S_SGIX- , gl_SECONDARY_COLOR_NV- , gl_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS- , gl_MAP1_VERTEX_3- , gl_RELATIVE_ROUNDED_RECT8_NV- , gl_PALETTE4_R5_G6_B5_OES- , gl_UNSIGNED_INT8_NV- , gl_CURRENT_MATRIX_STACK_DEPTH_ARB- , gl_PIXEL_MODE_BIT- , gl_FONT_UNINTELLIGIBLE_NV- , gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT- , gl_LUMINANCE8UI_EXT- , gl_HILO16_NV- , gl_MAP2_VERTEX_ATTRIB8_4_NV- , gl_ATTACHED_SHADERS- , gl_OBJECT_POINT_SGIS- , gl_TEXTURE_CUBE_MAP_SEAMLESS- , gl_COLOR_ATTACHMENT0- , gl_POST_CONVOLUTION_ALPHA_BIAS_EXT- , gl_SAMPLE_PATTERN_SGIS- , gl_COPY_PIXEL_TOKEN- , gl_BUFFER_SIZE_ARB- , gl_DEPTH_BOUNDS_TEST_EXT- , gl_SAMPLE_POSITION- , gl_FULL_STIPPLE_HINT_PGI- , gl_DEBUG_ASSERT_MESA- , gl_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB- , gl_RENDERBUFFER_WIDTH_OES- , gl_FLOAT_RGBA16_NV- , gl_MODELVIEW5_ARB- , gl_VERSION- , gl_TEXTURE17_ARB- , gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT- , gl_MODELVIEW0_STACK_DEPTH_EXT- , gl_OUTPUT_TEXTURE_COORD1_EXT- , gl_REQUIRED_TEXTURE_IMAGE_UNITS_OES- , gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX- , gl_IMAGE_TRANSFORM_2D_HP- , gl_HSL_SATURATION_NV- , gl_UNSIGNED_SHORT_5_6_5_REV- , gl_LINEAR_CLIPMAP_NEAREST_SGIX- , gl_PREVIOUS_ARB- , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT- , gl_PERFQUERY_COUNTER_DURATION_NORM_INTEL- , gl_SLUMINANCE8_EXT- , gl_RGBA16F_ARB- , gl_PIXEL_UNPACK_BUFFER_ARB- , gl_STENCIL_REF- , gl_TEXTURE_VIEW_MIN_LAYER_EXT- , gl_HISTOGRAM_RED_SIZE- , gl_CLIP_PLANE1- , gl_UNKNOWN_CONTEXT_RESET_ARB- , gl_CMYK_EXT- , gl_TEXTURE_COMPRESSED_BLOCK_SIZE- , gl_RGBA8I- , gl_TEXTURE29_ARB- , gl_STENCIL_BUFFER_BIT2_QCOM- , gl_RED_MIN_CLAMP_INGR- , gl_ATC_RGBA_EXPLICIT_ALPHA_AMD- , gl_ALL_COMPLETED_NV- , gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE- , gl_MATRIX10_ARB- , gl_MAP1_VERTEX_ATTRIB1_4_NV- , gl_MAX_4D_TEXTURE_SIZE_SGIS- , gl_VIEW_CLASS_32_BITS- , gl_TEXTURE7_ARB- , gl_DEBUG_TYPE_PERFORMANCE_ARB- , gl_ACTIVE_VARIABLES- , gl_SOURCE2_RGB_EXT- , gl_PACK_INVERT_MESA- , gl_QUERY_BY_REGION_WAIT_NV- , gl_VERTEX_ID_SWIZZLE_AMD- , gl_SPRITE_TRANSLATION_SGIX- , gl_RENDERBUFFER_HEIGHT- , gl_CUBIC_EXT- , gl_TEXTURE19_ARB- , gl_T2F_N3F_V3F- , gl_ATOMIC_COUNTER_BARRIER_BIT_EXT- , gl_ARRAY_ELEMENT_LOCK_FIRST_EXT- , gl_PROGRAM_RESULT_COMPONENTS_NV- , gl_MAX_RECTANGLE_TEXTURE_SIZE_ARB- , gl_TRIANGLE_MESH_SUN- , gl_TEXTURE_WRAP_Q_SGIS- , gl_ATTRIB_ARRAY_SIZE_NV- , gl_DEBUG_LOGGED_MESSAGES_AMD- , gl_BOOL- , gl_MIN_LOD_WARNING_AMD- , gl_PACK_SKIP_PIXELS- , gl_IMAGE_TEXEL_SIZE- , gl_SRC_ALPHA- , gl_DEPENDENT_HILO_TEXTURE_2D_NV- , gl_FRAMEBUFFER_ATTACHMENT_LAYERED- , gl_PERFQUERY_COUNTER_DATA_UINT32_INTEL- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR- , gl_VERTEX_ARRAY_RANGE_LENGTH_NV- , gl_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS- , gl_POST_CONVOLUTION_GREEN_SCALE- , gl_SEPARATE_ATTRIBS- , gl_UNSIGNED_BYTE_3_3_2- , gl_SCALAR_EXT- , gl_POINT_SIZE_ARRAY_STRIDE_OES- , gl_DOUBLE_MAT3x4- , gl_SRC0_RGB- , gl_VIEW_CLASS_BPTC_UNORM- , gl_SYNC_FLAGS- , gl_TEXTURE_SWIZZLE_RGBA_EXT- , gl_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX- , gl_TEXTURE29- , gl_MEDIUM_INT- , gl_CURRENT_QUERY_ARB- , gl_DT_SCALE_NV- , gl_CLAMP_VERTEX_COLOR_ARB- , gl_DEPTH_BUFFER_BIT4_QCOM- , gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2- , gl_USE_MISSING_GLYPH_NV- , gl_MAX_ASYNC_TEX_IMAGE_SGIX- , gl_TESS_CONTROL_TEXTURE- , gl_DEPTH_FUNC- , gl_RG8I- , gl_MAX_VERTEX_SHADER_VARIANTS_EXT- , gl_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB- , gl_COMPRESSED_SRGB- , gl_PROGRAM_BINDING_ARB- , gl_SAMPLER_2D_ARRAY- , gl_IMAGE_CUBE_MAP_ARRAY_EXT- , gl_BUFFER_ACCESS_FLAGS- , gl_EIGHTH_BIT_ATI- , gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV- , gl_INT8_VEC4_NV- , gl_CLEAR_TEXTURE- , gl_TEXTURE_CUBE_MAP_OES- , gl_FONT_NUM_GLYPH_INDICES_BIT_NV- , gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV- , gl_RENDERBUFFER_DEPTH_SIZE- , gl_DOT_PRODUCT_TEXTURE_1D_NV- , gl_DOUBLE_VEC3_EXT- , gl_VERTEX_ATTRIB_ARRAY_UNIFIED_NV- , gl_TEXTURE_LUMINANCE_TYPE- , gl_CONTEXT_FLAGS- , gl_NORMAL_ARRAY_BUFFER_BINDING- , gl_PROGRAM_FORMAT_ARB- , gl_MOVE_TO_CONTINUES_NV- , gl_LO_BIAS_NV- , gl_CONVOLUTION_WIDTH_EXT- , gl_FRAGMENT_TEXTURE- , gl_NORMAL_BIT_PGI- , gl_COMPRESSED_SIGNED_RG11_EAC_OES- , gl_FIRST_VERTEX_CONVENTION- , gl_ROUNDED_RECT2_NV- , gl_POST_COLOR_MATRIX_RED_BIAS- , gl_UNIFORM_BUFFER- , gl_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT- , gl_NUM_SAMPLE_COUNTS- , gl_FOG_OFFSET_VALUE_SGIX- , gl_DIFFUSE- , gl_CLIP_PLANE5- , gl_OUTPUT_FOG_EXT- , gl_PROGRAM_ATTRIB_COMPONENTS_NV- , gl_RGBA_SIGNED_COMPONENTS_EXT- , gl_COLOR_ARRAY_EXT- , gl_PROXY_TEXTURE_1D_STACK_MESAX- , gl_TEXTURE_COORD_ARRAY_POINTER- , gl_MAX_COLOR_ATTACHMENTS- , gl_TEXTURE28_ARB- , gl_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX- , gl_DEPTH24_STENCIL8_EXT- , gl_MAX- , gl_MODELVIEW12_ARB- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES- , gl_PIXEL_MAP_I_TO_I_SIZE- , gl_NORMAL_ARRAY_LIST_STRIDE_IBM- , gl_SOURCE3_RGB_NV- , gl_ALPHA12_EXT- , gl_STREAM_COPY_ARB- , gl_STENCIL_BACK_PASS_DEPTH_FAIL_ATI- , gl_FRAGMENT_SUBROUTINE_UNIFORM- , gl_IS_ROW_MAJOR- , gl_UNPACK_SKIP_IMAGES- , gl_NUM_GENERAL_COMBINERS_NV- , gl_STENCIL_CLEAR_TAG_VALUE_EXT- , gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS- , gl_DRAW_BUFFER12_ARB- , gl_OFFSET_PROJECTIVE_TEXTURE_2D_NV- , gl_VERTEX_ARRAY_OBJECT_EXT- , gl_PN_TRIANGLES_NORMAL_MODE_ATI- , gl_C4UB_V3F- , gl_REPEAT- , gl_MAX_SAMPLE_MASK_WORDS_NV- , gl_STORAGE_SHARED_APPLE- , gl_TEXTURE9_ARB- , gl_QUERY_BUFFER_BINDING- , gl_UNSIGNED_SHORT_8_8_REV_APPLE- , gl_MAX_FRAGMENT_UNIFORM_VECTORS- , gl_UNDEFINED_APPLE- , gl_TABLE_TOO_LARGE_EXT- , gl_MAX_TESS_PATCH_COMPONENTS_EXT- , gl_XOR_NV- , gl_MAX_SHADER_BUFFER_ADDRESS_NV- , gl_DEBUG_SOURCE_WINDOW_SYSTEM- , gl_UNSIGNALED_APPLE- , gl_SIGNED_LUMINANCE_NV- , gl_FOG_DISTANCE_MODE_NV- , gl_PN_TRIANGLES_POINT_MODE_ATI- , gl_GEOMETRY_SUBROUTINE_UNIFORM- , gl_NEGATIVE_Z_EXT- , gl_PIXEL_MAP_R_TO_R- , gl_OBJECT_LINK_STATUS_ARB- , gl_NUM_ACTIVE_VARIABLES- , gl_BUFFER_UPDATE_BARRIER_BIT_EXT- , gl_IMAGE_CUBE_EXT- , gl_RGB_INTEGER_EXT- , gl_DRAW_BUFFER13_EXT- , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT- , gl_SYNC_GPU_COMMANDS_COMPLETE_APPLE- , gl_RGB_SCALE- , gl_DOUBLE_MAT3x4_EXT- , gl_EXP- , gl_PERFMON_RESULT_AVAILABLE_AMD- , gl_STENCIL_VALUE_MASK- , gl_COLOR_ATTACHMENT12_NV- , gl_VERTEX_STREAM2_ATI- , gl_MAP_COHERENT_BIT- , gl_COMPRESSED_SIGNED_RG_RGTC2- , gl_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER- , gl_FRAGMENT_PROGRAM_ARB- , gl_COLOR_BUFFER_BIT6_QCOM- , gl_FLOAT_32_UNSIGNED_INT_24_8_REV_NV- , gl_WIDE_LINE_HINT_PGI- , gl_FRAGMENT_LIGHT4_SGIX- , gl_RGBA_FLOAT_MODE_ATI- , gl_UNSIGNED_INT_10F_11F_11F_REV- , gl_MODELVIEW1_STACK_DEPTH_EXT- , gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV- , gl_POINT_SIZE_MAX- , gl_ALPHA_TEST_REF_QCOM- , gl_RELATIVE_HORIZONTAL_LINE_TO_NV- , gl_FILTER4_SGIS- , gl_TEXTURE4- , gl_INDEX_MATERIAL_EXT- , gl_FETCH_PER_SAMPLE_ARM- , gl_VARIANT_ARRAY_TYPE_EXT- , gl_ALPHA_MAX_SGIX- , gl_NUM_INSTRUCTIONS_TOTAL_ATI- , gl_TEXTURE_IMAGE_TYPE- , gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS- , gl_DRAW_BUFFER11_NV- , gl_SURFACE_STATE_NV- , gl_BLEND_SRC_RGB- , gl_OBJECT_ACTIVE_UNIFORMS_ARB- , gl_COLORDODGE_NV- , gl_PRIMITIVES_GENERATED_NV- , gl_IMAGE_2D_ARRAY- , gl_LOSE_CONTEXT_ON_RESET_ARB- , gl_RG_INTEGER- , gl_UNSIGNED_INT_SAMPLER_1D_EXT- , gl_REFLECTION_MAP_ARB- , gl_NORMAL_ARRAY_TYPE_EXT- , gl_BLUE_BITS- , gl_ATOMIC_COUNTER_BARRIER_BIT- , gl_INTENSITY8I_EXT- , gl_TEXTURE_BINDING_RECTANGLE_ARB- , gl_SCALE_BY_TWO_NV- , gl_PACK_IMAGE_HEIGHT- , gl_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL- , gl_DEPTH_COMPONENT24_SGIX- , gl_NUM_FRAGMENT_CONSTANTS_ATI- , gl_EDGE_FLAG_ARRAY_STRIDE_EXT- , gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT- , gl_SAMPLE_ALPHA_TO_COVERAGE_ARB- , gl_UNPACK_SKIP_IMAGES_EXT- , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL- , gl_RGBA8_OES- , gl_STENCIL_INDEX8_OES- , gl_MAX_SPARSE_3D_TEXTURE_SIZE_AMD- , gl_COMPUTE_SHADER- , gl_QUERY_WAIT_NV- , gl_TEXTURE_COMPARE_FUNC_ARB- , gl_SCREEN_COORDINATES_REND- , gl_DRAW_BUFFER4_EXT- , gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT- , gl_TOP_LEVEL_ARRAY_SIZE- , gl_STATIC_COPY_ARB- , gl_MAP1_TANGENT_EXT- , gl_MAP2_VERTEX_ATTRIB11_4_NV- , gl_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX- , gl_DRAW_BUFFER9- , gl_COMPRESSED_INTENSITY_ARB- , gl_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB- , gl_MATRIX19_ARB- , gl_MAX_MULTIVIEW_BUFFERS_EXT- , gl_CONJOINT_NV- , gl_INTENSITY_SNORM- , gl_DRAW_BUFFER14- , gl_MAX_PROGRAM_INSTRUCTIONS_ARB- , gl_TEXTURE_BINDING_RECTANGLE- , gl_DEBUG_SOURCE_SHADER_COMPILER_ARB- , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR- , gl_MULTISAMPLE_EXT- , gl_NEAREST_MIPMAP_NEAREST- , gl_COLOR_ATTACHMENT7_EXT- , gl_STENCIL_BUFFER_BIT6_QCOM- , gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT- , gl_REG_29_ATI- , gl_COVERAGE_SAMPLES_NV- , gl_RELEASED_APPLE- , gl_ALPHA_TEST_FUNC- , gl_DRAW_BUFFER2- , gl_VERTEX_PROGRAM_BINDING_NV- , gl_IMAGE_2D_RECT- , gl_COLOR_TABLE_BIAS_SGI- , gl_CLIENT_ACTIVE_TEXTURE_ARB- , gl_CURRENT_MATRIX_INDEX_ARB- , gl_TEXTURE_COORD_ARRAY_STRIDE- , gl_FILTER- , gl_MAX_MODELVIEW_STACK_DEPTH- , gl_VERTEX_ATTRIB_ARRAY5_NV- , gl_UNSIGNED_BYTE- , gl_DETAIL_TEXTURE_2D_SGIS- , gl_POST_CONVOLUTION_BLUE_BIAS- , gl_TYPE- , gl_COMPRESSED_RG- , gl_4PASS_1_SGIS- , gl_SOURCE2_RGB- , gl_TEXTURE_MAX_LOD- , gl_EYE_DISTANCE_TO_LINE_SGIS- , gl_LUMINANCE_ALPHA32F_EXT- , gl_MATRIX_INDEX_ARRAY_STRIDE_ARB- , gl_COLOR_ATTACHMENT4- , gl_INDEX_ARRAY_BUFFER_BINDING- , gl_UNSIGNED_INT_SAMPLER_2D_ARRAY- , gl_PIXEL_TILE_BEST_ALIGNMENT_SGIX- , gl_SPECULAR- , gl_PACK_IMAGE_DEPTH_SGIS- , gl_PLUS_CLAMPED_NV- , gl_INVALID_FRAMEBUFFER_OPERATION- , gl_RG- , gl_COLOR_ATTACHMENT11_NV- , gl_UNPACK_SKIP_PIXELS- , gl_SAMPLE_BUFFERS- , gl_DRAW_BUFFER1_ARB- , gl_COMBINER6_NV- , gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES- , gl_TEXTURE_ENV- , gl_QUAD_MESH_SUN- , gl_REFERENCED_BY_TESS_CONTROL_SHADER_EXT- , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV- , gl_TIMEOUT_EXPIRED- , gl_FLOAT_MAT4x2_NV- , gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES- , gl_COMBINER1_NV- , gl_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB- , gl_RENDERBUFFER_SAMPLES_ANGLE- , gl_VERTEX_ARRAY_SIZE- , gl_TEXTURE2- , gl_RELATIVE_MOVE_TO_NV- , gl_ALPHA_TEST_FUNC_QCOM- , gl_INNOCENT_CONTEXT_RESET_KHR- , gl_MAP1_VERTEX_ATTRIB5_4_NV- , gl_SAMPLER_1D_SHADOW- , gl_TEXTURE_1D_ARRAY_EXT- , gl_STENCIL_INDEX- , gl_SOURCE2_ALPHA_EXT- , gl_NORMAL_MAP_EXT- , gl_FOG_COORDINATE_SOURCE_EXT- , gl_TEXTURE_FILTER_CONTROL- , gl_REPLACE_OLDEST_SUN- , gl_PROGRAM_ADDRESS_REGISTERS_ARB- , gl_2PASS_1_EXT- , gl_LIGHT_ENV_MODE_SGIX- , gl_OP_FRAC_EXT- , gl_PROXY_TEXTURE_RECTANGLE_NV- , gl_RENDERBUFFER- , gl_MAP2_TEXTURE_COORD_4- , gl_TEXTURE_BORDER_COLOR_EXT- , gl_SEPARABLE_2D- , gl_COMPRESSED_SRGB_S3TC_DXT1_EXT- , gl_DRAW_BUFFER0_ATI- , gl_TEXTURE_IMMUTABLE_LEVELS- , gl_E_TIMES_F_NV- , gl_MATRIX24_ARB- , gl_PIXEL_GROUP_COLOR_SGIS- , gl_CURRENT_RASTER_COLOR- , gl_DOUBLE_MAT2x4_EXT- , gl_BUMP_TEX_UNITS_ATI- , gl_FOG_COORDINATE_ARRAY_EXT- , gl_ALWAYS- , gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES- , gl_MAP2_VERTEX_4- , gl_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG- , gl_MODULATE_SIGNED_ADD_ATI- , gl_RG8- , gl_ACTIVE_UNIFORM_BLOCKS- , gl_MAX_SPARSE_TEXTURE_SIZE_AMD- , gl_COLOR_ATTACHMENT11_EXT- , gl_POST_CONVOLUTION_BLUE_BIAS_EXT- , gl_BUFFER_OBJECT_APPLE- , gl_UNIFORM_TYPE- , gl_VARIABLE_E_NV- , gl_MAX_COMPUTE_ATOMIC_COUNTERS- , gl_COMPRESSED_RED_RGTC1- , gl_LUMINANCE_INTEGER_EXT- , gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY- , gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE- , gl_R16F_EXT- , gl_MATRIX4_ARB- , gl_MATRIX_INDEX_ARRAY_SIZE_OES- , gl_POLYGON_STIPPLE- , gl_DUAL_ALPHA12_SGIS- , gl_PIXEL_MAP_I_TO_B- , gl_VERTEX_ATTRIB_ARRAY6_NV- , gl_REG_21_ATI- , gl_PERFMON_RESULT_SIZE_AMD- , gl_ALPHA8_OES- , gl_OBJECT_BUFFER_USAGE_ATI- , gl_PATH_STENCIL_FUNC_NV- , gl_TEXTURE12_ARB- , gl_DEPTH_COMPONENT16_OES- , gl_MODELVIEW20_ARB- , gl_ALPHA12- , gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT- , gl_MODULATE_ADD_ATI- , gl_CLAMP_TO_BORDER_EXT- , gl_CONSTANT_EXT- , gl_OP_LOG_BASE_2_EXT- , gl_SET_AMD- , gl_ONE_MINUS_SRC_ALPHA- , gl_COMPRESSED_LUMINANCE_ALPHA_ARB- , gl_MAX_SERVER_WAIT_TIMEOUT_APPLE- , gl_LINE_TOKEN- , gl_PROXY_POST_CONVOLUTION_COLOR_TABLE- , gl_TEXTURE_BINDING_3D- , gl_INTENSITY16I_EXT- , gl_DEPENDENT_AR_TEXTURE_2D_NV- , gl_CURRENT_RASTER_NORMAL_SGIX- , gl_TEXTURE_INTENSITY_TYPE- , gl_TEXTURE_STORAGE_SPARSE_BIT_AMD- , gl_RENDERBUFFER_INTERNAL_FORMAT_EXT- , gl_VERTEX_ATTRIB_ARRAY1_NV- , gl_TEXTURE_RED_SIZE- , gl_CURRENT_COLOR- , gl_COMPRESSED_RGBA_ASTC_8x5_KHR- , gl_STENCIL_BUFFER_BIT7_QCOM- , gl_CLIP_PLANE0_IMG- , gl_ALPHA_TEST_REF- , gl_POINT_SMOOTH- , gl_WEIGHT_ARRAY_SIZE_OES- , gl_DECODE_EXT- , gl_SPARSE_BUFFER_PAGE_SIZE_ARB- , gl_CLIENT_ATTRIB_STACK_DEPTH- , gl_TEXTURE_BINDING_EXTERNAL_OES- , gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT- , gl_RENDERBUFFER_STENCIL_SIZE_OES- , gl_POST_COLOR_MATRIX_ALPHA_BIAS- , gl_COMPARE_REF_DEPTH_TO_TEXTURE_EXT- , gl_HSL_LUMINOSITY_KHR- , gl_MAX_VERTEX_STREAMS_ATI- , gl_PERFQUERY_COUNTER_THROUGHPUT_INTEL- , gl_COMPRESSED_SIGNED_RED_RGTC1_EXT- , gl_DEPTH_COMPONENT32_OES- , gl_CON_3_ATI- , gl_COMPRESSED_RGBA_S3TC_DXT1_EXT- , gl_MATRIX6_ARB- , gl_MAP2_VERTEX_ATTRIB5_4_NV- , gl_LINE_WIDTH_RANGE- , gl_GLYPH_VERTICAL_BEARING_X_BIT_NV- , gl_FOG_COORDINATE_ARRAY- , gl_VERTEX_ARRAY_RANGE_LENGTH_APPLE- , gl_CLAMP_FRAGMENT_COLOR- , gl_COMPRESSED_RGBA_ASTC_10x5_KHR- , gl_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB- , gl_COLOR_BUFFER_BIT4_QCOM- , gl_TEXTURE13- , gl_MAX_DEBUG_MESSAGE_LENGTH_AMD- , gl_EVAL_VERTEX_ATTRIB0_NV- , gl_ALPHA_MIN_CLAMP_INGR- , gl_SUB_ATI- , gl_SECONDARY_COLOR_ARRAY_LIST_IBM- , gl_RGBA_INTEGER_MODE_EXT- , gl_DEBUG_TYPE_MARKER_KHR- , gl_VERTEX_ATTRIB_ARRAY14_NV- , gl_TEXTURE_MIN_LOD- , gl_INDEX_TEST_REF_EXT- , gl_AUX0- , gl_UNSIGNED_INT_IMAGE_2D_RECT- , gl_2_BYTES- , gl_UNDEFINED_VERTEX- , gl_LINE_STIPPLE_PATTERN- , gl_FRAMEBUFFER_SRGB_CAPABLE_EXT- , gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB- , gl_UNSIGNED_INT_SAMPLER_1D_ARRAY- , gl_LOAD- , gl_SIGNED_ALPHA8_NV- , gl_STENCIL_INDEX8_EXT- , gl_VIEW_CLASS_24_BITS- , gl_SHADER_STORAGE_BARRIER_BIT- , gl_UNSIGNED_INT_SAMPLER_BUFFER_AMD- , gl_IMAGE_BINDING_LAYER- , gl_MULTISAMPLE_FILTER_HINT_NV- , gl_SPARE1_NV- , gl_MAP_READ_BIT_EXT- , gl_COMPRESSED_LUMINANCE- , gl_COMPRESSED_TEXTURE_FORMATS- , gl_UNIFORM_IS_ROW_MAJOR- , gl_OFFSET_TEXTURE_2D_SCALE_NV- , gl_RGBA_DXT5_S3TC- , gl_MAX_PROGRAM_LOCAL_PARAMETERS_ARB- , gl_MAX_UNIFORM_BUFFER_BINDINGS- , gl_RGB16UI_EXT- , gl_TEXTURE_COMPARE_OPERATOR_SGIX- , gl_VIDEO_BUFFER_PITCH_NV- , gl_RELATIVE_RECT_NV- , gl_DRAW_BUFFER8_ATI- , gl_SRC_COLOR- , gl_SHADER_OBJECT_EXT- , gl_GUILTY_CONTEXT_RESET_KHR- , gl_EVAL_VERTEX_ATTRIB5_NV- , gl_PALETTE4_RGBA4_OES- , gl_LUMINANCE12_EXT- , gl_DONT_CARE- , gl_TEXTURE_BUFFER- , gl_COMPRESSED_RGBA_ASTC_4x4x4_OES- , gl_TEXTURE_BINDING_1D_ARRAY- , gl_SEPARATE_SPECULAR_COLOR- , gl_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED- , gl_NORMAL_ARRAY_LIST_IBM- , gl_CURRENT_MATRIX_STACK_DEPTH_NV- , gl_INT_IMAGE_3D- , gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV- , gl_CONTEXT_FLAG_DEBUG_BIT- , gl_WEIGHT_ARRAY_BUFFER_BINDING_ARB- , gl_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX- , gl_VECTOR_EXT- , gl_TEXTURE_BUFFER_DATA_STORE_BINDING- , gl_TEXTURE_LOD_BIAS- , gl_GEOMETRY_SHADER_EXT- , gl_TEXTURE30- , gl_VERTEX_SHADER_BIT- , gl_HISTOGRAM_BLUE_SIZE_EXT- , gl_PATH_COMMAND_COUNT_NV- , gl_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV- , gl_STENCIL_TAG_BITS_EXT- , gl_MAX_PROGRAM_LOOP_DEPTH_NV- , gl_FLOAT_MAT2x3_NV- , gl_CURRENT_RASTER_DISTANCE- , gl_COMPRESSED_SRGB8_ETC2_OES- , gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES- , gl_PIXEL_MAP_I_TO_G_SIZE- , gl_COMBINE- , gl_FOG_HINT- , gl_COMPUTE_SUBROUTINE_UNIFORM- , gl_FRAGMENT_LIGHT3_SGIX- , gl_DEBUG_TYPE_PORTABILITY_ARB- , gl_MIN_PROGRAM_TEXEL_OFFSET_EXT- , gl_TRANSFORM_FEEDBACK_BUFFER_NV- , gl_UNKNOWN_CONTEXT_RESET_EXT- , gl_INT_SAMPLER_CUBE_MAP_ARRAY_ARB- , gl_UNSIGNED_INT_24_8_NV- , gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY- , gl_MANUAL_GENERATE_MIPMAP- , gl_MAP2_VERTEX_ATTRIB6_4_NV- , gl_FRAMEBUFFER_EXT- , gl_INT16_NV- , gl_FULL_RANGE_EXT- , gl_MAP1_VERTEX_ATTRIB2_4_NV- , gl_UNSIGNED_INT_8_8_8_8_EXT- , gl_TESS_CONTROL_SUBROUTINE_UNIFORM- , gl_PREVIOUS_TEXTURE_INPUT_NV- , gl_ATOMIC_COUNTER_BUFFER_DATA_SIZE- , gl_SYNC_STATUS_APPLE- , gl_4PASS_0_EXT- , gl_POLYGON_SMOOTH- , gl_FEEDBACK_BUFFER_SIZE- , gl_COLORBURN_KHR- , gl_DEPTH24_STENCIL8- , gl_LINEAR_CLIPMAP_LINEAR_SGIX- , gl_TEXTURE_MAX_LEVEL- , gl_TEXTURE_WRAP_R_EXT- , gl_OBJECT_SUBTYPE_ARB- , gl_MATRIX18_ARB- , gl_MATRIX_INDEX_ARRAY_POINTER_OES- , gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB- , gl_ALPHA8_SNORM- , gl_TESS_CONTROL_SUBROUTINE- , gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB- , gl_POST_CONVOLUTION_ALPHA_SCALE_EXT- , gl_RGB5_A1_EXT- , gl_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS- , gl_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM- , gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV- , gl_TEXTURE21_ARB- , gl_SAMPLER_2D_RECT_SHADOW- , gl_DEPTH_STENCIL_TEXTURE_MODE- , gl_MAP1_VERTEX_ATTRIB10_4_NV- , gl_PINLIGHT_NV- , gl_TEXTURE_INTERNAL_FORMAT- , gl_VERTEX_ARRAY_OBJECT_AMD- , gl_OBJECT_LINEAR- , gl_TEXTURE_IMMUTABLE_FORMAT_EXT- , gl_COMBINER_COMPONENT_USAGE_NV- , gl_RENDERBUFFER_GREEN_SIZE_EXT- , gl_CONVOLUTION_FILTER_SCALE- , gl_TEXTURE11- , gl_BITMAP- , gl_VIEW_COMPATIBILITY_CLASS- , gl_TEXTURE26- , gl_UNSIGNED_INT8_VEC4_NV- , gl_UNSIGNED_INT_VEC3- , gl_VERTEX_PRECLIP_SGIX- , gl_PACK_LSB_FIRST- , gl_NEGATIVE_Y_EXT- , gl_FRAMEBUFFER_BINDING_ANGLE- , gl_MAP_INVALIDATE_BUFFER_BIT_EXT- , gl_NO_RESET_NOTIFICATION- , gl_MINMAX_EXT- , gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST- , gl_QUARTER_BIT_ATI- , gl_TEXTURE9- , gl_FLOAT_R16_NV- , gl_BLEND_ADVANCED_COHERENT_KHR- , gl_MATRIX_INDEX_ARRAY_POINTER_ARB- , gl_PROXY_TEXTURE_1D_EXT- , gl_PERTURB_EXT- , gl_IUI_N3F_V3F_EXT- , gl_COMBINE_RGB_ARB- , gl_DEBUG_SOURCE_APPLICATION_KHR- , gl_MAX_GEOMETRY_UNIFORM_COMPONENTS- , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE- , gl_PROGRAM_ALU_INSTRUCTIONS_ARB- , gl_VERTEX_STREAM0_ATI- , gl_EDGE_FLAG_ARRAY_POINTER_EXT- , gl_INT_IMAGE_2D_EXT- , gl_READ_FRAMEBUFFER_BINDING_EXT- , gl_TEXTURE_CUBE_MAP_ARB- , gl_LUMINANCE12_ALPHA12- , gl_FUNC_ADD- , gl_TRANSPOSE_COLOR_MATRIX_ARB- , gl_COLOR_ATTACHMENT6- , gl_GEOMETRY_SUBROUTINE- , gl_MAX_ELEMENT_INDEX- , gl_QUERY_OBJECT_AMD- , gl_TEXTURE_CUBE_MAP_EXT- , gl_CONSTANT_ATTENUATION- , gl_LUMINANCE_FLOAT32_APPLE- , gl_R32UI- , gl_UNSIGNED_INT_VEC4_EXT- , gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT- , gl_SAMPLE_MASK_VALUE- , gl_STRICT_DEPTHFUNC_HINT_PGI- , gl_CONVOLUTION_HEIGHT_EXT- , gl_DEPTH_BUFFER_BIT1_QCOM- , gl_CLIP_DISTANCE_NV- , gl_DISPATCH_INDIRECT_BUFFER- , gl_LUMINANCE4- , gl_CLAMP- , gl_CONVOLUTION_FORMAT- , gl_IMAGE_2D_MULTISAMPLE- , gl_TRIANGLE_STRIP- , gl_BGRA_INTEGER_EXT- , gl_FRAGMENTS_INSTRUMENT_MAX_SGIX- , gl_TESS_CONTROL_SHADER_BIT- , gl_POINT_SIZE_ARRAY_BUFFER_BINDING_OES- , gl_BACK_NORMALS_HINT_PGI- , gl_FOG_COORD_ARRAY- , gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR- , gl_OPERAND1_RGB_EXT- , gl_LINEAR_SHARPEN_COLOR_SGIS- , gl_POST_TEXTURE_FILTER_SCALE_SGIX- , gl_FRAMEBUFFER_COMPLETE_OES- , gl_SYNC_OBJECT_APPLE- , gl_INDEX_WRITEMASK- , gl_SIGNED_INTENSITY_NV- , gl_SGX_PROGRAM_BINARY_IMG- , gl_T4F_V4F- , GLsync- , GLsyncob()- , GLhalf- , GLhalfARB- , GLintptrARB- , GLsizeiptrARB- , GLDEBUGPROC- , GLDEBUGPROCARB- , GLDEBUGPROCKHR- , GLDEBUGPROCAMD- , GLbyte- , GLubyte- , GLfloat- , GLclampf- , GLfixed- , GLint64- , GLuint64- , GLint64EXT- , GLuint64EXT- , GLintptr- , GLsizeiptr- , GLhalfNV- , GLvdpauSurfaceNV- , GLenum- , GLboolean- , GLvoid- , GLbitfield- , GLshort- , GLint- , GLclampx- , GLushort- , GLuint- , GLsizei- , GLdouble- , GLclampd- , GLeglImageOESob()- , GLeglImageOES- , GLchar- , GLcharARB- , GLhandleARB- )- where--import Data.Typeable-import Data.IORef-import Data.Int-import Data.Word-import System.IO.Unsafe-import Control.Applicative-import Control.Exception-import Control.Monad-import Control.Monad.IO.Class-import Control.Monad.Trans.Except-import Foreign.C.Types-import Foreign.Ptr--#ifdef mingw32_HOST_OS-#define APIENTRY stdcall-#else-#define APIENTRY-#endif--data FlextInitResult = Failure { why :: String }- | Success- deriving ( Eq, Ord, Show, Read )--#ifdef __GLASGOW_HASKELL__-deriving instance Typeable FlextInitResult-instance Exception FlextInitResult-#endif--proc :: Either a a -> a-proc (Left x) = x-proc (Right x) = x---- | Initializes OpenGL entry points in the current OpenGL context.-flextInit :: (String -> IO (Ptr ()))- -> (String -> IO Bool)- -> IO FlextInitResult-flextInit get_proc_address is_supported = fmap proc $ runExceptT $ do- -- GL_VERSION_1_0-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCullFace"- writeIORef glrefCullFace $ gldynCullFace addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFrontFace"- writeIORef glrefFrontFace $ gldynFrontFace addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glHint"- writeIORef glrefHint $ gldynHint addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glLineWidth"- writeIORef glrefLineWidth $ gldynLineWidth addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPointSize"- writeIORef glrefPointSize $ gldynPointSize addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPolygonMode"- writeIORef glrefPolygonMode $ gldynPolygonMode addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glScissor"- writeIORef glrefScissor $ gldynScissor addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameterf"- writeIORef glrefTexParameterf $ gldynTexParameterf addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameterfv"- writeIORef glrefTexParameterfv $ gldynTexParameterfv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameteri"- writeIORef glrefTexParameteri $ gldynTexParameteri addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameteriv"- writeIORef glrefTexParameteriv $ gldynTexParameteriv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexImage1D"- writeIORef glrefTexImage1D $ gldynTexImage1D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexImage2D"- writeIORef glrefTexImage2D $ gldynTexImage2D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawBuffer"- writeIORef glrefDrawBuffer $ gldynDrawBuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClear"- writeIORef glrefClear $ gldynClear addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearColor"- writeIORef glrefClearColor $ gldynClearColor addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearStencil"- writeIORef glrefClearStencil $ gldynClearStencil addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearDepth"- writeIORef glrefClearDepth $ gldynClearDepth addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilMask"- writeIORef glrefStencilMask $ gldynStencilMask addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glColorMask"- writeIORef glrefColorMask $ gldynColorMask addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDepthMask"- writeIORef glrefDepthMask $ gldynDepthMask addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisable"- writeIORef glrefDisable $ gldynDisable addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnable"- writeIORef glrefEnable $ gldynEnable addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFinish"- writeIORef glrefFinish $ gldynFinish addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFlush"- writeIORef glrefFlush $ gldynFlush addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlendFunc"- writeIORef glrefBlendFunc $ gldynBlendFunc addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glLogicOp"- writeIORef glrefLogicOp $ gldynLogicOp addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilFunc"- writeIORef glrefStencilFunc $ gldynStencilFunc addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilOp"- writeIORef glrefStencilOp $ gldynStencilOp addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDepthFunc"- writeIORef glrefDepthFunc $ gldynDepthFunc addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPixelStoref"- writeIORef glrefPixelStoref $ gldynPixelStoref addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPixelStorei"- writeIORef glrefPixelStorei $ gldynPixelStorei addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glReadBuffer"- writeIORef glrefReadBuffer $ gldynReadBuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glReadPixels"- writeIORef glrefReadPixels $ gldynReadPixels addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBooleanv"- writeIORef glrefGetBooleanv $ gldynGetBooleanv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetDoublev"- writeIORef glrefGetDoublev $ gldynGetDoublev addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetError"- writeIORef glrefGetError $ gldynGetError addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFloatv"- writeIORef glrefGetFloatv $ gldynGetFloatv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetIntegerv"- writeIORef glrefGetIntegerv $ gldynGetIntegerv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetString"- writeIORef glrefGetString $ gldynGetString addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexImage"- writeIORef glrefGetTexImage $ gldynGetTexImage addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexParameterfv"- writeIORef glrefGetTexParameterfv $ gldynGetTexParameterfv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexParameteriv"- writeIORef glrefGetTexParameteriv $ gldynGetTexParameteriv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexLevelParameterfv"- writeIORef glrefGetTexLevelParameterfv $ gldynGetTexLevelParameterfv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexLevelParameteriv"- writeIORef glrefGetTexLevelParameteriv $ gldynGetTexLevelParameteriv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsEnabled"- writeIORef glrefIsEnabled $ gldynIsEnabled addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDepthRange"- writeIORef glrefDepthRange $ gldynDepthRange addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glViewport"- writeIORef glrefViewport $ gldynViewport addr-- -- GL_VERSION_1_1-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawArrays"- writeIORef glrefDrawArrays $ gldynDrawArrays addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawElements"- writeIORef glrefDrawElements $ gldynDrawElements addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPolygonOffset"- writeIORef glrefPolygonOffset $ gldynPolygonOffset addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTexImage1D"- writeIORef glrefCopyTexImage1D $ gldynCopyTexImage1D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTexImage2D"- writeIORef glrefCopyTexImage2D $ gldynCopyTexImage2D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTexSubImage1D"- writeIORef glrefCopyTexSubImage1D $ gldynCopyTexSubImage1D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTexSubImage2D"- writeIORef glrefCopyTexSubImage2D $ gldynCopyTexSubImage2D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexSubImage1D"- writeIORef glrefTexSubImage1D $ gldynTexSubImage1D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexSubImage2D"- writeIORef glrefTexSubImage2D $ gldynTexSubImage2D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindTexture"- writeIORef glrefBindTexture $ gldynBindTexture addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteTextures"- writeIORef glrefDeleteTextures $ gldynDeleteTextures addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenTextures"- writeIORef glrefGenTextures $ gldynGenTextures addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsTexture"- writeIORef glrefIsTexture $ gldynIsTexture addr-- -- GL_VERSION_1_2-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawRangeElements"- writeIORef glrefDrawRangeElements $ gldynDrawRangeElements addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexImage3D"- writeIORef glrefTexImage3D $ gldynTexImage3D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexSubImage3D"- writeIORef glrefTexSubImage3D $ gldynTexSubImage3D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTexSubImage3D"- writeIORef glrefCopyTexSubImage3D $ gldynCopyTexSubImage3D addr-- -- GL_VERSION_1_3-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glActiveTexture"- writeIORef glrefActiveTexture $ gldynActiveTexture addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSampleCoverage"- writeIORef glrefSampleCoverage $ gldynSampleCoverage addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexImage3D"- writeIORef glrefCompressedTexImage3D $ gldynCompressedTexImage3D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexImage2D"- writeIORef glrefCompressedTexImage2D $ gldynCompressedTexImage2D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexImage1D"- writeIORef glrefCompressedTexImage1D $ gldynCompressedTexImage1D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexSubImage3D"- writeIORef glrefCompressedTexSubImage3D $ gldynCompressedTexSubImage3D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexSubImage2D"- writeIORef glrefCompressedTexSubImage2D $ gldynCompressedTexSubImage2D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexSubImage1D"- writeIORef glrefCompressedTexSubImage1D $ gldynCompressedTexSubImage1D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetCompressedTexImage"- writeIORef glrefGetCompressedTexImage $ gldynGetCompressedTexImage addr-- -- GL_VERSION_1_4-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlendFuncSeparate"- writeIORef glrefBlendFuncSeparate $ gldynBlendFuncSeparate addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiDrawArrays"- writeIORef glrefMultiDrawArrays $ gldynMultiDrawArrays addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiDrawElements"- writeIORef glrefMultiDrawElements $ gldynMultiDrawElements addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPointParameterf"- writeIORef glrefPointParameterf $ gldynPointParameterf addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPointParameterfv"- writeIORef glrefPointParameterfv $ gldynPointParameterfv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPointParameteri"- writeIORef glrefPointParameteri $ gldynPointParameteri addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPointParameteriv"- writeIORef glrefPointParameteriv $ gldynPointParameteriv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlendColor"- writeIORef glrefBlendColor $ gldynBlendColor addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlendEquation"- writeIORef glrefBlendEquation $ gldynBlendEquation addr-- -- GL_VERSION_1_5-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenQueries"- writeIORef glrefGenQueries $ gldynGenQueries addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteQueries"- writeIORef glrefDeleteQueries $ gldynDeleteQueries addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsQuery"- writeIORef glrefIsQuery $ gldynIsQuery addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBeginQuery"- writeIORef glrefBeginQuery $ gldynBeginQuery addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEndQuery"- writeIORef glrefEndQuery $ gldynEndQuery addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetQueryiv"- writeIORef glrefGetQueryiv $ gldynGetQueryiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetQueryObjectiv"- writeIORef glrefGetQueryObjectiv $ gldynGetQueryObjectiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetQueryObjectuiv"- writeIORef glrefGetQueryObjectuiv $ gldynGetQueryObjectuiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindBuffer"- writeIORef glrefBindBuffer $ gldynBindBuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteBuffers"- writeIORef glrefDeleteBuffers $ gldynDeleteBuffers addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenBuffers"- writeIORef glrefGenBuffers $ gldynGenBuffers addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsBuffer"- writeIORef glrefIsBuffer $ gldynIsBuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBufferData"- writeIORef glrefBufferData $ gldynBufferData addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBufferSubData"- writeIORef glrefBufferSubData $ gldynBufferSubData addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBufferSubData"- writeIORef glrefGetBufferSubData $ gldynGetBufferSubData addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMapBuffer"- writeIORef glrefMapBuffer $ gldynMapBuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUnmapBuffer"- writeIORef glrefUnmapBuffer $ gldynUnmapBuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBufferParameteriv"- writeIORef glrefGetBufferParameteriv $ gldynGetBufferParameteriv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBufferPointerv"- writeIORef glrefGetBufferPointerv $ gldynGetBufferPointerv addr-- -- GL_VERSION_2_0-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlendEquationSeparate"- writeIORef glrefBlendEquationSeparate $ gldynBlendEquationSeparate addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawBuffers"- writeIORef glrefDrawBuffers $ gldynDrawBuffers addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilOpSeparate"- writeIORef glrefStencilOpSeparate $ gldynStencilOpSeparate addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilFuncSeparate"- writeIORef glrefStencilFuncSeparate $ gldynStencilFuncSeparate addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilMaskSeparate"- writeIORef glrefStencilMaskSeparate $ gldynStencilMaskSeparate addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glAttachShader"- writeIORef glrefAttachShader $ gldynAttachShader addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindAttribLocation"- writeIORef glrefBindAttribLocation $ gldynBindAttribLocation addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompileShader"- writeIORef glrefCompileShader $ gldynCompileShader addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCreateProgram"- writeIORef glrefCreateProgram $ gldynCreateProgram addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCreateShader"- writeIORef glrefCreateShader $ gldynCreateShader addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteProgram"- writeIORef glrefDeleteProgram $ gldynDeleteProgram addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteShader"- writeIORef glrefDeleteShader $ gldynDeleteShader addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDetachShader"- writeIORef glrefDetachShader $ gldynDetachShader addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableVertexAttribArray"- writeIORef glrefDisableVertexAttribArray $ gldynDisableVertexAttribArray addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableVertexAttribArray"- writeIORef glrefEnableVertexAttribArray $ gldynEnableVertexAttribArray addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveAttrib"- writeIORef glrefGetActiveAttrib $ gldynGetActiveAttrib addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveUniform"- writeIORef glrefGetActiveUniform $ gldynGetActiveUniform addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetAttachedShaders"- writeIORef glrefGetAttachedShaders $ gldynGetAttachedShaders addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetAttribLocation"- writeIORef glrefGetAttribLocation $ gldynGetAttribLocation addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetProgramiv"- writeIORef glrefGetProgramiv $ gldynGetProgramiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetProgramInfoLog"- writeIORef glrefGetProgramInfoLog $ gldynGetProgramInfoLog addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetShaderiv"- writeIORef glrefGetShaderiv $ gldynGetShaderiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetShaderInfoLog"- writeIORef glrefGetShaderInfoLog $ gldynGetShaderInfoLog addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetShaderSource"- writeIORef glrefGetShaderSource $ gldynGetShaderSource addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformLocation"- writeIORef glrefGetUniformLocation $ gldynGetUniformLocation addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformfv"- writeIORef glrefGetUniformfv $ gldynGetUniformfv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformiv"- writeIORef glrefGetUniformiv $ gldynGetUniformiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribdv"- writeIORef glrefGetVertexAttribdv $ gldynGetVertexAttribdv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribfv"- writeIORef glrefGetVertexAttribfv $ gldynGetVertexAttribfv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribiv"- writeIORef glrefGetVertexAttribiv $ gldynGetVertexAttribiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribPointerv"- writeIORef glrefGetVertexAttribPointerv $ gldynGetVertexAttribPointerv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsProgram"- writeIORef glrefIsProgram $ gldynIsProgram addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsShader"- writeIORef glrefIsShader $ gldynIsShader addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glLinkProgram"- writeIORef glrefLinkProgram $ gldynLinkProgram addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glShaderSource"- writeIORef glrefShaderSource $ gldynShaderSource addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUseProgram"- writeIORef glrefUseProgram $ gldynUseProgram addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1f"- writeIORef glrefUniform1f $ gldynUniform1f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2f"- writeIORef glrefUniform2f $ gldynUniform2f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3f"- writeIORef glrefUniform3f $ gldynUniform3f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4f"- writeIORef glrefUniform4f $ gldynUniform4f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1i"- writeIORef glrefUniform1i $ gldynUniform1i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2i"- writeIORef glrefUniform2i $ gldynUniform2i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3i"- writeIORef glrefUniform3i $ gldynUniform3i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4i"- writeIORef glrefUniform4i $ gldynUniform4i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1fv"- writeIORef glrefUniform1fv $ gldynUniform1fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2fv"- writeIORef glrefUniform2fv $ gldynUniform2fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3fv"- writeIORef glrefUniform3fv $ gldynUniform3fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4fv"- writeIORef glrefUniform4fv $ gldynUniform4fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1iv"- writeIORef glrefUniform1iv $ gldynUniform1iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2iv"- writeIORef glrefUniform2iv $ gldynUniform2iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3iv"- writeIORef glrefUniform3iv $ gldynUniform3iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4iv"- writeIORef glrefUniform4iv $ gldynUniform4iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix2fv"- writeIORef glrefUniformMatrix2fv $ gldynUniformMatrix2fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix3fv"- writeIORef glrefUniformMatrix3fv $ gldynUniformMatrix3fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix4fv"- writeIORef glrefUniformMatrix4fv $ gldynUniformMatrix4fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glValidateProgram"- writeIORef glrefValidateProgram $ gldynValidateProgram addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1d"- writeIORef glrefVertexAttrib1d $ gldynVertexAttrib1d addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1dv"- writeIORef glrefVertexAttrib1dv $ gldynVertexAttrib1dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1f"- writeIORef glrefVertexAttrib1f $ gldynVertexAttrib1f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1fv"- writeIORef glrefVertexAttrib1fv $ gldynVertexAttrib1fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1s"- writeIORef glrefVertexAttrib1s $ gldynVertexAttrib1s addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1sv"- writeIORef glrefVertexAttrib1sv $ gldynVertexAttrib1sv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2d"- writeIORef glrefVertexAttrib2d $ gldynVertexAttrib2d addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2dv"- writeIORef glrefVertexAttrib2dv $ gldynVertexAttrib2dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2f"- writeIORef glrefVertexAttrib2f $ gldynVertexAttrib2f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2fv"- writeIORef glrefVertexAttrib2fv $ gldynVertexAttrib2fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2s"- writeIORef glrefVertexAttrib2s $ gldynVertexAttrib2s addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2sv"- writeIORef glrefVertexAttrib2sv $ gldynVertexAttrib2sv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3d"- writeIORef glrefVertexAttrib3d $ gldynVertexAttrib3d addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3dv"- writeIORef glrefVertexAttrib3dv $ gldynVertexAttrib3dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3f"- writeIORef glrefVertexAttrib3f $ gldynVertexAttrib3f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3fv"- writeIORef glrefVertexAttrib3fv $ gldynVertexAttrib3fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3s"- writeIORef glrefVertexAttrib3s $ gldynVertexAttrib3s addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3sv"- writeIORef glrefVertexAttrib3sv $ gldynVertexAttrib3sv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nbv"- writeIORef glrefVertexAttrib4Nbv $ gldynVertexAttrib4Nbv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Niv"- writeIORef glrefVertexAttrib4Niv $ gldynVertexAttrib4Niv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nsv"- writeIORef glrefVertexAttrib4Nsv $ gldynVertexAttrib4Nsv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nub"- writeIORef glrefVertexAttrib4Nub $ gldynVertexAttrib4Nub addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nubv"- writeIORef glrefVertexAttrib4Nubv $ gldynVertexAttrib4Nubv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nuiv"- writeIORef glrefVertexAttrib4Nuiv $ gldynVertexAttrib4Nuiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nusv"- writeIORef glrefVertexAttrib4Nusv $ gldynVertexAttrib4Nusv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4bv"- writeIORef glrefVertexAttrib4bv $ gldynVertexAttrib4bv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4d"- writeIORef glrefVertexAttrib4d $ gldynVertexAttrib4d addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4dv"- writeIORef glrefVertexAttrib4dv $ gldynVertexAttrib4dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4f"- writeIORef glrefVertexAttrib4f $ gldynVertexAttrib4f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4fv"- writeIORef glrefVertexAttrib4fv $ gldynVertexAttrib4fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4iv"- writeIORef glrefVertexAttrib4iv $ gldynVertexAttrib4iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4s"- writeIORef glrefVertexAttrib4s $ gldynVertexAttrib4s addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4sv"- writeIORef glrefVertexAttrib4sv $ gldynVertexAttrib4sv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4ubv"- writeIORef glrefVertexAttrib4ubv $ gldynVertexAttrib4ubv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4uiv"- writeIORef glrefVertexAttrib4uiv $ gldynVertexAttrib4uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4usv"- writeIORef glrefVertexAttrib4usv $ gldynVertexAttrib4usv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribPointer"- writeIORef glrefVertexAttribPointer $ gldynVertexAttribPointer addr-- -- GL_VERSION_2_1-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix2x3fv"- writeIORef glrefUniformMatrix2x3fv $ gldynUniformMatrix2x3fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix3x2fv"- writeIORef glrefUniformMatrix3x2fv $ gldynUniformMatrix3x2fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix2x4fv"- writeIORef glrefUniformMatrix2x4fv $ gldynUniformMatrix2x4fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix4x2fv"- writeIORef glrefUniformMatrix4x2fv $ gldynUniformMatrix4x2fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix3x4fv"- writeIORef glrefUniformMatrix3x4fv $ gldynUniformMatrix3x4fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix4x3fv"- writeIORef glrefUniformMatrix4x3fv $ gldynUniformMatrix4x3fv addr-- -- GL_VERSION_3_0-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glColorMaski"- writeIORef glrefColorMaski $ gldynColorMaski addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBooleani_v"- writeIORef glrefGetBooleani_v $ gldynGetBooleani_v addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetIntegeri_v"- writeIORef glrefGetIntegeri_v $ gldynGetIntegeri_v addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnablei"- writeIORef glrefEnablei $ gldynEnablei addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisablei"- writeIORef glrefDisablei $ gldynDisablei addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsEnabledi"- writeIORef glrefIsEnabledi $ gldynIsEnabledi addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBeginTransformFeedback"- writeIORef glrefBeginTransformFeedback $ gldynBeginTransformFeedback addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEndTransformFeedback"- writeIORef glrefEndTransformFeedback $ gldynEndTransformFeedback addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindBufferRange"- writeIORef glrefBindBufferRange $ gldynBindBufferRange addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindBufferBase"- writeIORef glrefBindBufferBase $ gldynBindBufferBase addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTransformFeedbackVaryings"- writeIORef glrefTransformFeedbackVaryings $ gldynTransformFeedbackVaryings addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTransformFeedbackVarying"- writeIORef glrefGetTransformFeedbackVarying $ gldynGetTransformFeedbackVarying addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClampColor"- writeIORef glrefClampColor $ gldynClampColor addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBeginConditionalRender"- writeIORef glrefBeginConditionalRender $ gldynBeginConditionalRender addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEndConditionalRender"- writeIORef glrefEndConditionalRender $ gldynEndConditionalRender addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribIPointer"- writeIORef glrefVertexAttribIPointer $ gldynVertexAttribIPointer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribIiv"- writeIORef glrefGetVertexAttribIiv $ gldynGetVertexAttribIiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribIuiv"- writeIORef glrefGetVertexAttribIuiv $ gldynGetVertexAttribIuiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI1i"- writeIORef glrefVertexAttribI1i $ gldynVertexAttribI1i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI2i"- writeIORef glrefVertexAttribI2i $ gldynVertexAttribI2i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI3i"- writeIORef glrefVertexAttribI3i $ gldynVertexAttribI3i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4i"- writeIORef glrefVertexAttribI4i $ gldynVertexAttribI4i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI1ui"- writeIORef glrefVertexAttribI1ui $ gldynVertexAttribI1ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI2ui"- writeIORef glrefVertexAttribI2ui $ gldynVertexAttribI2ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI3ui"- writeIORef glrefVertexAttribI3ui $ gldynVertexAttribI3ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4ui"- writeIORef glrefVertexAttribI4ui $ gldynVertexAttribI4ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI1iv"- writeIORef glrefVertexAttribI1iv $ gldynVertexAttribI1iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI2iv"- writeIORef glrefVertexAttribI2iv $ gldynVertexAttribI2iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI3iv"- writeIORef glrefVertexAttribI3iv $ gldynVertexAttribI3iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4iv"- writeIORef glrefVertexAttribI4iv $ gldynVertexAttribI4iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI1uiv"- writeIORef glrefVertexAttribI1uiv $ gldynVertexAttribI1uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI2uiv"- writeIORef glrefVertexAttribI2uiv $ gldynVertexAttribI2uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI3uiv"- writeIORef glrefVertexAttribI3uiv $ gldynVertexAttribI3uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4uiv"- writeIORef glrefVertexAttribI4uiv $ gldynVertexAttribI4uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4bv"- writeIORef glrefVertexAttribI4bv $ gldynVertexAttribI4bv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4sv"- writeIORef glrefVertexAttribI4sv $ gldynVertexAttribI4sv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4ubv"- writeIORef glrefVertexAttribI4ubv $ gldynVertexAttribI4ubv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4usv"- writeIORef glrefVertexAttribI4usv $ gldynVertexAttribI4usv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformuiv"- writeIORef glrefGetUniformuiv $ gldynGetUniformuiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindFragDataLocation"- writeIORef glrefBindFragDataLocation $ gldynBindFragDataLocation addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFragDataLocation"- writeIORef glrefGetFragDataLocation $ gldynGetFragDataLocation addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1ui"- writeIORef glrefUniform1ui $ gldynUniform1ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2ui"- writeIORef glrefUniform2ui $ gldynUniform2ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3ui"- writeIORef glrefUniform3ui $ gldynUniform3ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4ui"- writeIORef glrefUniform4ui $ gldynUniform4ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1uiv"- writeIORef glrefUniform1uiv $ gldynUniform1uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2uiv"- writeIORef glrefUniform2uiv $ gldynUniform2uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3uiv"- writeIORef glrefUniform3uiv $ gldynUniform3uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4uiv"- writeIORef glrefUniform4uiv $ gldynUniform4uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameterIiv"- writeIORef glrefTexParameterIiv $ gldynTexParameterIiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameterIuiv"- writeIORef glrefTexParameterIuiv $ gldynTexParameterIuiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexParameterIiv"- writeIORef glrefGetTexParameterIiv $ gldynGetTexParameterIiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexParameterIuiv"- writeIORef glrefGetTexParameterIuiv $ gldynGetTexParameterIuiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearBufferiv"- writeIORef glrefClearBufferiv $ gldynClearBufferiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearBufferuiv"- writeIORef glrefClearBufferuiv $ gldynClearBufferuiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearBufferfv"- writeIORef glrefClearBufferfv $ gldynClearBufferfv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearBufferfi"- writeIORef glrefClearBufferfi $ gldynClearBufferfi addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetStringi"- writeIORef glrefGetStringi $ gldynGetStringi addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsRenderbuffer"- writeIORef glrefIsRenderbuffer $ gldynIsRenderbuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindRenderbuffer"- writeIORef glrefBindRenderbuffer $ gldynBindRenderbuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteRenderbuffers"- writeIORef glrefDeleteRenderbuffers $ gldynDeleteRenderbuffers addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenRenderbuffers"- writeIORef glrefGenRenderbuffers $ gldynGenRenderbuffers addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glRenderbufferStorage"- writeIORef glrefRenderbufferStorage $ gldynRenderbufferStorage addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetRenderbufferParameteriv"- writeIORef glrefGetRenderbufferParameteriv $ gldynGetRenderbufferParameteriv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsFramebuffer"- writeIORef glrefIsFramebuffer $ gldynIsFramebuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindFramebuffer"- writeIORef glrefBindFramebuffer $ gldynBindFramebuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteFramebuffers"- writeIORef glrefDeleteFramebuffers $ gldynDeleteFramebuffers addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenFramebuffers"- writeIORef glrefGenFramebuffers $ gldynGenFramebuffers addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCheckFramebufferStatus"- writeIORef glrefCheckFramebufferStatus $ gldynCheckFramebufferStatus addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferTexture1D"- writeIORef glrefFramebufferTexture1D $ gldynFramebufferTexture1D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferTexture2D"- writeIORef glrefFramebufferTexture2D $ gldynFramebufferTexture2D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferTexture3D"- writeIORef glrefFramebufferTexture3D $ gldynFramebufferTexture3D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferRenderbuffer"- writeIORef glrefFramebufferRenderbuffer $ gldynFramebufferRenderbuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFramebufferAttachmentParameteriv"- writeIORef glrefGetFramebufferAttachmentParameteriv $ gldynGetFramebufferAttachmentParameteriv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenerateMipmap"- writeIORef glrefGenerateMipmap $ gldynGenerateMipmap addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlitFramebuffer"- writeIORef glrefBlitFramebuffer $ gldynBlitFramebuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glRenderbufferStorageMultisample"- writeIORef glrefRenderbufferStorageMultisample $ gldynRenderbufferStorageMultisample addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferTextureLayer"- writeIORef glrefFramebufferTextureLayer $ gldynFramebufferTextureLayer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMapBufferRange"- writeIORef glrefMapBufferRange $ gldynMapBufferRange addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFlushMappedBufferRange"- writeIORef glrefFlushMappedBufferRange $ gldynFlushMappedBufferRange addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindVertexArray"- writeIORef glrefBindVertexArray $ gldynBindVertexArray addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteVertexArrays"- writeIORef glrefDeleteVertexArrays $ gldynDeleteVertexArrays addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenVertexArrays"- writeIORef glrefGenVertexArrays $ gldynGenVertexArrays addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsVertexArray"- writeIORef glrefIsVertexArray $ gldynIsVertexArray addr-- -- GL_VERSION_3_1-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawArraysInstanced"- writeIORef glrefDrawArraysInstanced $ gldynDrawArraysInstanced addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawElementsInstanced"- writeIORef glrefDrawElementsInstanced $ gldynDrawElementsInstanced addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexBuffer"- writeIORef glrefTexBuffer $ gldynTexBuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPrimitiveRestartIndex"- writeIORef glrefPrimitiveRestartIndex $ gldynPrimitiveRestartIndex addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyBufferSubData"- writeIORef glrefCopyBufferSubData $ gldynCopyBufferSubData addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformIndices"- writeIORef glrefGetUniformIndices $ gldynGetUniformIndices addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveUniformsiv"- writeIORef glrefGetActiveUniformsiv $ gldynGetActiveUniformsiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveUniformName"- writeIORef glrefGetActiveUniformName $ gldynGetActiveUniformName addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformBlockIndex"- writeIORef glrefGetUniformBlockIndex $ gldynGetUniformBlockIndex addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveUniformBlockiv"- writeIORef glrefGetActiveUniformBlockiv $ gldynGetActiveUniformBlockiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveUniformBlockName"- writeIORef glrefGetActiveUniformBlockName $ gldynGetActiveUniformBlockName addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformBlockBinding"- writeIORef glrefUniformBlockBinding $ gldynUniformBlockBinding addr-- -- GL_VERSION_3_2-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawElementsBaseVertex"- writeIORef glrefDrawElementsBaseVertex $ gldynDrawElementsBaseVertex addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawRangeElementsBaseVertex"- writeIORef glrefDrawRangeElementsBaseVertex $ gldynDrawRangeElementsBaseVertex addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawElementsInstancedBaseVertex"- writeIORef glrefDrawElementsInstancedBaseVertex $ gldynDrawElementsInstancedBaseVertex addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiDrawElementsBaseVertex"- writeIORef glrefMultiDrawElementsBaseVertex $ gldynMultiDrawElementsBaseVertex addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProvokingVertex"- writeIORef glrefProvokingVertex $ gldynProvokingVertex addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFenceSync"- writeIORef glrefFenceSync $ gldynFenceSync addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsSync"- writeIORef glrefIsSync $ gldynIsSync addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteSync"- writeIORef glrefDeleteSync $ gldynDeleteSync addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClientWaitSync"- writeIORef glrefClientWaitSync $ gldynClientWaitSync addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glWaitSync"- writeIORef glrefWaitSync $ gldynWaitSync addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetInteger64v"- writeIORef glrefGetInteger64v $ gldynGetInteger64v addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetSynciv"- writeIORef glrefGetSynciv $ gldynGetSynciv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetInteger64i_v"- writeIORef glrefGetInteger64i_v $ gldynGetInteger64i_v addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBufferParameteri64v"- writeIORef glrefGetBufferParameteri64v $ gldynGetBufferParameteri64v addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferTexture"- writeIORef glrefFramebufferTexture $ gldynFramebufferTexture addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexImage2DMultisample"- writeIORef glrefTexImage2DMultisample $ gldynTexImage2DMultisample addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexImage3DMultisample"- writeIORef glrefTexImage3DMultisample $ gldynTexImage3DMultisample addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultisamplefv"- writeIORef glrefGetMultisamplefv $ gldynGetMultisamplefv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSampleMaski"- writeIORef glrefSampleMaski $ gldynSampleMaski addr-- -- GL_VERSION_3_3-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindFragDataLocationIndexed"- writeIORef glrefBindFragDataLocationIndexed $ gldynBindFragDataLocationIndexed addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFragDataIndex"- writeIORef glrefGetFragDataIndex $ gldynGetFragDataIndex addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenSamplers"- writeIORef glrefGenSamplers $ gldynGenSamplers addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteSamplers"- writeIORef glrefDeleteSamplers $ gldynDeleteSamplers addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsSampler"- writeIORef glrefIsSampler $ gldynIsSampler addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindSampler"- writeIORef glrefBindSampler $ gldynBindSampler addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameteri"- writeIORef glrefSamplerParameteri $ gldynSamplerParameteri addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameteriv"- writeIORef glrefSamplerParameteriv $ gldynSamplerParameteriv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameterf"- writeIORef glrefSamplerParameterf $ gldynSamplerParameterf addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameterfv"- writeIORef glrefSamplerParameterfv $ gldynSamplerParameterfv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameterIiv"- writeIORef glrefSamplerParameterIiv $ gldynSamplerParameterIiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameterIuiv"- writeIORef glrefSamplerParameterIuiv $ gldynSamplerParameterIuiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetSamplerParameteriv"- writeIORef glrefGetSamplerParameteriv $ gldynGetSamplerParameteriv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetSamplerParameterIiv"- writeIORef glrefGetSamplerParameterIiv $ gldynGetSamplerParameterIiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetSamplerParameterfv"- writeIORef glrefGetSamplerParameterfv $ gldynGetSamplerParameterfv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetSamplerParameterIuiv"- writeIORef glrefGetSamplerParameterIuiv $ gldynGetSamplerParameterIuiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glQueryCounter"- writeIORef glrefQueryCounter $ gldynQueryCounter addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetQueryObjecti64v"- writeIORef glrefGetQueryObjecti64v $ gldynGetQueryObjecti64v addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetQueryObjectui64v"- writeIORef glrefGetQueryObjectui64v $ gldynGetQueryObjectui64v addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribDivisor"- writeIORef glrefVertexAttribDivisor $ gldynVertexAttribDivisor addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP1ui"- writeIORef glrefVertexAttribP1ui $ gldynVertexAttribP1ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP1uiv"- writeIORef glrefVertexAttribP1uiv $ gldynVertexAttribP1uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP2ui"- writeIORef glrefVertexAttribP2ui $ gldynVertexAttribP2ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP2uiv"- writeIORef glrefVertexAttribP2uiv $ gldynVertexAttribP2uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP3ui"- writeIORef glrefVertexAttribP3ui $ gldynVertexAttribP3ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP3uiv"- writeIORef glrefVertexAttribP3uiv $ gldynVertexAttribP3uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP4ui"- writeIORef glrefVertexAttribP4ui $ gldynVertexAttribP4ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP4uiv"- writeIORef glrefVertexAttribP4uiv $ gldynVertexAttribP4uiv addr-- -- GL_ARB_texture_storage-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexStorage1D"- writeIORef glrefTexStorage1D $ gldynTexStorage1D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexStorage2D"- writeIORef glrefTexStorage2D $ gldynTexStorage2D addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexStorage3D"- writeIORef glrefTexStorage3D $ gldynTexStorage3D addr-- -- GL_KHR_debug-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageControl"- writeIORef glrefDebugMessageControl $ gldynDebugMessageControl addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageInsert"- writeIORef glrefDebugMessageInsert $ gldynDebugMessageInsert addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageCallback"- writeIORef glrefDebugMessageCallback $ gldynDebugMessageCallback addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetDebugMessageLog"- writeIORef glrefGetDebugMessageLog $ gldynGetDebugMessageLog addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPushDebugGroup"- writeIORef glrefPushDebugGroup $ gldynPushDebugGroup addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPopDebugGroup"- writeIORef glrefPopDebugGroup $ gldynPopDebugGroup addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glObjectLabel"- writeIORef glrefObjectLabel $ gldynObjectLabel addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetObjectLabel"- writeIORef glrefGetObjectLabel $ gldynGetObjectLabel addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glObjectPtrLabel"- writeIORef glrefObjectPtrLabel $ gldynObjectPtrLabel addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetObjectPtrLabel"- writeIORef glrefGetObjectPtrLabel $ gldynGetObjectPtrLabel addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetPointerv"- writeIORef glrefGetPointerv $ gldynGetPointerv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageControlKHR"- writeIORef glrefDebugMessageControlKHR $ gldynDebugMessageControlKHR addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageInsertKHR"- writeIORef glrefDebugMessageInsertKHR $ gldynDebugMessageInsertKHR addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageCallbackKHR"- writeIORef glrefDebugMessageCallbackKHR $ gldynDebugMessageCallbackKHR addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetDebugMessageLogKHR"- writeIORef glrefGetDebugMessageLogKHR $ gldynGetDebugMessageLogKHR addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPushDebugGroupKHR"- writeIORef glrefPushDebugGroupKHR $ gldynPushDebugGroupKHR addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPopDebugGroupKHR"- writeIORef glrefPopDebugGroupKHR $ gldynPopDebugGroupKHR addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glObjectLabelKHR"- writeIORef glrefObjectLabelKHR $ gldynObjectLabelKHR addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetObjectLabelKHR"- writeIORef glrefGetObjectLabelKHR $ gldynGetObjectLabelKHR addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glObjectPtrLabelKHR"- writeIORef glrefObjectPtrLabelKHR $ gldynObjectPtrLabelKHR addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetObjectPtrLabelKHR"- writeIORef glrefGetObjectPtrLabelKHR $ gldynGetObjectPtrLabelKHR addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetPointervKHR"- writeIORef glrefGetPointervKHR $ gldynGetPointervKHR addr-- -- GL_EXT_direct_state_access-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixLoadfEXT"- writeIORef glrefMatrixLoadfEXT $ gldynMatrixLoadfEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixLoaddEXT"- writeIORef glrefMatrixLoaddEXT $ gldynMatrixLoaddEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixMultfEXT"- writeIORef glrefMatrixMultfEXT $ gldynMatrixMultfEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixMultdEXT"- writeIORef glrefMatrixMultdEXT $ gldynMatrixMultdEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixLoadIdentityEXT"- writeIORef glrefMatrixLoadIdentityEXT $ gldynMatrixLoadIdentityEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixRotatefEXT"- writeIORef glrefMatrixRotatefEXT $ gldynMatrixRotatefEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixRotatedEXT"- writeIORef glrefMatrixRotatedEXT $ gldynMatrixRotatedEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixScalefEXT"- writeIORef glrefMatrixScalefEXT $ gldynMatrixScalefEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixScaledEXT"- writeIORef glrefMatrixScaledEXT $ gldynMatrixScaledEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixTranslatefEXT"- writeIORef glrefMatrixTranslatefEXT $ gldynMatrixTranslatefEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixTranslatedEXT"- writeIORef glrefMatrixTranslatedEXT $ gldynMatrixTranslatedEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixFrustumEXT"- writeIORef glrefMatrixFrustumEXT $ gldynMatrixFrustumEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixOrthoEXT"- writeIORef glrefMatrixOrthoEXT $ gldynMatrixOrthoEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixPopEXT"- writeIORef glrefMatrixPopEXT $ gldynMatrixPopEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixPushEXT"- writeIORef glrefMatrixPushEXT $ gldynMatrixPushEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClientAttribDefaultEXT"- writeIORef glrefClientAttribDefaultEXT $ gldynClientAttribDefaultEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPushClientAttribDefaultEXT"- writeIORef glrefPushClientAttribDefaultEXT $ gldynPushClientAttribDefaultEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameterfEXT"- writeIORef glrefTextureParameterfEXT $ gldynTextureParameterfEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameterfvEXT"- writeIORef glrefTextureParameterfvEXT $ gldynTextureParameterfvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameteriEXT"- writeIORef glrefTextureParameteriEXT $ gldynTextureParameteriEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameterivEXT"- writeIORef glrefTextureParameterivEXT $ gldynTextureParameterivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureImage1DEXT"- writeIORef glrefTextureImage1DEXT $ gldynTextureImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureImage2DEXT"- writeIORef glrefTextureImage2DEXT $ gldynTextureImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureSubImage1DEXT"- writeIORef glrefTextureSubImage1DEXT $ gldynTextureSubImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureSubImage2DEXT"- writeIORef glrefTextureSubImage2DEXT $ gldynTextureSubImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTextureImage1DEXT"- writeIORef glrefCopyTextureImage1DEXT $ gldynCopyTextureImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTextureImage2DEXT"- writeIORef glrefCopyTextureImage2DEXT $ gldynCopyTextureImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTextureSubImage1DEXT"- writeIORef glrefCopyTextureSubImage1DEXT $ gldynCopyTextureSubImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTextureSubImage2DEXT"- writeIORef glrefCopyTextureSubImage2DEXT $ gldynCopyTextureSubImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureImageEXT"- writeIORef glrefGetTextureImageEXT $ gldynGetTextureImageEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureParameterfvEXT"- writeIORef glrefGetTextureParameterfvEXT $ gldynGetTextureParameterfvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureParameterivEXT"- writeIORef glrefGetTextureParameterivEXT $ gldynGetTextureParameterivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureLevelParameterfvEXT"- writeIORef glrefGetTextureLevelParameterfvEXT $ gldynGetTextureLevelParameterfvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureLevelParameterivEXT"- writeIORef glrefGetTextureLevelParameterivEXT $ gldynGetTextureLevelParameterivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureImage3DEXT"- writeIORef glrefTextureImage3DEXT $ gldynTextureImage3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureSubImage3DEXT"- writeIORef glrefTextureSubImage3DEXT $ gldynTextureSubImage3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTextureSubImage3DEXT"- writeIORef glrefCopyTextureSubImage3DEXT $ gldynCopyTextureSubImage3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindMultiTextureEXT"- writeIORef glrefBindMultiTextureEXT $ gldynBindMultiTextureEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexCoordPointerEXT"- writeIORef glrefMultiTexCoordPointerEXT $ gldynMultiTexCoordPointerEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexEnvfEXT"- writeIORef glrefMultiTexEnvfEXT $ gldynMultiTexEnvfEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexEnvfvEXT"- writeIORef glrefMultiTexEnvfvEXT $ gldynMultiTexEnvfvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexEnviEXT"- writeIORef glrefMultiTexEnviEXT $ gldynMultiTexEnviEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexEnvivEXT"- writeIORef glrefMultiTexEnvivEXT $ gldynMultiTexEnvivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGendEXT"- writeIORef glrefMultiTexGendEXT $ gldynMultiTexGendEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGendvEXT"- writeIORef glrefMultiTexGendvEXT $ gldynMultiTexGendvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGenfEXT"- writeIORef glrefMultiTexGenfEXT $ gldynMultiTexGenfEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGenfvEXT"- writeIORef glrefMultiTexGenfvEXT $ gldynMultiTexGenfvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGeniEXT"- writeIORef glrefMultiTexGeniEXT $ gldynMultiTexGeniEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGenivEXT"- writeIORef glrefMultiTexGenivEXT $ gldynMultiTexGenivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexEnvfvEXT"- writeIORef glrefGetMultiTexEnvfvEXT $ gldynGetMultiTexEnvfvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexEnvivEXT"- writeIORef glrefGetMultiTexEnvivEXT $ gldynGetMultiTexEnvivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexGendvEXT"- writeIORef glrefGetMultiTexGendvEXT $ gldynGetMultiTexGendvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexGenfvEXT"- writeIORef glrefGetMultiTexGenfvEXT $ gldynGetMultiTexGenfvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexGenivEXT"- writeIORef glrefGetMultiTexGenivEXT $ gldynGetMultiTexGenivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameteriEXT"- writeIORef glrefMultiTexParameteriEXT $ gldynMultiTexParameteriEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameterivEXT"- writeIORef glrefMultiTexParameterivEXT $ gldynMultiTexParameterivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameterfEXT"- writeIORef glrefMultiTexParameterfEXT $ gldynMultiTexParameterfEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameterfvEXT"- writeIORef glrefMultiTexParameterfvEXT $ gldynMultiTexParameterfvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexImage1DEXT"- writeIORef glrefMultiTexImage1DEXT $ gldynMultiTexImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexImage2DEXT"- writeIORef glrefMultiTexImage2DEXT $ gldynMultiTexImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexSubImage1DEXT"- writeIORef glrefMultiTexSubImage1DEXT $ gldynMultiTexSubImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexSubImage2DEXT"- writeIORef glrefMultiTexSubImage2DEXT $ gldynMultiTexSubImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyMultiTexImage1DEXT"- writeIORef glrefCopyMultiTexImage1DEXT $ gldynCopyMultiTexImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyMultiTexImage2DEXT"- writeIORef glrefCopyMultiTexImage2DEXT $ gldynCopyMultiTexImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyMultiTexSubImage1DEXT"- writeIORef glrefCopyMultiTexSubImage1DEXT $ gldynCopyMultiTexSubImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyMultiTexSubImage2DEXT"- writeIORef glrefCopyMultiTexSubImage2DEXT $ gldynCopyMultiTexSubImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexImageEXT"- writeIORef glrefGetMultiTexImageEXT $ gldynGetMultiTexImageEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexParameterfvEXT"- writeIORef glrefGetMultiTexParameterfvEXT $ gldynGetMultiTexParameterfvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexParameterivEXT"- writeIORef glrefGetMultiTexParameterivEXT $ gldynGetMultiTexParameterivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexLevelParameterfvEXT"- writeIORef glrefGetMultiTexLevelParameterfvEXT $ gldynGetMultiTexLevelParameterfvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexLevelParameterivEXT"- writeIORef glrefGetMultiTexLevelParameterivEXT $ gldynGetMultiTexLevelParameterivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexImage3DEXT"- writeIORef glrefMultiTexImage3DEXT $ gldynMultiTexImage3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexSubImage3DEXT"- writeIORef glrefMultiTexSubImage3DEXT $ gldynMultiTexSubImage3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyMultiTexSubImage3DEXT"- writeIORef glrefCopyMultiTexSubImage3DEXT $ gldynCopyMultiTexSubImage3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableClientStateIndexedEXT"- writeIORef glrefEnableClientStateIndexedEXT $ gldynEnableClientStateIndexedEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableClientStateIndexedEXT"- writeIORef glrefDisableClientStateIndexedEXT $ gldynDisableClientStateIndexedEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFloatIndexedvEXT"- writeIORef glrefGetFloatIndexedvEXT $ gldynGetFloatIndexedvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetDoubleIndexedvEXT"- writeIORef glrefGetDoubleIndexedvEXT $ gldynGetDoubleIndexedvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetPointerIndexedvEXT"- writeIORef glrefGetPointerIndexedvEXT $ gldynGetPointerIndexedvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableIndexedEXT"- writeIORef glrefEnableIndexedEXT $ gldynEnableIndexedEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableIndexedEXT"- writeIORef glrefDisableIndexedEXT $ gldynDisableIndexedEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsEnabledIndexedEXT"- writeIORef glrefIsEnabledIndexedEXT $ gldynIsEnabledIndexedEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetIntegerIndexedvEXT"- writeIORef glrefGetIntegerIndexedvEXT $ gldynGetIntegerIndexedvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBooleanIndexedvEXT"- writeIORef glrefGetBooleanIndexedvEXT $ gldynGetBooleanIndexedvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureImage3DEXT"- writeIORef glrefCompressedTextureImage3DEXT $ gldynCompressedTextureImage3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureImage2DEXT"- writeIORef glrefCompressedTextureImage2DEXT $ gldynCompressedTextureImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureImage1DEXT"- writeIORef glrefCompressedTextureImage1DEXT $ gldynCompressedTextureImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureSubImage3DEXT"- writeIORef glrefCompressedTextureSubImage3DEXT $ gldynCompressedTextureSubImage3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureSubImage2DEXT"- writeIORef glrefCompressedTextureSubImage2DEXT $ gldynCompressedTextureSubImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureSubImage1DEXT"- writeIORef glrefCompressedTextureSubImage1DEXT $ gldynCompressedTextureSubImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetCompressedTextureImageEXT"- writeIORef glrefGetCompressedTextureImageEXT $ gldynGetCompressedTextureImageEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexImage3DEXT"- writeIORef glrefCompressedMultiTexImage3DEXT $ gldynCompressedMultiTexImage3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexImage2DEXT"- writeIORef glrefCompressedMultiTexImage2DEXT $ gldynCompressedMultiTexImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexImage1DEXT"- writeIORef glrefCompressedMultiTexImage1DEXT $ gldynCompressedMultiTexImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexSubImage3DEXT"- writeIORef glrefCompressedMultiTexSubImage3DEXT $ gldynCompressedMultiTexSubImage3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexSubImage2DEXT"- writeIORef glrefCompressedMultiTexSubImage2DEXT $ gldynCompressedMultiTexSubImage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexSubImage1DEXT"- writeIORef glrefCompressedMultiTexSubImage1DEXT $ gldynCompressedMultiTexSubImage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetCompressedMultiTexImageEXT"- writeIORef glrefGetCompressedMultiTexImageEXT $ gldynGetCompressedMultiTexImageEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixLoadTransposefEXT"- writeIORef glrefMatrixLoadTransposefEXT $ gldynMatrixLoadTransposefEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixLoadTransposedEXT"- writeIORef glrefMatrixLoadTransposedEXT $ gldynMatrixLoadTransposedEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixMultTransposefEXT"- writeIORef glrefMatrixMultTransposefEXT $ gldynMatrixMultTransposefEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixMultTransposedEXT"- writeIORef glrefMatrixMultTransposedEXT $ gldynMatrixMultTransposedEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedBufferDataEXT"- writeIORef glrefNamedBufferDataEXT $ gldynNamedBufferDataEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedBufferSubDataEXT"- writeIORef glrefNamedBufferSubDataEXT $ gldynNamedBufferSubDataEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMapNamedBufferEXT"- writeIORef glrefMapNamedBufferEXT $ gldynMapNamedBufferEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUnmapNamedBufferEXT"- writeIORef glrefUnmapNamedBufferEXT $ gldynUnmapNamedBufferEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedBufferParameterivEXT"- writeIORef glrefGetNamedBufferParameterivEXT $ gldynGetNamedBufferParameterivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedBufferPointervEXT"- writeIORef glrefGetNamedBufferPointervEXT $ gldynGetNamedBufferPointervEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedBufferSubDataEXT"- writeIORef glrefGetNamedBufferSubDataEXT $ gldynGetNamedBufferSubDataEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1fEXT"- writeIORef glrefProgramUniform1fEXT $ gldynProgramUniform1fEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2fEXT"- writeIORef glrefProgramUniform2fEXT $ gldynProgramUniform2fEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3fEXT"- writeIORef glrefProgramUniform3fEXT $ gldynProgramUniform3fEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4fEXT"- writeIORef glrefProgramUniform4fEXT $ gldynProgramUniform4fEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1iEXT"- writeIORef glrefProgramUniform1iEXT $ gldynProgramUniform1iEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2iEXT"- writeIORef glrefProgramUniform2iEXT $ gldynProgramUniform2iEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3iEXT"- writeIORef glrefProgramUniform3iEXT $ gldynProgramUniform3iEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4iEXT"- writeIORef glrefProgramUniform4iEXT $ gldynProgramUniform4iEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1fvEXT"- writeIORef glrefProgramUniform1fvEXT $ gldynProgramUniform1fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2fvEXT"- writeIORef glrefProgramUniform2fvEXT $ gldynProgramUniform2fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3fvEXT"- writeIORef glrefProgramUniform3fvEXT $ gldynProgramUniform3fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4fvEXT"- writeIORef glrefProgramUniform4fvEXT $ gldynProgramUniform4fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1ivEXT"- writeIORef glrefProgramUniform1ivEXT $ gldynProgramUniform1ivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2ivEXT"- writeIORef glrefProgramUniform2ivEXT $ gldynProgramUniform2ivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3ivEXT"- writeIORef glrefProgramUniform3ivEXT $ gldynProgramUniform3ivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4ivEXT"- writeIORef glrefProgramUniform4ivEXT $ gldynProgramUniform4ivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2fvEXT"- writeIORef glrefProgramUniformMatrix2fvEXT $ gldynProgramUniformMatrix2fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3fvEXT"- writeIORef glrefProgramUniformMatrix3fvEXT $ gldynProgramUniformMatrix3fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4fvEXT"- writeIORef glrefProgramUniformMatrix4fvEXT $ gldynProgramUniformMatrix4fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x3fvEXT"- writeIORef glrefProgramUniformMatrix2x3fvEXT $ gldynProgramUniformMatrix2x3fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x2fvEXT"- writeIORef glrefProgramUniformMatrix3x2fvEXT $ gldynProgramUniformMatrix3x2fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x4fvEXT"- writeIORef glrefProgramUniformMatrix2x4fvEXT $ gldynProgramUniformMatrix2x4fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x2fvEXT"- writeIORef glrefProgramUniformMatrix4x2fvEXT $ gldynProgramUniformMatrix4x2fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x4fvEXT"- writeIORef glrefProgramUniformMatrix3x4fvEXT $ gldynProgramUniformMatrix3x4fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x3fvEXT"- writeIORef glrefProgramUniformMatrix4x3fvEXT $ gldynProgramUniformMatrix4x3fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureBufferEXT"- writeIORef glrefTextureBufferEXT $ gldynTextureBufferEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexBufferEXT"- writeIORef glrefMultiTexBufferEXT $ gldynMultiTexBufferEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameterIivEXT"- writeIORef glrefTextureParameterIivEXT $ gldynTextureParameterIivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameterIuivEXT"- writeIORef glrefTextureParameterIuivEXT $ gldynTextureParameterIuivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureParameterIivEXT"- writeIORef glrefGetTextureParameterIivEXT $ gldynGetTextureParameterIivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureParameterIuivEXT"- writeIORef glrefGetTextureParameterIuivEXT $ gldynGetTextureParameterIuivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameterIivEXT"- writeIORef glrefMultiTexParameterIivEXT $ gldynMultiTexParameterIivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameterIuivEXT"- writeIORef glrefMultiTexParameterIuivEXT $ gldynMultiTexParameterIuivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexParameterIivEXT"- writeIORef glrefGetMultiTexParameterIivEXT $ gldynGetMultiTexParameterIivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexParameterIuivEXT"- writeIORef glrefGetMultiTexParameterIuivEXT $ gldynGetMultiTexParameterIuivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1uiEXT"- writeIORef glrefProgramUniform1uiEXT $ gldynProgramUniform1uiEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2uiEXT"- writeIORef glrefProgramUniform2uiEXT $ gldynProgramUniform2uiEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3uiEXT"- writeIORef glrefProgramUniform3uiEXT $ gldynProgramUniform3uiEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4uiEXT"- writeIORef glrefProgramUniform4uiEXT $ gldynProgramUniform4uiEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1uivEXT"- writeIORef glrefProgramUniform1uivEXT $ gldynProgramUniform1uivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2uivEXT"- writeIORef glrefProgramUniform2uivEXT $ gldynProgramUniform2uivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3uivEXT"- writeIORef glrefProgramUniform3uivEXT $ gldynProgramUniform3uivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4uivEXT"- writeIORef glrefProgramUniform4uivEXT $ gldynProgramUniform4uivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameters4fvEXT"- writeIORef glrefNamedProgramLocalParameters4fvEXT $ gldynNamedProgramLocalParameters4fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameterI4iEXT"- writeIORef glrefNamedProgramLocalParameterI4iEXT $ gldynNamedProgramLocalParameterI4iEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameterI4ivEXT"- writeIORef glrefNamedProgramLocalParameterI4ivEXT $ gldynNamedProgramLocalParameterI4ivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParametersI4ivEXT"- writeIORef glrefNamedProgramLocalParametersI4ivEXT $ gldynNamedProgramLocalParametersI4ivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameterI4uiEXT"- writeIORef glrefNamedProgramLocalParameterI4uiEXT $ gldynNamedProgramLocalParameterI4uiEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameterI4uivEXT"- writeIORef glrefNamedProgramLocalParameterI4uivEXT $ gldynNamedProgramLocalParameterI4uivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParametersI4uivEXT"- writeIORef glrefNamedProgramLocalParametersI4uivEXT $ gldynNamedProgramLocalParametersI4uivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramLocalParameterIivEXT"- writeIORef glrefGetNamedProgramLocalParameterIivEXT $ gldynGetNamedProgramLocalParameterIivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramLocalParameterIuivEXT"- writeIORef glrefGetNamedProgramLocalParameterIuivEXT $ gldynGetNamedProgramLocalParameterIuivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableClientStateiEXT"- writeIORef glrefEnableClientStateiEXT $ gldynEnableClientStateiEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableClientStateiEXT"- writeIORef glrefDisableClientStateiEXT $ gldynDisableClientStateiEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFloati_vEXT"- writeIORef glrefGetFloati_vEXT $ gldynGetFloati_vEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetDoublei_vEXT"- writeIORef glrefGetDoublei_vEXT $ gldynGetDoublei_vEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetPointeri_vEXT"- writeIORef glrefGetPointeri_vEXT $ gldynGetPointeri_vEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramStringEXT"- writeIORef glrefNamedProgramStringEXT $ gldynNamedProgramStringEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameter4dEXT"- writeIORef glrefNamedProgramLocalParameter4dEXT $ gldynNamedProgramLocalParameter4dEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameter4dvEXT"- writeIORef glrefNamedProgramLocalParameter4dvEXT $ gldynNamedProgramLocalParameter4dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameter4fEXT"- writeIORef glrefNamedProgramLocalParameter4fEXT $ gldynNamedProgramLocalParameter4fEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameter4fvEXT"- writeIORef glrefNamedProgramLocalParameter4fvEXT $ gldynNamedProgramLocalParameter4fvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramLocalParameterdvEXT"- writeIORef glrefGetNamedProgramLocalParameterdvEXT $ gldynGetNamedProgramLocalParameterdvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramLocalParameterfvEXT"- writeIORef glrefGetNamedProgramLocalParameterfvEXT $ gldynGetNamedProgramLocalParameterfvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramivEXT"- writeIORef glrefGetNamedProgramivEXT $ gldynGetNamedProgramivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramStringEXT"- writeIORef glrefGetNamedProgramStringEXT $ gldynGetNamedProgramStringEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedRenderbufferStorageEXT"- writeIORef glrefNamedRenderbufferStorageEXT $ gldynNamedRenderbufferStorageEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedRenderbufferParameterivEXT"- writeIORef glrefGetNamedRenderbufferParameterivEXT $ gldynGetNamedRenderbufferParameterivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedRenderbufferStorageMultisampleEXT"- writeIORef glrefNamedRenderbufferStorageMultisampleEXT $ gldynNamedRenderbufferStorageMultisampleEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedRenderbufferStorageMultisampleCoverageEXT"- writeIORef glrefNamedRenderbufferStorageMultisampleCoverageEXT $ gldynNamedRenderbufferStorageMultisampleCoverageEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCheckNamedFramebufferStatusEXT"- writeIORef glrefCheckNamedFramebufferStatusEXT $ gldynCheckNamedFramebufferStatusEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTexture1DEXT"- writeIORef glrefNamedFramebufferTexture1DEXT $ gldynNamedFramebufferTexture1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTexture2DEXT"- writeIORef glrefNamedFramebufferTexture2DEXT $ gldynNamedFramebufferTexture2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTexture3DEXT"- writeIORef glrefNamedFramebufferTexture3DEXT $ gldynNamedFramebufferTexture3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferRenderbufferEXT"- writeIORef glrefNamedFramebufferRenderbufferEXT $ gldynNamedFramebufferRenderbufferEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedFramebufferAttachmentParameterivEXT"- writeIORef glrefGetNamedFramebufferAttachmentParameterivEXT $ gldynGetNamedFramebufferAttachmentParameterivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenerateTextureMipmapEXT"- writeIORef glrefGenerateTextureMipmapEXT $ gldynGenerateTextureMipmapEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenerateMultiTexMipmapEXT"- writeIORef glrefGenerateMultiTexMipmapEXT $ gldynGenerateMultiTexMipmapEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferDrawBufferEXT"- writeIORef glrefFramebufferDrawBufferEXT $ gldynFramebufferDrawBufferEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferDrawBuffersEXT"- writeIORef glrefFramebufferDrawBuffersEXT $ gldynFramebufferDrawBuffersEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferReadBufferEXT"- writeIORef glrefFramebufferReadBufferEXT $ gldynFramebufferReadBufferEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFramebufferParameterivEXT"- writeIORef glrefGetFramebufferParameterivEXT $ gldynGetFramebufferParameterivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedCopyBufferSubDataEXT"- writeIORef glrefNamedCopyBufferSubDataEXT $ gldynNamedCopyBufferSubDataEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTextureEXT"- writeIORef glrefNamedFramebufferTextureEXT $ gldynNamedFramebufferTextureEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTextureLayerEXT"- writeIORef glrefNamedFramebufferTextureLayerEXT $ gldynNamedFramebufferTextureLayerEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTextureFaceEXT"- writeIORef glrefNamedFramebufferTextureFaceEXT $ gldynNamedFramebufferTextureFaceEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureRenderbufferEXT"- writeIORef glrefTextureRenderbufferEXT $ gldynTextureRenderbufferEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexRenderbufferEXT"- writeIORef glrefMultiTexRenderbufferEXT $ gldynMultiTexRenderbufferEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexOffsetEXT"- writeIORef glrefVertexArrayVertexOffsetEXT $ gldynVertexArrayVertexOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayColorOffsetEXT"- writeIORef glrefVertexArrayColorOffsetEXT $ gldynVertexArrayColorOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayEdgeFlagOffsetEXT"- writeIORef glrefVertexArrayEdgeFlagOffsetEXT $ gldynVertexArrayEdgeFlagOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayIndexOffsetEXT"- writeIORef glrefVertexArrayIndexOffsetEXT $ gldynVertexArrayIndexOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayNormalOffsetEXT"- writeIORef glrefVertexArrayNormalOffsetEXT $ gldynVertexArrayNormalOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayTexCoordOffsetEXT"- writeIORef glrefVertexArrayTexCoordOffsetEXT $ gldynVertexArrayTexCoordOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayMultiTexCoordOffsetEXT"- writeIORef glrefVertexArrayMultiTexCoordOffsetEXT $ gldynVertexArrayMultiTexCoordOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayFogCoordOffsetEXT"- writeIORef glrefVertexArrayFogCoordOffsetEXT $ gldynVertexArrayFogCoordOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArraySecondaryColorOffsetEXT"- writeIORef glrefVertexArraySecondaryColorOffsetEXT $ gldynVertexArraySecondaryColorOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribOffsetEXT"- writeIORef glrefVertexArrayVertexAttribOffsetEXT $ gldynVertexArrayVertexAttribOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribIOffsetEXT"- writeIORef glrefVertexArrayVertexAttribIOffsetEXT $ gldynVertexArrayVertexAttribIOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableVertexArrayEXT"- writeIORef glrefEnableVertexArrayEXT $ gldynEnableVertexArrayEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableVertexArrayEXT"- writeIORef glrefDisableVertexArrayEXT $ gldynDisableVertexArrayEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableVertexArrayAttribEXT"- writeIORef glrefEnableVertexArrayAttribEXT $ gldynEnableVertexArrayAttribEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableVertexArrayAttribEXT"- writeIORef glrefDisableVertexArrayAttribEXT $ gldynDisableVertexArrayAttribEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexArrayIntegervEXT"- writeIORef glrefGetVertexArrayIntegervEXT $ gldynGetVertexArrayIntegervEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexArrayPointervEXT"- writeIORef glrefGetVertexArrayPointervEXT $ gldynGetVertexArrayPointervEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexArrayIntegeri_vEXT"- writeIORef glrefGetVertexArrayIntegeri_vEXT $ gldynGetVertexArrayIntegeri_vEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexArrayPointeri_vEXT"- writeIORef glrefGetVertexArrayPointeri_vEXT $ gldynGetVertexArrayPointeri_vEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMapNamedBufferRangeEXT"- writeIORef glrefMapNamedBufferRangeEXT $ gldynMapNamedBufferRangeEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFlushMappedNamedBufferRangeEXT"- writeIORef glrefFlushMappedNamedBufferRangeEXT $ gldynFlushMappedNamedBufferRangeEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedBufferStorageEXT"- writeIORef glrefNamedBufferStorageEXT $ gldynNamedBufferStorageEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearNamedBufferDataEXT"- writeIORef glrefClearNamedBufferDataEXT $ gldynClearNamedBufferDataEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearNamedBufferSubDataEXT"- writeIORef glrefClearNamedBufferSubDataEXT $ gldynClearNamedBufferSubDataEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferParameteriEXT"- writeIORef glrefNamedFramebufferParameteriEXT $ gldynNamedFramebufferParameteriEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedFramebufferParameterivEXT"- writeIORef glrefGetNamedFramebufferParameterivEXT $ gldynGetNamedFramebufferParameterivEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1dEXT"- writeIORef glrefProgramUniform1dEXT $ gldynProgramUniform1dEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2dEXT"- writeIORef glrefProgramUniform2dEXT $ gldynProgramUniform2dEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3dEXT"- writeIORef glrefProgramUniform3dEXT $ gldynProgramUniform3dEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4dEXT"- writeIORef glrefProgramUniform4dEXT $ gldynProgramUniform4dEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1dvEXT"- writeIORef glrefProgramUniform1dvEXT $ gldynProgramUniform1dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2dvEXT"- writeIORef glrefProgramUniform2dvEXT $ gldynProgramUniform2dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3dvEXT"- writeIORef glrefProgramUniform3dvEXT $ gldynProgramUniform3dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4dvEXT"- writeIORef glrefProgramUniform4dvEXT $ gldynProgramUniform4dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2dvEXT"- writeIORef glrefProgramUniformMatrix2dvEXT $ gldynProgramUniformMatrix2dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3dvEXT"- writeIORef glrefProgramUniformMatrix3dvEXT $ gldynProgramUniformMatrix3dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4dvEXT"- writeIORef glrefProgramUniformMatrix4dvEXT $ gldynProgramUniformMatrix4dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x3dvEXT"- writeIORef glrefProgramUniformMatrix2x3dvEXT $ gldynProgramUniformMatrix2x3dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x4dvEXT"- writeIORef glrefProgramUniformMatrix2x4dvEXT $ gldynProgramUniformMatrix2x4dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x2dvEXT"- writeIORef glrefProgramUniformMatrix3x2dvEXT $ gldynProgramUniformMatrix3x2dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x4dvEXT"- writeIORef glrefProgramUniformMatrix3x4dvEXT $ gldynProgramUniformMatrix3x4dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x2dvEXT"- writeIORef glrefProgramUniformMatrix4x2dvEXT $ gldynProgramUniformMatrix4x2dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x3dvEXT"- writeIORef glrefProgramUniformMatrix4x3dvEXT $ gldynProgramUniformMatrix4x3dvEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureBufferRangeEXT"- writeIORef glrefTextureBufferRangeEXT $ gldynTextureBufferRangeEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureStorage1DEXT"- writeIORef glrefTextureStorage1DEXT $ gldynTextureStorage1DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureStorage2DEXT"- writeIORef glrefTextureStorage2DEXT $ gldynTextureStorage2DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureStorage3DEXT"- writeIORef glrefTextureStorage3DEXT $ gldynTextureStorage3DEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureStorage2DMultisampleEXT"- writeIORef glrefTextureStorage2DMultisampleEXT $ gldynTextureStorage2DMultisampleEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureStorage3DMultisampleEXT"- writeIORef glrefTextureStorage3DMultisampleEXT $ gldynTextureStorage3DMultisampleEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayBindVertexBufferEXT"- writeIORef glrefVertexArrayBindVertexBufferEXT $ gldynVertexArrayBindVertexBufferEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribFormatEXT"- writeIORef glrefVertexArrayVertexAttribFormatEXT $ gldynVertexArrayVertexAttribFormatEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribIFormatEXT"- writeIORef glrefVertexArrayVertexAttribIFormatEXT $ gldynVertexArrayVertexAttribIFormatEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribLFormatEXT"- writeIORef glrefVertexArrayVertexAttribLFormatEXT $ gldynVertexArrayVertexAttribLFormatEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribBindingEXT"- writeIORef glrefVertexArrayVertexAttribBindingEXT $ gldynVertexArrayVertexAttribBindingEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexBindingDivisorEXT"- writeIORef glrefVertexArrayVertexBindingDivisorEXT $ gldynVertexArrayVertexBindingDivisorEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribLOffsetEXT"- writeIORef glrefVertexArrayVertexAttribLOffsetEXT $ gldynVertexArrayVertexAttribLOffsetEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexturePageCommitmentEXT"- writeIORef glrefTexturePageCommitmentEXT $ gldynTexturePageCommitmentEXT addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribDivisorEXT"- writeIORef glrefVertexArrayVertexAttribDivisorEXT $ gldynVertexArrayVertexAttribDivisorEXT addr-- -- GL_ARB_buffer_storage-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBufferStorage"- writeIORef glrefBufferStorage $ gldynBufferStorage addr-- -- GL_ARB_separate_shader_objects-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUseProgramStages"- writeIORef glrefUseProgramStages $ gldynUseProgramStages addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glActiveShaderProgram"- writeIORef glrefActiveShaderProgram $ gldynActiveShaderProgram addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCreateShaderProgramv"- writeIORef glrefCreateShaderProgramv $ gldynCreateShaderProgramv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindProgramPipeline"- writeIORef glrefBindProgramPipeline $ gldynBindProgramPipeline addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteProgramPipelines"- writeIORef glrefDeleteProgramPipelines $ gldynDeleteProgramPipelines addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenProgramPipelines"- writeIORef glrefGenProgramPipelines $ gldynGenProgramPipelines addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsProgramPipeline"- writeIORef glrefIsProgramPipeline $ gldynIsProgramPipeline addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetProgramPipelineiv"- writeIORef glrefGetProgramPipelineiv $ gldynGetProgramPipelineiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1i"- writeIORef glrefProgramUniform1i $ gldynProgramUniform1i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1iv"- writeIORef glrefProgramUniform1iv $ gldynProgramUniform1iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1f"- writeIORef glrefProgramUniform1f $ gldynProgramUniform1f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1fv"- writeIORef glrefProgramUniform1fv $ gldynProgramUniform1fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1d"- writeIORef glrefProgramUniform1d $ gldynProgramUniform1d addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1dv"- writeIORef glrefProgramUniform1dv $ gldynProgramUniform1dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1ui"- writeIORef glrefProgramUniform1ui $ gldynProgramUniform1ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1uiv"- writeIORef glrefProgramUniform1uiv $ gldynProgramUniform1uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2i"- writeIORef glrefProgramUniform2i $ gldynProgramUniform2i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2iv"- writeIORef glrefProgramUniform2iv $ gldynProgramUniform2iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2f"- writeIORef glrefProgramUniform2f $ gldynProgramUniform2f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2fv"- writeIORef glrefProgramUniform2fv $ gldynProgramUniform2fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2d"- writeIORef glrefProgramUniform2d $ gldynProgramUniform2d addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2dv"- writeIORef glrefProgramUniform2dv $ gldynProgramUniform2dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2ui"- writeIORef glrefProgramUniform2ui $ gldynProgramUniform2ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2uiv"- writeIORef glrefProgramUniform2uiv $ gldynProgramUniform2uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3i"- writeIORef glrefProgramUniform3i $ gldynProgramUniform3i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3iv"- writeIORef glrefProgramUniform3iv $ gldynProgramUniform3iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3f"- writeIORef glrefProgramUniform3f $ gldynProgramUniform3f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3fv"- writeIORef glrefProgramUniform3fv $ gldynProgramUniform3fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3d"- writeIORef glrefProgramUniform3d $ gldynProgramUniform3d addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3dv"- writeIORef glrefProgramUniform3dv $ gldynProgramUniform3dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3ui"- writeIORef glrefProgramUniform3ui $ gldynProgramUniform3ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3uiv"- writeIORef glrefProgramUniform3uiv $ gldynProgramUniform3uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4i"- writeIORef glrefProgramUniform4i $ gldynProgramUniform4i addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4iv"- writeIORef glrefProgramUniform4iv $ gldynProgramUniform4iv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4f"- writeIORef glrefProgramUniform4f $ gldynProgramUniform4f addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4fv"- writeIORef glrefProgramUniform4fv $ gldynProgramUniform4fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4d"- writeIORef glrefProgramUniform4d $ gldynProgramUniform4d addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4dv"- writeIORef glrefProgramUniform4dv $ gldynProgramUniform4dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4ui"- writeIORef glrefProgramUniform4ui $ gldynProgramUniform4ui addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4uiv"- writeIORef glrefProgramUniform4uiv $ gldynProgramUniform4uiv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2fv"- writeIORef glrefProgramUniformMatrix2fv $ gldynProgramUniformMatrix2fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3fv"- writeIORef glrefProgramUniformMatrix3fv $ gldynProgramUniformMatrix3fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4fv"- writeIORef glrefProgramUniformMatrix4fv $ gldynProgramUniformMatrix4fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2dv"- writeIORef glrefProgramUniformMatrix2dv $ gldynProgramUniformMatrix2dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3dv"- writeIORef glrefProgramUniformMatrix3dv $ gldynProgramUniformMatrix3dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4dv"- writeIORef glrefProgramUniformMatrix4dv $ gldynProgramUniformMatrix4dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x3fv"- writeIORef glrefProgramUniformMatrix2x3fv $ gldynProgramUniformMatrix2x3fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x2fv"- writeIORef glrefProgramUniformMatrix3x2fv $ gldynProgramUniformMatrix3x2fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x4fv"- writeIORef glrefProgramUniformMatrix2x4fv $ gldynProgramUniformMatrix2x4fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x2fv"- writeIORef glrefProgramUniformMatrix4x2fv $ gldynProgramUniformMatrix4x2fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x4fv"- writeIORef glrefProgramUniformMatrix3x4fv $ gldynProgramUniformMatrix3x4fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x3fv"- writeIORef glrefProgramUniformMatrix4x3fv $ gldynProgramUniformMatrix4x3fv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x3dv"- writeIORef glrefProgramUniformMatrix2x3dv $ gldynProgramUniformMatrix2x3dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x2dv"- writeIORef glrefProgramUniformMatrix3x2dv $ gldynProgramUniformMatrix3x2dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x4dv"- writeIORef glrefProgramUniformMatrix2x4dv $ gldynProgramUniformMatrix2x4dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x2dv"- writeIORef glrefProgramUniformMatrix4x2dv $ gldynProgramUniformMatrix4x2dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x4dv"- writeIORef glrefProgramUniformMatrix3x4dv $ gldynProgramUniformMatrix3x4dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x3dv"- writeIORef glrefProgramUniformMatrix4x3dv $ gldynProgramUniformMatrix4x3dv addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glValidateProgramPipeline"- writeIORef glrefValidateProgramPipeline $ gldynValidateProgramPipeline addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetProgramPipelineInfoLog"- writeIORef glrefGetProgramPipelineInfoLog $ gldynGetProgramPipelineInfoLog addr-- -- GL_ATI_meminfo--- -- GL_NVX_gpu_memory_info--- -- GL_ARB_invalidate_subdata-- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateTexSubImage"- writeIORef glrefInvalidateTexSubImage $ gldynInvalidateTexSubImage addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateTexImage"- writeIORef glrefInvalidateTexImage $ gldynInvalidateTexImage addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateBufferSubData"- writeIORef glrefInvalidateBufferSubData $ gldynInvalidateBufferSubData addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateBufferData"- writeIORef glrefInvalidateBufferData $ gldynInvalidateBufferData addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateFramebuffer"- writeIORef glrefInvalidateFramebuffer $ gldynInvalidateFramebuffer addr- when True $ liftIO $ do- addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateSubFramebuffer"- writeIORef glrefInvalidateSubFramebuffer $ gldynInvalidateSubFramebuffer addr---- when True $ do- result <- liftIO $ is_supported "GL_ARB_texture_storage"- unless result $ do- throwE $ Failure $ "Missing OpenGL extension: " ++ "GL_ARB_texture_storage"- when True $ do- result <- liftIO $ is_supported "GL_KHR_debug"- liftIO $ writeIORef hasref_GL_KHR_debug result- when True $ do- result <- liftIO $ is_supported "GL_EXT_direct_state_access"- liftIO $ writeIORef hasref_GL_EXT_direct_state_access result- when True $ do- result <- liftIO $ is_supported "GL_ARB_buffer_storage"- liftIO $ writeIORef hasref_GL_ARB_buffer_storage result- when True $ do- result <- liftIO $ is_supported "GL_ARB_separate_shader_objects"- liftIO $ writeIORef hasref_GL_ARB_separate_shader_objects result- when True $ do- result <- liftIO $ is_supported "GL_ATI_meminfo"- liftIO $ writeIORef hasref_GL_ATI_meminfo result- when True $ do- result <- liftIO $ is_supported "GL_NVX_gpu_memory_info"- liftIO $ writeIORef hasref_GL_NVX_gpu_memory_info result- when True $ do- result <- liftIO $ is_supported "GL_ARB_invalidate_subdata"- liftIO $ writeIORef hasref_GL_ARB_invalidate_subdata result-- return Success--has_GL_ARB_texture_storage :: IO Bool-has_GL_ARB_texture_storage = readIORef hasref_GL_ARB_texture_storage-{-# INLINE has_GL_ARB_texture_storage #-}-hasref_GL_ARB_texture_storage :: IORef Bool-hasref_GL_ARB_texture_storage = unsafePerformIO $ newIORef True-{-# NOINLINE hasref_GL_ARB_texture_storage #-}-has_GL_KHR_debug :: IO Bool-has_GL_KHR_debug = readIORef hasref_GL_KHR_debug-{-# INLINE has_GL_KHR_debug #-}-hasref_GL_KHR_debug :: IORef Bool-hasref_GL_KHR_debug = unsafePerformIO $ newIORef False-{-# NOINLINE hasref_GL_KHR_debug #-}-has_GL_EXT_direct_state_access :: IO Bool-has_GL_EXT_direct_state_access = readIORef hasref_GL_EXT_direct_state_access-{-# INLINE has_GL_EXT_direct_state_access #-}-hasref_GL_EXT_direct_state_access :: IORef Bool-hasref_GL_EXT_direct_state_access = unsafePerformIO $ newIORef False-{-# NOINLINE hasref_GL_EXT_direct_state_access #-}-has_GL_ARB_buffer_storage :: IO Bool-has_GL_ARB_buffer_storage = readIORef hasref_GL_ARB_buffer_storage-{-# INLINE has_GL_ARB_buffer_storage #-}-hasref_GL_ARB_buffer_storage :: IORef Bool-hasref_GL_ARB_buffer_storage = unsafePerformIO $ newIORef False-{-# NOINLINE hasref_GL_ARB_buffer_storage #-}-has_GL_ARB_separate_shader_objects :: IO Bool-has_GL_ARB_separate_shader_objects = readIORef hasref_GL_ARB_separate_shader_objects-{-# INLINE has_GL_ARB_separate_shader_objects #-}-hasref_GL_ARB_separate_shader_objects :: IORef Bool-hasref_GL_ARB_separate_shader_objects = unsafePerformIO $ newIORef False-{-# NOINLINE hasref_GL_ARB_separate_shader_objects #-}-has_GL_ATI_meminfo :: IO Bool-has_GL_ATI_meminfo = readIORef hasref_GL_ATI_meminfo-{-# INLINE has_GL_ATI_meminfo #-}-hasref_GL_ATI_meminfo :: IORef Bool-hasref_GL_ATI_meminfo = unsafePerformIO $ newIORef False-{-# NOINLINE hasref_GL_ATI_meminfo #-}-has_GL_NVX_gpu_memory_info :: IO Bool-has_GL_NVX_gpu_memory_info = readIORef hasref_GL_NVX_gpu_memory_info-{-# INLINE has_GL_NVX_gpu_memory_info #-}-hasref_GL_NVX_gpu_memory_info :: IORef Bool-hasref_GL_NVX_gpu_memory_info = unsafePerformIO $ newIORef False-{-# NOINLINE hasref_GL_NVX_gpu_memory_info #-}-has_GL_ARB_invalidate_subdata :: IO Bool-has_GL_ARB_invalidate_subdata = readIORef hasref_GL_ARB_invalidate_subdata-{-# INLINE has_GL_ARB_invalidate_subdata #-}-hasref_GL_ARB_invalidate_subdata :: IORef Bool-hasref_GL_ARB_invalidate_subdata = unsafePerformIO $ newIORef False-{-# NOINLINE hasref_GL_ARB_invalidate_subdata #-}----- GL_VERSION_1_0--type FuntypeCullFace =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCullFace :: FunPtr FuntypeCullFace -> FuntypeCullFace-glrefCullFace :: IORef FuntypeCullFace-glrefCullFace = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCullFace #-}-glCullFace :: FuntypeCullFace-glCullFace = unsafePerformIO $ readIORef glrefCullFace-{-# INLINE glCullFace #-}-type FuntypeFrontFace =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFrontFace :: FunPtr FuntypeFrontFace -> FuntypeFrontFace-glrefFrontFace :: IORef FuntypeFrontFace-glrefFrontFace = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFrontFace #-}-glFrontFace :: FuntypeFrontFace-glFrontFace = unsafePerformIO $ readIORef glrefFrontFace-{-# INLINE glFrontFace #-}-type FuntypeHint =- GLenum ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynHint :: FunPtr FuntypeHint -> FuntypeHint-glrefHint :: IORef FuntypeHint-glrefHint = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefHint #-}-glHint :: FuntypeHint-glHint = unsafePerformIO $ readIORef glrefHint-{-# INLINE glHint #-}-type FuntypeLineWidth =- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynLineWidth :: FunPtr FuntypeLineWidth -> FuntypeLineWidth-glrefLineWidth :: IORef FuntypeLineWidth-glrefLineWidth = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefLineWidth #-}-glLineWidth :: FuntypeLineWidth-glLineWidth = unsafePerformIO $ readIORef glrefLineWidth-{-# INLINE glLineWidth #-}-type FuntypePointSize =- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPointSize :: FunPtr FuntypePointSize -> FuntypePointSize-glrefPointSize :: IORef FuntypePointSize-glrefPointSize = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPointSize #-}-glPointSize :: FuntypePointSize-glPointSize = unsafePerformIO $ readIORef glrefPointSize-{-# INLINE glPointSize #-}-type FuntypePolygonMode =- GLenum ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPolygonMode :: FunPtr FuntypePolygonMode -> FuntypePolygonMode-glrefPolygonMode :: IORef FuntypePolygonMode-glrefPolygonMode = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPolygonMode #-}-glPolygonMode :: FuntypePolygonMode-glPolygonMode = unsafePerformIO $ readIORef glrefPolygonMode-{-# INLINE glPolygonMode #-}-type FuntypeScissor =- GLint ->- GLint ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynScissor :: FunPtr FuntypeScissor -> FuntypeScissor-glrefScissor :: IORef FuntypeScissor-glrefScissor = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefScissor #-}-glScissor :: FuntypeScissor-glScissor = unsafePerformIO $ readIORef glrefScissor-{-# INLINE glScissor #-}-type FuntypeTexParameterf =- GLenum ->- GLenum ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexParameterf :: FunPtr FuntypeTexParameterf -> FuntypeTexParameterf-glrefTexParameterf :: IORef FuntypeTexParameterf-glrefTexParameterf = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexParameterf #-}-glTexParameterf :: FuntypeTexParameterf-glTexParameterf = unsafePerformIO $ readIORef glrefTexParameterf-{-# INLINE glTexParameterf #-}-type FuntypeTexParameterfv =- GLenum ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexParameterfv :: FunPtr FuntypeTexParameterfv -> FuntypeTexParameterfv-glrefTexParameterfv :: IORef FuntypeTexParameterfv-glrefTexParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexParameterfv #-}-glTexParameterfv :: FuntypeTexParameterfv-glTexParameterfv = unsafePerformIO $ readIORef glrefTexParameterfv-{-# INLINE glTexParameterfv #-}-type FuntypeTexParameteri =- GLenum ->- GLenum ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexParameteri :: FunPtr FuntypeTexParameteri -> FuntypeTexParameteri-glrefTexParameteri :: IORef FuntypeTexParameteri-glrefTexParameteri = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexParameteri #-}-glTexParameteri :: FuntypeTexParameteri-glTexParameteri = unsafePerformIO $ readIORef glrefTexParameteri-{-# INLINE glTexParameteri #-}-type FuntypeTexParameteriv =- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexParameteriv :: FunPtr FuntypeTexParameteriv -> FuntypeTexParameteriv-glrefTexParameteriv :: IORef FuntypeTexParameteriv-glrefTexParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexParameteriv #-}-glTexParameteriv :: FuntypeTexParameteriv-glTexParameteriv = unsafePerformIO $ readIORef glrefTexParameteriv-{-# INLINE glTexParameteriv #-}-type FuntypeTexImage1D =- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexImage1D :: FunPtr FuntypeTexImage1D -> FuntypeTexImage1D-glrefTexImage1D :: IORef FuntypeTexImage1D-glrefTexImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexImage1D #-}-glTexImage1D :: FuntypeTexImage1D-glTexImage1D = unsafePerformIO $ readIORef glrefTexImage1D-{-# INLINE glTexImage1D #-}-type FuntypeTexImage2D =- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexImage2D :: FunPtr FuntypeTexImage2D -> FuntypeTexImage2D-glrefTexImage2D :: IORef FuntypeTexImage2D-glrefTexImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexImage2D #-}-glTexImage2D :: FuntypeTexImage2D-glTexImage2D = unsafePerformIO $ readIORef glrefTexImage2D-{-# INLINE glTexImage2D #-}-type FuntypeDrawBuffer =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDrawBuffer :: FunPtr FuntypeDrawBuffer -> FuntypeDrawBuffer-glrefDrawBuffer :: IORef FuntypeDrawBuffer-glrefDrawBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDrawBuffer #-}-glDrawBuffer :: FuntypeDrawBuffer-glDrawBuffer = unsafePerformIO $ readIORef glrefDrawBuffer-{-# INLINE glDrawBuffer #-}-type FuntypeClear =- GLbitfield ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClear :: FunPtr FuntypeClear -> FuntypeClear-glrefClear :: IORef FuntypeClear-glrefClear = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClear #-}-glClear :: FuntypeClear-glClear = unsafePerformIO $ readIORef glrefClear-{-# INLINE glClear #-}-type FuntypeClearColor =- GLfloat ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClearColor :: FunPtr FuntypeClearColor -> FuntypeClearColor-glrefClearColor :: IORef FuntypeClearColor-glrefClearColor = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClearColor #-}-glClearColor :: FuntypeClearColor-glClearColor = unsafePerformIO $ readIORef glrefClearColor-{-# INLINE glClearColor #-}-type FuntypeClearStencil =- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClearStencil :: FunPtr FuntypeClearStencil -> FuntypeClearStencil-glrefClearStencil :: IORef FuntypeClearStencil-glrefClearStencil = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClearStencil #-}-glClearStencil :: FuntypeClearStencil-glClearStencil = unsafePerformIO $ readIORef glrefClearStencil-{-# INLINE glClearStencil #-}-type FuntypeClearDepth =- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClearDepth :: FunPtr FuntypeClearDepth -> FuntypeClearDepth-glrefClearDepth :: IORef FuntypeClearDepth-glrefClearDepth = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClearDepth #-}-glClearDepth :: FuntypeClearDepth-glClearDepth = unsafePerformIO $ readIORef glrefClearDepth-{-# INLINE glClearDepth #-}-type FuntypeStencilMask =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynStencilMask :: FunPtr FuntypeStencilMask -> FuntypeStencilMask-glrefStencilMask :: IORef FuntypeStencilMask-glrefStencilMask = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefStencilMask #-}-glStencilMask :: FuntypeStencilMask-glStencilMask = unsafePerformIO $ readIORef glrefStencilMask-{-# INLINE glStencilMask #-}-type FuntypeColorMask =- GLboolean ->- GLboolean ->- GLboolean ->- GLboolean ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynColorMask :: FunPtr FuntypeColorMask -> FuntypeColorMask-glrefColorMask :: IORef FuntypeColorMask-glrefColorMask = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefColorMask #-}-glColorMask :: FuntypeColorMask-glColorMask = unsafePerformIO $ readIORef glrefColorMask-{-# INLINE glColorMask #-}-type FuntypeDepthMask =- GLboolean ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDepthMask :: FunPtr FuntypeDepthMask -> FuntypeDepthMask-glrefDepthMask :: IORef FuntypeDepthMask-glrefDepthMask = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDepthMask #-}-glDepthMask :: FuntypeDepthMask-glDepthMask = unsafePerformIO $ readIORef glrefDepthMask-{-# INLINE glDepthMask #-}-type FuntypeDisable =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDisable :: FunPtr FuntypeDisable -> FuntypeDisable-glrefDisable :: IORef FuntypeDisable-glrefDisable = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDisable #-}-glDisable :: FuntypeDisable-glDisable = unsafePerformIO $ readIORef glrefDisable-{-# INLINE glDisable #-}-type FuntypeEnable =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynEnable :: FunPtr FuntypeEnable -> FuntypeEnable-glrefEnable :: IORef FuntypeEnable-glrefEnable = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefEnable #-}-glEnable :: FuntypeEnable-glEnable = unsafePerformIO $ readIORef glrefEnable-{-# INLINE glEnable #-}-type FuntypeFinish =- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFinish :: FunPtr FuntypeFinish -> FuntypeFinish-glrefFinish :: IORef FuntypeFinish-glrefFinish = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFinish #-}-glFinish :: FuntypeFinish-glFinish = unsafePerformIO $ readIORef glrefFinish-{-# INLINE glFinish #-}-type FuntypeFlush =- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFlush :: FunPtr FuntypeFlush -> FuntypeFlush-glrefFlush :: IORef FuntypeFlush-glrefFlush = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFlush #-}-glFlush :: FuntypeFlush-glFlush = unsafePerformIO $ readIORef glrefFlush-{-# INLINE glFlush #-}-type FuntypeBlendFunc =- GLenum ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBlendFunc :: FunPtr FuntypeBlendFunc -> FuntypeBlendFunc-glrefBlendFunc :: IORef FuntypeBlendFunc-glrefBlendFunc = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBlendFunc #-}-glBlendFunc :: FuntypeBlendFunc-glBlendFunc = unsafePerformIO $ readIORef glrefBlendFunc-{-# INLINE glBlendFunc #-}-type FuntypeLogicOp =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynLogicOp :: FunPtr FuntypeLogicOp -> FuntypeLogicOp-glrefLogicOp :: IORef FuntypeLogicOp-glrefLogicOp = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefLogicOp #-}-glLogicOp :: FuntypeLogicOp-glLogicOp = unsafePerformIO $ readIORef glrefLogicOp-{-# INLINE glLogicOp #-}-type FuntypeStencilFunc =- GLenum ->- GLint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynStencilFunc :: FunPtr FuntypeStencilFunc -> FuntypeStencilFunc-glrefStencilFunc :: IORef FuntypeStencilFunc-glrefStencilFunc = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefStencilFunc #-}-glStencilFunc :: FuntypeStencilFunc-glStencilFunc = unsafePerformIO $ readIORef glrefStencilFunc-{-# INLINE glStencilFunc #-}-type FuntypeStencilOp =- GLenum ->- GLenum ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynStencilOp :: FunPtr FuntypeStencilOp -> FuntypeStencilOp-glrefStencilOp :: IORef FuntypeStencilOp-glrefStencilOp = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefStencilOp #-}-glStencilOp :: FuntypeStencilOp-glStencilOp = unsafePerformIO $ readIORef glrefStencilOp-{-# INLINE glStencilOp #-}-type FuntypeDepthFunc =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDepthFunc :: FunPtr FuntypeDepthFunc -> FuntypeDepthFunc-glrefDepthFunc :: IORef FuntypeDepthFunc-glrefDepthFunc = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDepthFunc #-}-glDepthFunc :: FuntypeDepthFunc-glDepthFunc = unsafePerformIO $ readIORef glrefDepthFunc-{-# INLINE glDepthFunc #-}-type FuntypePixelStoref =- GLenum ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPixelStoref :: FunPtr FuntypePixelStoref -> FuntypePixelStoref-glrefPixelStoref :: IORef FuntypePixelStoref-glrefPixelStoref = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPixelStoref #-}-glPixelStoref :: FuntypePixelStoref-glPixelStoref = unsafePerformIO $ readIORef glrefPixelStoref-{-# INLINE glPixelStoref #-}-type FuntypePixelStorei =- GLenum ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPixelStorei :: FunPtr FuntypePixelStorei -> FuntypePixelStorei-glrefPixelStorei :: IORef FuntypePixelStorei-glrefPixelStorei = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPixelStorei #-}-glPixelStorei :: FuntypePixelStorei-glPixelStorei = unsafePerformIO $ readIORef glrefPixelStorei-{-# INLINE glPixelStorei #-}-type FuntypeReadBuffer =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynReadBuffer :: FunPtr FuntypeReadBuffer -> FuntypeReadBuffer-glrefReadBuffer :: IORef FuntypeReadBuffer-glrefReadBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefReadBuffer #-}-glReadBuffer :: FuntypeReadBuffer-glReadBuffer = unsafePerformIO $ readIORef glrefReadBuffer-{-# INLINE glReadBuffer #-}-type FuntypeReadPixels =- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynReadPixels :: FunPtr FuntypeReadPixels -> FuntypeReadPixels-glrefReadPixels :: IORef FuntypeReadPixels-glrefReadPixels = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefReadPixels #-}-glReadPixels :: FuntypeReadPixels-glReadPixels = unsafePerformIO $ readIORef glrefReadPixels-{-# INLINE glReadPixels #-}-type FuntypeGetBooleanv =- GLenum ->- Ptr (GLboolean) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetBooleanv :: FunPtr FuntypeGetBooleanv -> FuntypeGetBooleanv-glrefGetBooleanv :: IORef FuntypeGetBooleanv-glrefGetBooleanv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetBooleanv #-}-glGetBooleanv :: FuntypeGetBooleanv-glGetBooleanv = unsafePerformIO $ readIORef glrefGetBooleanv-{-# INLINE glGetBooleanv #-}-type FuntypeGetDoublev =- GLenum ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetDoublev :: FunPtr FuntypeGetDoublev -> FuntypeGetDoublev-glrefGetDoublev :: IORef FuntypeGetDoublev-glrefGetDoublev = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetDoublev #-}-glGetDoublev :: FuntypeGetDoublev-glGetDoublev = unsafePerformIO $ readIORef glrefGetDoublev-{-# INLINE glGetDoublev #-}-type FuntypeGetError =- IO ( GLenum )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetError :: FunPtr FuntypeGetError -> FuntypeGetError-glrefGetError :: IORef FuntypeGetError-glrefGetError = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetError #-}-glGetError :: FuntypeGetError-glGetError = unsafePerformIO $ readIORef glrefGetError-{-# INLINE glGetError #-}-type FuntypeGetFloatv =- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetFloatv :: FunPtr FuntypeGetFloatv -> FuntypeGetFloatv-glrefGetFloatv :: IORef FuntypeGetFloatv-glrefGetFloatv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetFloatv #-}-glGetFloatv :: FuntypeGetFloatv-glGetFloatv = unsafePerformIO $ readIORef glrefGetFloatv-{-# INLINE glGetFloatv #-}-type FuntypeGetIntegerv =- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetIntegerv :: FunPtr FuntypeGetIntegerv -> FuntypeGetIntegerv-glrefGetIntegerv :: IORef FuntypeGetIntegerv-glrefGetIntegerv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetIntegerv #-}-glGetIntegerv :: FuntypeGetIntegerv-glGetIntegerv = unsafePerformIO $ readIORef glrefGetIntegerv-{-# INLINE glGetIntegerv #-}-type FuntypeGetString =- GLenum ->- IO ( Ptr (GLubyte) )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetString :: FunPtr FuntypeGetString -> FuntypeGetString-glrefGetString :: IORef FuntypeGetString-glrefGetString = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetString #-}-glGetString :: FuntypeGetString-glGetString = unsafePerformIO $ readIORef glrefGetString-{-# INLINE glGetString #-}-type FuntypeGetTexImage =- GLenum ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTexImage :: FunPtr FuntypeGetTexImage -> FuntypeGetTexImage-glrefGetTexImage :: IORef FuntypeGetTexImage-glrefGetTexImage = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTexImage #-}-glGetTexImage :: FuntypeGetTexImage-glGetTexImage = unsafePerformIO $ readIORef glrefGetTexImage-{-# INLINE glGetTexImage #-}-type FuntypeGetTexParameterfv =- GLenum ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTexParameterfv :: FunPtr FuntypeGetTexParameterfv -> FuntypeGetTexParameterfv-glrefGetTexParameterfv :: IORef FuntypeGetTexParameterfv-glrefGetTexParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTexParameterfv #-}-glGetTexParameterfv :: FuntypeGetTexParameterfv-glGetTexParameterfv = unsafePerformIO $ readIORef glrefGetTexParameterfv-{-# INLINE glGetTexParameterfv #-}-type FuntypeGetTexParameteriv =- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTexParameteriv :: FunPtr FuntypeGetTexParameteriv -> FuntypeGetTexParameteriv-glrefGetTexParameteriv :: IORef FuntypeGetTexParameteriv-glrefGetTexParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTexParameteriv #-}-glGetTexParameteriv :: FuntypeGetTexParameteriv-glGetTexParameteriv = unsafePerformIO $ readIORef glrefGetTexParameteriv-{-# INLINE glGetTexParameteriv #-}-type FuntypeGetTexLevelParameterfv =- GLenum ->- GLint ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTexLevelParameterfv :: FunPtr FuntypeGetTexLevelParameterfv -> FuntypeGetTexLevelParameterfv-glrefGetTexLevelParameterfv :: IORef FuntypeGetTexLevelParameterfv-glrefGetTexLevelParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTexLevelParameterfv #-}-glGetTexLevelParameterfv :: FuntypeGetTexLevelParameterfv-glGetTexLevelParameterfv = unsafePerformIO $ readIORef glrefGetTexLevelParameterfv-{-# INLINE glGetTexLevelParameterfv #-}-type FuntypeGetTexLevelParameteriv =- GLenum ->- GLint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTexLevelParameteriv :: FunPtr FuntypeGetTexLevelParameteriv -> FuntypeGetTexLevelParameteriv-glrefGetTexLevelParameteriv :: IORef FuntypeGetTexLevelParameteriv-glrefGetTexLevelParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTexLevelParameteriv #-}-glGetTexLevelParameteriv :: FuntypeGetTexLevelParameteriv-glGetTexLevelParameteriv = unsafePerformIO $ readIORef glrefGetTexLevelParameteriv-{-# INLINE glGetTexLevelParameteriv #-}-type FuntypeIsEnabled =- GLenum ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsEnabled :: FunPtr FuntypeIsEnabled -> FuntypeIsEnabled-glrefIsEnabled :: IORef FuntypeIsEnabled-glrefIsEnabled = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsEnabled #-}-glIsEnabled :: FuntypeIsEnabled-glIsEnabled = unsafePerformIO $ readIORef glrefIsEnabled-{-# INLINE glIsEnabled #-}-type FuntypeDepthRange =- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDepthRange :: FunPtr FuntypeDepthRange -> FuntypeDepthRange-glrefDepthRange :: IORef FuntypeDepthRange-glrefDepthRange = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDepthRange #-}-glDepthRange :: FuntypeDepthRange-glDepthRange = unsafePerformIO $ readIORef glrefDepthRange-{-# INLINE glDepthRange #-}-type FuntypeViewport =- GLint ->- GLint ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynViewport :: FunPtr FuntypeViewport -> FuntypeViewport-glrefViewport :: IORef FuntypeViewport-glrefViewport = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefViewport #-}-glViewport :: FuntypeViewport-glViewport = unsafePerformIO $ readIORef glrefViewport-{-# INLINE glViewport #-}---- GL_VERSION_1_1--type FuntypeDrawArrays =- GLenum ->- GLint ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDrawArrays :: FunPtr FuntypeDrawArrays -> FuntypeDrawArrays-glrefDrawArrays :: IORef FuntypeDrawArrays-glrefDrawArrays = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDrawArrays #-}-glDrawArrays :: FuntypeDrawArrays-glDrawArrays = unsafePerformIO $ readIORef glrefDrawArrays-{-# INLINE glDrawArrays #-}-type FuntypeDrawElements =- GLenum ->- GLsizei ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDrawElements :: FunPtr FuntypeDrawElements -> FuntypeDrawElements-glrefDrawElements :: IORef FuntypeDrawElements-glrefDrawElements = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDrawElements #-}-glDrawElements :: FuntypeDrawElements-glDrawElements = unsafePerformIO $ readIORef glrefDrawElements-{-# INLINE glDrawElements #-}-type FuntypePolygonOffset =- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPolygonOffset :: FunPtr FuntypePolygonOffset -> FuntypePolygonOffset-glrefPolygonOffset :: IORef FuntypePolygonOffset-glrefPolygonOffset = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPolygonOffset #-}-glPolygonOffset :: FuntypePolygonOffset-glPolygonOffset = unsafePerformIO $ readIORef glrefPolygonOffset-{-# INLINE glPolygonOffset #-}-type FuntypeCopyTexImage1D =- GLenum ->- GLint ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyTexImage1D :: FunPtr FuntypeCopyTexImage1D -> FuntypeCopyTexImage1D-glrefCopyTexImage1D :: IORef FuntypeCopyTexImage1D-glrefCopyTexImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyTexImage1D #-}-glCopyTexImage1D :: FuntypeCopyTexImage1D-glCopyTexImage1D = unsafePerformIO $ readIORef glrefCopyTexImage1D-{-# INLINE glCopyTexImage1D #-}-type FuntypeCopyTexImage2D =- GLenum ->- GLint ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyTexImage2D :: FunPtr FuntypeCopyTexImage2D -> FuntypeCopyTexImage2D-glrefCopyTexImage2D :: IORef FuntypeCopyTexImage2D-glrefCopyTexImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyTexImage2D #-}-glCopyTexImage2D :: FuntypeCopyTexImage2D-glCopyTexImage2D = unsafePerformIO $ readIORef glrefCopyTexImage2D-{-# INLINE glCopyTexImage2D #-}-type FuntypeCopyTexSubImage1D =- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyTexSubImage1D :: FunPtr FuntypeCopyTexSubImage1D -> FuntypeCopyTexSubImage1D-glrefCopyTexSubImage1D :: IORef FuntypeCopyTexSubImage1D-glrefCopyTexSubImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyTexSubImage1D #-}-glCopyTexSubImage1D :: FuntypeCopyTexSubImage1D-glCopyTexSubImage1D = unsafePerformIO $ readIORef glrefCopyTexSubImage1D-{-# INLINE glCopyTexSubImage1D #-}-type FuntypeCopyTexSubImage2D =- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyTexSubImage2D :: FunPtr FuntypeCopyTexSubImage2D -> FuntypeCopyTexSubImage2D-glrefCopyTexSubImage2D :: IORef FuntypeCopyTexSubImage2D-glrefCopyTexSubImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyTexSubImage2D #-}-glCopyTexSubImage2D :: FuntypeCopyTexSubImage2D-glCopyTexSubImage2D = unsafePerformIO $ readIORef glrefCopyTexSubImage2D-{-# INLINE glCopyTexSubImage2D #-}-type FuntypeTexSubImage1D =- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexSubImage1D :: FunPtr FuntypeTexSubImage1D -> FuntypeTexSubImage1D-glrefTexSubImage1D :: IORef FuntypeTexSubImage1D-glrefTexSubImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexSubImage1D #-}-glTexSubImage1D :: FuntypeTexSubImage1D-glTexSubImage1D = unsafePerformIO $ readIORef glrefTexSubImage1D-{-# INLINE glTexSubImage1D #-}-type FuntypeTexSubImage2D =- GLenum ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexSubImage2D :: FunPtr FuntypeTexSubImage2D -> FuntypeTexSubImage2D-glrefTexSubImage2D :: IORef FuntypeTexSubImage2D-glrefTexSubImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexSubImage2D #-}-glTexSubImage2D :: FuntypeTexSubImage2D-glTexSubImage2D = unsafePerformIO $ readIORef glrefTexSubImage2D-{-# INLINE glTexSubImage2D #-}-type FuntypeBindTexture =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindTexture :: FunPtr FuntypeBindTexture -> FuntypeBindTexture-glrefBindTexture :: IORef FuntypeBindTexture-glrefBindTexture = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindTexture #-}-glBindTexture :: FuntypeBindTexture-glBindTexture = unsafePerformIO $ readIORef glrefBindTexture-{-# INLINE glBindTexture #-}-type FuntypeDeleteTextures =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDeleteTextures :: FunPtr FuntypeDeleteTextures -> FuntypeDeleteTextures-glrefDeleteTextures :: IORef FuntypeDeleteTextures-glrefDeleteTextures = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDeleteTextures #-}-glDeleteTextures :: FuntypeDeleteTextures-glDeleteTextures = unsafePerformIO $ readIORef glrefDeleteTextures-{-# INLINE glDeleteTextures #-}-type FuntypeGenTextures =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGenTextures :: FunPtr FuntypeGenTextures -> FuntypeGenTextures-glrefGenTextures :: IORef FuntypeGenTextures-glrefGenTextures = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGenTextures #-}-glGenTextures :: FuntypeGenTextures-glGenTextures = unsafePerformIO $ readIORef glrefGenTextures-{-# INLINE glGenTextures #-}-type FuntypeIsTexture =- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsTexture :: FunPtr FuntypeIsTexture -> FuntypeIsTexture-glrefIsTexture :: IORef FuntypeIsTexture-glrefIsTexture = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsTexture #-}-glIsTexture :: FuntypeIsTexture-glIsTexture = unsafePerformIO $ readIORef glrefIsTexture-{-# INLINE glIsTexture #-}---- GL_VERSION_1_2--type FuntypeDrawRangeElements =- GLenum ->- GLuint ->- GLuint ->- GLsizei ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDrawRangeElements :: FunPtr FuntypeDrawRangeElements -> FuntypeDrawRangeElements-glrefDrawRangeElements :: IORef FuntypeDrawRangeElements-glrefDrawRangeElements = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDrawRangeElements #-}-glDrawRangeElements :: FuntypeDrawRangeElements-glDrawRangeElements = unsafePerformIO $ readIORef glrefDrawRangeElements-{-# INLINE glDrawRangeElements #-}-type FuntypeTexImage3D =- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLsizei ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexImage3D :: FunPtr FuntypeTexImage3D -> FuntypeTexImage3D-glrefTexImage3D :: IORef FuntypeTexImage3D-glrefTexImage3D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexImage3D #-}-glTexImage3D :: FuntypeTexImage3D-glTexImage3D = unsafePerformIO $ readIORef glrefTexImage3D-{-# INLINE glTexImage3D #-}-type FuntypeTexSubImage3D =- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLsizei ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexSubImage3D :: FunPtr FuntypeTexSubImage3D -> FuntypeTexSubImage3D-glrefTexSubImage3D :: IORef FuntypeTexSubImage3D-glrefTexSubImage3D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexSubImage3D #-}-glTexSubImage3D :: FuntypeTexSubImage3D-glTexSubImage3D = unsafePerformIO $ readIORef glrefTexSubImage3D-{-# INLINE glTexSubImage3D #-}-type FuntypeCopyTexSubImage3D =- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyTexSubImage3D :: FunPtr FuntypeCopyTexSubImage3D -> FuntypeCopyTexSubImage3D-glrefCopyTexSubImage3D :: IORef FuntypeCopyTexSubImage3D-glrefCopyTexSubImage3D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyTexSubImage3D #-}-glCopyTexSubImage3D :: FuntypeCopyTexSubImage3D-glCopyTexSubImage3D = unsafePerformIO $ readIORef glrefCopyTexSubImage3D-{-# INLINE glCopyTexSubImage3D #-}---- GL_VERSION_1_3--type FuntypeActiveTexture =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynActiveTexture :: FunPtr FuntypeActiveTexture -> FuntypeActiveTexture-glrefActiveTexture :: IORef FuntypeActiveTexture-glrefActiveTexture = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefActiveTexture #-}-glActiveTexture :: FuntypeActiveTexture-glActiveTexture = unsafePerformIO $ readIORef glrefActiveTexture-{-# INLINE glActiveTexture #-}-type FuntypeSampleCoverage =- GLfloat ->- GLboolean ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynSampleCoverage :: FunPtr FuntypeSampleCoverage -> FuntypeSampleCoverage-glrefSampleCoverage :: IORef FuntypeSampleCoverage-glrefSampleCoverage = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefSampleCoverage #-}-glSampleCoverage :: FuntypeSampleCoverage-glSampleCoverage = unsafePerformIO $ readIORef glrefSampleCoverage-{-# INLINE glSampleCoverage #-}-type FuntypeCompressedTexImage3D =- GLenum ->- GLint ->- GLenum ->- GLsizei ->- GLsizei ->- GLsizei ->- GLint ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTexImage3D :: FunPtr FuntypeCompressedTexImage3D -> FuntypeCompressedTexImage3D-glrefCompressedTexImage3D :: IORef FuntypeCompressedTexImage3D-glrefCompressedTexImage3D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTexImage3D #-}-glCompressedTexImage3D :: FuntypeCompressedTexImage3D-glCompressedTexImage3D = unsafePerformIO $ readIORef glrefCompressedTexImage3D-{-# INLINE glCompressedTexImage3D #-}-type FuntypeCompressedTexImage2D =- GLenum ->- GLint ->- GLenum ->- GLsizei ->- GLsizei ->- GLint ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTexImage2D :: FunPtr FuntypeCompressedTexImage2D -> FuntypeCompressedTexImage2D-glrefCompressedTexImage2D :: IORef FuntypeCompressedTexImage2D-glrefCompressedTexImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTexImage2D #-}-glCompressedTexImage2D :: FuntypeCompressedTexImage2D-glCompressedTexImage2D = unsafePerformIO $ readIORef glrefCompressedTexImage2D-{-# INLINE glCompressedTexImage2D #-}-type FuntypeCompressedTexImage1D =- GLenum ->- GLint ->- GLenum ->- GLsizei ->- GLint ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTexImage1D :: FunPtr FuntypeCompressedTexImage1D -> FuntypeCompressedTexImage1D-glrefCompressedTexImage1D :: IORef FuntypeCompressedTexImage1D-glrefCompressedTexImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTexImage1D #-}-glCompressedTexImage1D :: FuntypeCompressedTexImage1D-glCompressedTexImage1D = unsafePerformIO $ readIORef glrefCompressedTexImage1D-{-# INLINE glCompressedTexImage1D #-}-type FuntypeCompressedTexSubImage3D =- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLsizei ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTexSubImage3D :: FunPtr FuntypeCompressedTexSubImage3D -> FuntypeCompressedTexSubImage3D-glrefCompressedTexSubImage3D :: IORef FuntypeCompressedTexSubImage3D-glrefCompressedTexSubImage3D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTexSubImage3D #-}-glCompressedTexSubImage3D :: FuntypeCompressedTexSubImage3D-glCompressedTexSubImage3D = unsafePerformIO $ readIORef glrefCompressedTexSubImage3D-{-# INLINE glCompressedTexSubImage3D #-}-type FuntypeCompressedTexSubImage2D =- GLenum ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTexSubImage2D :: FunPtr FuntypeCompressedTexSubImage2D -> FuntypeCompressedTexSubImage2D-glrefCompressedTexSubImage2D :: IORef FuntypeCompressedTexSubImage2D-glrefCompressedTexSubImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTexSubImage2D #-}-glCompressedTexSubImage2D :: FuntypeCompressedTexSubImage2D-glCompressedTexSubImage2D = unsafePerformIO $ readIORef glrefCompressedTexSubImage2D-{-# INLINE glCompressedTexSubImage2D #-}-type FuntypeCompressedTexSubImage1D =- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTexSubImage1D :: FunPtr FuntypeCompressedTexSubImage1D -> FuntypeCompressedTexSubImage1D-glrefCompressedTexSubImage1D :: IORef FuntypeCompressedTexSubImage1D-glrefCompressedTexSubImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTexSubImage1D #-}-glCompressedTexSubImage1D :: FuntypeCompressedTexSubImage1D-glCompressedTexSubImage1D = unsafePerformIO $ readIORef glrefCompressedTexSubImage1D-{-# INLINE glCompressedTexSubImage1D #-}-type FuntypeGetCompressedTexImage =- GLenum ->- GLint ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetCompressedTexImage :: FunPtr FuntypeGetCompressedTexImage -> FuntypeGetCompressedTexImage-glrefGetCompressedTexImage :: IORef FuntypeGetCompressedTexImage-glrefGetCompressedTexImage = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetCompressedTexImage #-}-glGetCompressedTexImage :: FuntypeGetCompressedTexImage-glGetCompressedTexImage = unsafePerformIO $ readIORef glrefGetCompressedTexImage-{-# INLINE glGetCompressedTexImage #-}---- GL_VERSION_1_4--type FuntypeBlendFuncSeparate =- GLenum ->- GLenum ->- GLenum ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBlendFuncSeparate :: FunPtr FuntypeBlendFuncSeparate -> FuntypeBlendFuncSeparate-glrefBlendFuncSeparate :: IORef FuntypeBlendFuncSeparate-glrefBlendFuncSeparate = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBlendFuncSeparate #-}-glBlendFuncSeparate :: FuntypeBlendFuncSeparate-glBlendFuncSeparate = unsafePerformIO $ readIORef glrefBlendFuncSeparate-{-# INLINE glBlendFuncSeparate #-}-type FuntypeMultiDrawArrays =- GLenum ->- Ptr (GLint) ->- Ptr (GLsizei) ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiDrawArrays :: FunPtr FuntypeMultiDrawArrays -> FuntypeMultiDrawArrays-glrefMultiDrawArrays :: IORef FuntypeMultiDrawArrays-glrefMultiDrawArrays = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiDrawArrays #-}-glMultiDrawArrays :: FuntypeMultiDrawArrays-glMultiDrawArrays = unsafePerformIO $ readIORef glrefMultiDrawArrays-{-# INLINE glMultiDrawArrays #-}-type FuntypeMultiDrawElements =- GLenum ->- Ptr (GLsizei) ->- GLenum ->- Ptr (Ptr ()) ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiDrawElements :: FunPtr FuntypeMultiDrawElements -> FuntypeMultiDrawElements-glrefMultiDrawElements :: IORef FuntypeMultiDrawElements-glrefMultiDrawElements = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiDrawElements #-}-glMultiDrawElements :: FuntypeMultiDrawElements-glMultiDrawElements = unsafePerformIO $ readIORef glrefMultiDrawElements-{-# INLINE glMultiDrawElements #-}-type FuntypePointParameterf =- GLenum ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPointParameterf :: FunPtr FuntypePointParameterf -> FuntypePointParameterf-glrefPointParameterf :: IORef FuntypePointParameterf-glrefPointParameterf = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPointParameterf #-}-glPointParameterf :: FuntypePointParameterf-glPointParameterf = unsafePerformIO $ readIORef glrefPointParameterf-{-# INLINE glPointParameterf #-}-type FuntypePointParameterfv =- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPointParameterfv :: FunPtr FuntypePointParameterfv -> FuntypePointParameterfv-glrefPointParameterfv :: IORef FuntypePointParameterfv-glrefPointParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPointParameterfv #-}-glPointParameterfv :: FuntypePointParameterfv-glPointParameterfv = unsafePerformIO $ readIORef glrefPointParameterfv-{-# INLINE glPointParameterfv #-}-type FuntypePointParameteri =- GLenum ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPointParameteri :: FunPtr FuntypePointParameteri -> FuntypePointParameteri-glrefPointParameteri :: IORef FuntypePointParameteri-glrefPointParameteri = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPointParameteri #-}-glPointParameteri :: FuntypePointParameteri-glPointParameteri = unsafePerformIO $ readIORef glrefPointParameteri-{-# INLINE glPointParameteri #-}-type FuntypePointParameteriv =- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPointParameteriv :: FunPtr FuntypePointParameteriv -> FuntypePointParameteriv-glrefPointParameteriv :: IORef FuntypePointParameteriv-glrefPointParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPointParameteriv #-}-glPointParameteriv :: FuntypePointParameteriv-glPointParameteriv = unsafePerformIO $ readIORef glrefPointParameteriv-{-# INLINE glPointParameteriv #-}-type FuntypeBlendColor =- GLfloat ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBlendColor :: FunPtr FuntypeBlendColor -> FuntypeBlendColor-glrefBlendColor :: IORef FuntypeBlendColor-glrefBlendColor = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBlendColor #-}-glBlendColor :: FuntypeBlendColor-glBlendColor = unsafePerformIO $ readIORef glrefBlendColor-{-# INLINE glBlendColor #-}-type FuntypeBlendEquation =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBlendEquation :: FunPtr FuntypeBlendEquation -> FuntypeBlendEquation-glrefBlendEquation :: IORef FuntypeBlendEquation-glrefBlendEquation = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBlendEquation #-}-glBlendEquation :: FuntypeBlendEquation-glBlendEquation = unsafePerformIO $ readIORef glrefBlendEquation-{-# INLINE glBlendEquation #-}---- GL_VERSION_1_5--type FuntypeGenQueries =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGenQueries :: FunPtr FuntypeGenQueries -> FuntypeGenQueries-glrefGenQueries :: IORef FuntypeGenQueries-glrefGenQueries = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGenQueries #-}-glGenQueries :: FuntypeGenQueries-glGenQueries = unsafePerformIO $ readIORef glrefGenQueries-{-# INLINE glGenQueries #-}-type FuntypeDeleteQueries =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDeleteQueries :: FunPtr FuntypeDeleteQueries -> FuntypeDeleteQueries-glrefDeleteQueries :: IORef FuntypeDeleteQueries-glrefDeleteQueries = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDeleteQueries #-}-glDeleteQueries :: FuntypeDeleteQueries-glDeleteQueries = unsafePerformIO $ readIORef glrefDeleteQueries-{-# INLINE glDeleteQueries #-}-type FuntypeIsQuery =- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsQuery :: FunPtr FuntypeIsQuery -> FuntypeIsQuery-glrefIsQuery :: IORef FuntypeIsQuery-glrefIsQuery = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsQuery #-}-glIsQuery :: FuntypeIsQuery-glIsQuery = unsafePerformIO $ readIORef glrefIsQuery-{-# INLINE glIsQuery #-}-type FuntypeBeginQuery =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBeginQuery :: FunPtr FuntypeBeginQuery -> FuntypeBeginQuery-glrefBeginQuery :: IORef FuntypeBeginQuery-glrefBeginQuery = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBeginQuery #-}-glBeginQuery :: FuntypeBeginQuery-glBeginQuery = unsafePerformIO $ readIORef glrefBeginQuery-{-# INLINE glBeginQuery #-}-type FuntypeEndQuery =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynEndQuery :: FunPtr FuntypeEndQuery -> FuntypeEndQuery-glrefEndQuery :: IORef FuntypeEndQuery-glrefEndQuery = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefEndQuery #-}-glEndQuery :: FuntypeEndQuery-glEndQuery = unsafePerformIO $ readIORef glrefEndQuery-{-# INLINE glEndQuery #-}-type FuntypeGetQueryiv =- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetQueryiv :: FunPtr FuntypeGetQueryiv -> FuntypeGetQueryiv-glrefGetQueryiv :: IORef FuntypeGetQueryiv-glrefGetQueryiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetQueryiv #-}-glGetQueryiv :: FuntypeGetQueryiv-glGetQueryiv = unsafePerformIO $ readIORef glrefGetQueryiv-{-# INLINE glGetQueryiv #-}-type FuntypeGetQueryObjectiv =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetQueryObjectiv :: FunPtr FuntypeGetQueryObjectiv -> FuntypeGetQueryObjectiv-glrefGetQueryObjectiv :: IORef FuntypeGetQueryObjectiv-glrefGetQueryObjectiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetQueryObjectiv #-}-glGetQueryObjectiv :: FuntypeGetQueryObjectiv-glGetQueryObjectiv = unsafePerformIO $ readIORef glrefGetQueryObjectiv-{-# INLINE glGetQueryObjectiv #-}-type FuntypeGetQueryObjectuiv =- GLuint ->- GLenum ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetQueryObjectuiv :: FunPtr FuntypeGetQueryObjectuiv -> FuntypeGetQueryObjectuiv-glrefGetQueryObjectuiv :: IORef FuntypeGetQueryObjectuiv-glrefGetQueryObjectuiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetQueryObjectuiv #-}-glGetQueryObjectuiv :: FuntypeGetQueryObjectuiv-glGetQueryObjectuiv = unsafePerformIO $ readIORef glrefGetQueryObjectuiv-{-# INLINE glGetQueryObjectuiv #-}-type FuntypeBindBuffer =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindBuffer :: FunPtr FuntypeBindBuffer -> FuntypeBindBuffer-glrefBindBuffer :: IORef FuntypeBindBuffer-glrefBindBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindBuffer #-}-glBindBuffer :: FuntypeBindBuffer-glBindBuffer = unsafePerformIO $ readIORef glrefBindBuffer-{-# INLINE glBindBuffer #-}-type FuntypeDeleteBuffers =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDeleteBuffers :: FunPtr FuntypeDeleteBuffers -> FuntypeDeleteBuffers-glrefDeleteBuffers :: IORef FuntypeDeleteBuffers-glrefDeleteBuffers = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDeleteBuffers #-}-glDeleteBuffers :: FuntypeDeleteBuffers-glDeleteBuffers = unsafePerformIO $ readIORef glrefDeleteBuffers-{-# INLINE glDeleteBuffers #-}-type FuntypeGenBuffers =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGenBuffers :: FunPtr FuntypeGenBuffers -> FuntypeGenBuffers-glrefGenBuffers :: IORef FuntypeGenBuffers-glrefGenBuffers = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGenBuffers #-}-glGenBuffers :: FuntypeGenBuffers-glGenBuffers = unsafePerformIO $ readIORef glrefGenBuffers-{-# INLINE glGenBuffers #-}-type FuntypeIsBuffer =- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsBuffer :: FunPtr FuntypeIsBuffer -> FuntypeIsBuffer-glrefIsBuffer :: IORef FuntypeIsBuffer-glrefIsBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsBuffer #-}-glIsBuffer :: FuntypeIsBuffer-glIsBuffer = unsafePerformIO $ readIORef glrefIsBuffer-{-# INLINE glIsBuffer #-}-type FuntypeBufferData =- GLenum ->- GLsizeiptr ->- Ptr () ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBufferData :: FunPtr FuntypeBufferData -> FuntypeBufferData-glrefBufferData :: IORef FuntypeBufferData-glrefBufferData = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBufferData #-}-glBufferData :: FuntypeBufferData-glBufferData = unsafePerformIO $ readIORef glrefBufferData-{-# INLINE glBufferData #-}-type FuntypeBufferSubData =- GLenum ->- GLintptr ->- GLsizeiptr ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBufferSubData :: FunPtr FuntypeBufferSubData -> FuntypeBufferSubData-glrefBufferSubData :: IORef FuntypeBufferSubData-glrefBufferSubData = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBufferSubData #-}-glBufferSubData :: FuntypeBufferSubData-glBufferSubData = unsafePerformIO $ readIORef glrefBufferSubData-{-# INLINE glBufferSubData #-}-type FuntypeGetBufferSubData =- GLenum ->- GLintptr ->- GLsizeiptr ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetBufferSubData :: FunPtr FuntypeGetBufferSubData -> FuntypeGetBufferSubData-glrefGetBufferSubData :: IORef FuntypeGetBufferSubData-glrefGetBufferSubData = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetBufferSubData #-}-glGetBufferSubData :: FuntypeGetBufferSubData-glGetBufferSubData = unsafePerformIO $ readIORef glrefGetBufferSubData-{-# INLINE glGetBufferSubData #-}-type FuntypeMapBuffer =- GLenum ->- GLenum ->- IO ( Ptr () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMapBuffer :: FunPtr FuntypeMapBuffer -> FuntypeMapBuffer-glrefMapBuffer :: IORef FuntypeMapBuffer-glrefMapBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMapBuffer #-}-glMapBuffer :: FuntypeMapBuffer-glMapBuffer = unsafePerformIO $ readIORef glrefMapBuffer-{-# INLINE glMapBuffer #-}-type FuntypeUnmapBuffer =- GLenum ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUnmapBuffer :: FunPtr FuntypeUnmapBuffer -> FuntypeUnmapBuffer-glrefUnmapBuffer :: IORef FuntypeUnmapBuffer-glrefUnmapBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUnmapBuffer #-}-glUnmapBuffer :: FuntypeUnmapBuffer-glUnmapBuffer = unsafePerformIO $ readIORef glrefUnmapBuffer-{-# INLINE glUnmapBuffer #-}-type FuntypeGetBufferParameteriv =- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetBufferParameteriv :: FunPtr FuntypeGetBufferParameteriv -> FuntypeGetBufferParameteriv-glrefGetBufferParameteriv :: IORef FuntypeGetBufferParameteriv-glrefGetBufferParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetBufferParameteriv #-}-glGetBufferParameteriv :: FuntypeGetBufferParameteriv-glGetBufferParameteriv = unsafePerformIO $ readIORef glrefGetBufferParameteriv-{-# INLINE glGetBufferParameteriv #-}-type FuntypeGetBufferPointerv =- GLenum ->- GLenum ->- Ptr (Ptr ()) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetBufferPointerv :: FunPtr FuntypeGetBufferPointerv -> FuntypeGetBufferPointerv-glrefGetBufferPointerv :: IORef FuntypeGetBufferPointerv-glrefGetBufferPointerv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetBufferPointerv #-}-glGetBufferPointerv :: FuntypeGetBufferPointerv-glGetBufferPointerv = unsafePerformIO $ readIORef glrefGetBufferPointerv-{-# INLINE glGetBufferPointerv #-}---- GL_VERSION_2_0--type FuntypeBlendEquationSeparate =- GLenum ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBlendEquationSeparate :: FunPtr FuntypeBlendEquationSeparate -> FuntypeBlendEquationSeparate-glrefBlendEquationSeparate :: IORef FuntypeBlendEquationSeparate-glrefBlendEquationSeparate = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBlendEquationSeparate #-}-glBlendEquationSeparate :: FuntypeBlendEquationSeparate-glBlendEquationSeparate = unsafePerformIO $ readIORef glrefBlendEquationSeparate-{-# INLINE glBlendEquationSeparate #-}-type FuntypeDrawBuffers =- GLsizei ->- Ptr (GLenum) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDrawBuffers :: FunPtr FuntypeDrawBuffers -> FuntypeDrawBuffers-glrefDrawBuffers :: IORef FuntypeDrawBuffers-glrefDrawBuffers = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDrawBuffers #-}-glDrawBuffers :: FuntypeDrawBuffers-glDrawBuffers = unsafePerformIO $ readIORef glrefDrawBuffers-{-# INLINE glDrawBuffers #-}-type FuntypeStencilOpSeparate =- GLenum ->- GLenum ->- GLenum ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynStencilOpSeparate :: FunPtr FuntypeStencilOpSeparate -> FuntypeStencilOpSeparate-glrefStencilOpSeparate :: IORef FuntypeStencilOpSeparate-glrefStencilOpSeparate = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefStencilOpSeparate #-}-glStencilOpSeparate :: FuntypeStencilOpSeparate-glStencilOpSeparate = unsafePerformIO $ readIORef glrefStencilOpSeparate-{-# INLINE glStencilOpSeparate #-}-type FuntypeStencilFuncSeparate =- GLenum ->- GLenum ->- GLint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynStencilFuncSeparate :: FunPtr FuntypeStencilFuncSeparate -> FuntypeStencilFuncSeparate-glrefStencilFuncSeparate :: IORef FuntypeStencilFuncSeparate-glrefStencilFuncSeparate = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefStencilFuncSeparate #-}-glStencilFuncSeparate :: FuntypeStencilFuncSeparate-glStencilFuncSeparate = unsafePerformIO $ readIORef glrefStencilFuncSeparate-{-# INLINE glStencilFuncSeparate #-}-type FuntypeStencilMaskSeparate =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynStencilMaskSeparate :: FunPtr FuntypeStencilMaskSeparate -> FuntypeStencilMaskSeparate-glrefStencilMaskSeparate :: IORef FuntypeStencilMaskSeparate-glrefStencilMaskSeparate = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefStencilMaskSeparate #-}-glStencilMaskSeparate :: FuntypeStencilMaskSeparate-glStencilMaskSeparate = unsafePerformIO $ readIORef glrefStencilMaskSeparate-{-# INLINE glStencilMaskSeparate #-}-type FuntypeAttachShader =- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynAttachShader :: FunPtr FuntypeAttachShader -> FuntypeAttachShader-glrefAttachShader :: IORef FuntypeAttachShader-glrefAttachShader = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefAttachShader #-}-glAttachShader :: FuntypeAttachShader-glAttachShader = unsafePerformIO $ readIORef glrefAttachShader-{-# INLINE glAttachShader #-}-type FuntypeBindAttribLocation =- GLuint ->- GLuint ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindAttribLocation :: FunPtr FuntypeBindAttribLocation -> FuntypeBindAttribLocation-glrefBindAttribLocation :: IORef FuntypeBindAttribLocation-glrefBindAttribLocation = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindAttribLocation #-}-glBindAttribLocation :: FuntypeBindAttribLocation-glBindAttribLocation = unsafePerformIO $ readIORef glrefBindAttribLocation-{-# INLINE glBindAttribLocation #-}-type FuntypeCompileShader =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompileShader :: FunPtr FuntypeCompileShader -> FuntypeCompileShader-glrefCompileShader :: IORef FuntypeCompileShader-glrefCompileShader = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompileShader #-}-glCompileShader :: FuntypeCompileShader-glCompileShader = unsafePerformIO $ readIORef glrefCompileShader-{-# INLINE glCompileShader #-}-type FuntypeCreateProgram =- IO ( GLuint )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCreateProgram :: FunPtr FuntypeCreateProgram -> FuntypeCreateProgram-glrefCreateProgram :: IORef FuntypeCreateProgram-glrefCreateProgram = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCreateProgram #-}-glCreateProgram :: FuntypeCreateProgram-glCreateProgram = unsafePerformIO $ readIORef glrefCreateProgram-{-# INLINE glCreateProgram #-}-type FuntypeCreateShader =- GLenum ->- IO ( GLuint )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCreateShader :: FunPtr FuntypeCreateShader -> FuntypeCreateShader-glrefCreateShader :: IORef FuntypeCreateShader-glrefCreateShader = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCreateShader #-}-glCreateShader :: FuntypeCreateShader-glCreateShader = unsafePerformIO $ readIORef glrefCreateShader-{-# INLINE glCreateShader #-}-type FuntypeDeleteProgram =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDeleteProgram :: FunPtr FuntypeDeleteProgram -> FuntypeDeleteProgram-glrefDeleteProgram :: IORef FuntypeDeleteProgram-glrefDeleteProgram = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDeleteProgram #-}-glDeleteProgram :: FuntypeDeleteProgram-glDeleteProgram = unsafePerformIO $ readIORef glrefDeleteProgram-{-# INLINE glDeleteProgram #-}-type FuntypeDeleteShader =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDeleteShader :: FunPtr FuntypeDeleteShader -> FuntypeDeleteShader-glrefDeleteShader :: IORef FuntypeDeleteShader-glrefDeleteShader = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDeleteShader #-}-glDeleteShader :: FuntypeDeleteShader-glDeleteShader = unsafePerformIO $ readIORef glrefDeleteShader-{-# INLINE glDeleteShader #-}-type FuntypeDetachShader =- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDetachShader :: FunPtr FuntypeDetachShader -> FuntypeDetachShader-glrefDetachShader :: IORef FuntypeDetachShader-glrefDetachShader = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDetachShader #-}-glDetachShader :: FuntypeDetachShader-glDetachShader = unsafePerformIO $ readIORef glrefDetachShader-{-# INLINE glDetachShader #-}-type FuntypeDisableVertexAttribArray =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDisableVertexAttribArray :: FunPtr FuntypeDisableVertexAttribArray -> FuntypeDisableVertexAttribArray-glrefDisableVertexAttribArray :: IORef FuntypeDisableVertexAttribArray-glrefDisableVertexAttribArray = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDisableVertexAttribArray #-}-glDisableVertexAttribArray :: FuntypeDisableVertexAttribArray-glDisableVertexAttribArray = unsafePerformIO $ readIORef glrefDisableVertexAttribArray-{-# INLINE glDisableVertexAttribArray #-}-type FuntypeEnableVertexAttribArray =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynEnableVertexAttribArray :: FunPtr FuntypeEnableVertexAttribArray -> FuntypeEnableVertexAttribArray-glrefEnableVertexAttribArray :: IORef FuntypeEnableVertexAttribArray-glrefEnableVertexAttribArray = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefEnableVertexAttribArray #-}-glEnableVertexAttribArray :: FuntypeEnableVertexAttribArray-glEnableVertexAttribArray = unsafePerformIO $ readIORef glrefEnableVertexAttribArray-{-# INLINE glEnableVertexAttribArray #-}-type FuntypeGetActiveAttrib =- GLuint ->- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLint) ->- Ptr (GLenum) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetActiveAttrib :: FunPtr FuntypeGetActiveAttrib -> FuntypeGetActiveAttrib-glrefGetActiveAttrib :: IORef FuntypeGetActiveAttrib-glrefGetActiveAttrib = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetActiveAttrib #-}-glGetActiveAttrib :: FuntypeGetActiveAttrib-glGetActiveAttrib = unsafePerformIO $ readIORef glrefGetActiveAttrib-{-# INLINE glGetActiveAttrib #-}-type FuntypeGetActiveUniform =- GLuint ->- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLint) ->- Ptr (GLenum) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetActiveUniform :: FunPtr FuntypeGetActiveUniform -> FuntypeGetActiveUniform-glrefGetActiveUniform :: IORef FuntypeGetActiveUniform-glrefGetActiveUniform = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetActiveUniform #-}-glGetActiveUniform :: FuntypeGetActiveUniform-glGetActiveUniform = unsafePerformIO $ readIORef glrefGetActiveUniform-{-# INLINE glGetActiveUniform #-}-type FuntypeGetAttachedShaders =- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetAttachedShaders :: FunPtr FuntypeGetAttachedShaders -> FuntypeGetAttachedShaders-glrefGetAttachedShaders :: IORef FuntypeGetAttachedShaders-glrefGetAttachedShaders = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetAttachedShaders #-}-glGetAttachedShaders :: FuntypeGetAttachedShaders-glGetAttachedShaders = unsafePerformIO $ readIORef glrefGetAttachedShaders-{-# INLINE glGetAttachedShaders #-}-type FuntypeGetAttribLocation =- GLuint ->- Ptr (GLchar) ->- IO ( GLint )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetAttribLocation :: FunPtr FuntypeGetAttribLocation -> FuntypeGetAttribLocation-glrefGetAttribLocation :: IORef FuntypeGetAttribLocation-glrefGetAttribLocation = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetAttribLocation #-}-glGetAttribLocation :: FuntypeGetAttribLocation-glGetAttribLocation = unsafePerformIO $ readIORef glrefGetAttribLocation-{-# INLINE glGetAttribLocation #-}-type FuntypeGetProgramiv =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetProgramiv :: FunPtr FuntypeGetProgramiv -> FuntypeGetProgramiv-glrefGetProgramiv :: IORef FuntypeGetProgramiv-glrefGetProgramiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetProgramiv #-}-glGetProgramiv :: FuntypeGetProgramiv-glGetProgramiv = unsafePerformIO $ readIORef glrefGetProgramiv-{-# INLINE glGetProgramiv #-}-type FuntypeGetProgramInfoLog =- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetProgramInfoLog :: FunPtr FuntypeGetProgramInfoLog -> FuntypeGetProgramInfoLog-glrefGetProgramInfoLog :: IORef FuntypeGetProgramInfoLog-glrefGetProgramInfoLog = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetProgramInfoLog #-}-glGetProgramInfoLog :: FuntypeGetProgramInfoLog-glGetProgramInfoLog = unsafePerformIO $ readIORef glrefGetProgramInfoLog-{-# INLINE glGetProgramInfoLog #-}-type FuntypeGetShaderiv =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetShaderiv :: FunPtr FuntypeGetShaderiv -> FuntypeGetShaderiv-glrefGetShaderiv :: IORef FuntypeGetShaderiv-glrefGetShaderiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetShaderiv #-}-glGetShaderiv :: FuntypeGetShaderiv-glGetShaderiv = unsafePerformIO $ readIORef glrefGetShaderiv-{-# INLINE glGetShaderiv #-}-type FuntypeGetShaderInfoLog =- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetShaderInfoLog :: FunPtr FuntypeGetShaderInfoLog -> FuntypeGetShaderInfoLog-glrefGetShaderInfoLog :: IORef FuntypeGetShaderInfoLog-glrefGetShaderInfoLog = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetShaderInfoLog #-}-glGetShaderInfoLog :: FuntypeGetShaderInfoLog-glGetShaderInfoLog = unsafePerformIO $ readIORef glrefGetShaderInfoLog-{-# INLINE glGetShaderInfoLog #-}-type FuntypeGetShaderSource =- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetShaderSource :: FunPtr FuntypeGetShaderSource -> FuntypeGetShaderSource-glrefGetShaderSource :: IORef FuntypeGetShaderSource-glrefGetShaderSource = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetShaderSource #-}-glGetShaderSource :: FuntypeGetShaderSource-glGetShaderSource = unsafePerformIO $ readIORef glrefGetShaderSource-{-# INLINE glGetShaderSource #-}-type FuntypeGetUniformLocation =- GLuint ->- Ptr (GLchar) ->- IO ( GLint )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetUniformLocation :: FunPtr FuntypeGetUniformLocation -> FuntypeGetUniformLocation-glrefGetUniformLocation :: IORef FuntypeGetUniformLocation-glrefGetUniformLocation = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetUniformLocation #-}-glGetUniformLocation :: FuntypeGetUniformLocation-glGetUniformLocation = unsafePerformIO $ readIORef glrefGetUniformLocation-{-# INLINE glGetUniformLocation #-}-type FuntypeGetUniformfv =- GLuint ->- GLint ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetUniformfv :: FunPtr FuntypeGetUniformfv -> FuntypeGetUniformfv-glrefGetUniformfv :: IORef FuntypeGetUniformfv-glrefGetUniformfv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetUniformfv #-}-glGetUniformfv :: FuntypeGetUniformfv-glGetUniformfv = unsafePerformIO $ readIORef glrefGetUniformfv-{-# INLINE glGetUniformfv #-}-type FuntypeGetUniformiv =- GLuint ->- GLint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetUniformiv :: FunPtr FuntypeGetUniformiv -> FuntypeGetUniformiv-glrefGetUniformiv :: IORef FuntypeGetUniformiv-glrefGetUniformiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetUniformiv #-}-glGetUniformiv :: FuntypeGetUniformiv-glGetUniformiv = unsafePerformIO $ readIORef glrefGetUniformiv-{-# INLINE glGetUniformiv #-}-type FuntypeGetVertexAttribdv =- GLuint ->- GLenum ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetVertexAttribdv :: FunPtr FuntypeGetVertexAttribdv -> FuntypeGetVertexAttribdv-glrefGetVertexAttribdv :: IORef FuntypeGetVertexAttribdv-glrefGetVertexAttribdv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetVertexAttribdv #-}-glGetVertexAttribdv :: FuntypeGetVertexAttribdv-glGetVertexAttribdv = unsafePerformIO $ readIORef glrefGetVertexAttribdv-{-# INLINE glGetVertexAttribdv #-}-type FuntypeGetVertexAttribfv =- GLuint ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetVertexAttribfv :: FunPtr FuntypeGetVertexAttribfv -> FuntypeGetVertexAttribfv-glrefGetVertexAttribfv :: IORef FuntypeGetVertexAttribfv-glrefGetVertexAttribfv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetVertexAttribfv #-}-glGetVertexAttribfv :: FuntypeGetVertexAttribfv-glGetVertexAttribfv = unsafePerformIO $ readIORef glrefGetVertexAttribfv-{-# INLINE glGetVertexAttribfv #-}-type FuntypeGetVertexAttribiv =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetVertexAttribiv :: FunPtr FuntypeGetVertexAttribiv -> FuntypeGetVertexAttribiv-glrefGetVertexAttribiv :: IORef FuntypeGetVertexAttribiv-glrefGetVertexAttribiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetVertexAttribiv #-}-glGetVertexAttribiv :: FuntypeGetVertexAttribiv-glGetVertexAttribiv = unsafePerformIO $ readIORef glrefGetVertexAttribiv-{-# INLINE glGetVertexAttribiv #-}-type FuntypeGetVertexAttribPointerv =- GLuint ->- GLenum ->- Ptr (Ptr ()) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetVertexAttribPointerv :: FunPtr FuntypeGetVertexAttribPointerv -> FuntypeGetVertexAttribPointerv-glrefGetVertexAttribPointerv :: IORef FuntypeGetVertexAttribPointerv-glrefGetVertexAttribPointerv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetVertexAttribPointerv #-}-glGetVertexAttribPointerv :: FuntypeGetVertexAttribPointerv-glGetVertexAttribPointerv = unsafePerformIO $ readIORef glrefGetVertexAttribPointerv-{-# INLINE glGetVertexAttribPointerv #-}-type FuntypeIsProgram =- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsProgram :: FunPtr FuntypeIsProgram -> FuntypeIsProgram-glrefIsProgram :: IORef FuntypeIsProgram-glrefIsProgram = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsProgram #-}-glIsProgram :: FuntypeIsProgram-glIsProgram = unsafePerformIO $ readIORef glrefIsProgram-{-# INLINE glIsProgram #-}-type FuntypeIsShader =- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsShader :: FunPtr FuntypeIsShader -> FuntypeIsShader-glrefIsShader :: IORef FuntypeIsShader-glrefIsShader = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsShader #-}-glIsShader :: FuntypeIsShader-glIsShader = unsafePerformIO $ readIORef glrefIsShader-{-# INLINE glIsShader #-}-type FuntypeLinkProgram =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynLinkProgram :: FunPtr FuntypeLinkProgram -> FuntypeLinkProgram-glrefLinkProgram :: IORef FuntypeLinkProgram-glrefLinkProgram = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefLinkProgram #-}-glLinkProgram :: FuntypeLinkProgram-glLinkProgram = unsafePerformIO $ readIORef glrefLinkProgram-{-# INLINE glLinkProgram #-}-type FuntypeShaderSource =- GLuint ->- GLsizei ->- Ptr (Ptr (GLchar)) ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynShaderSource :: FunPtr FuntypeShaderSource -> FuntypeShaderSource-glrefShaderSource :: IORef FuntypeShaderSource-glrefShaderSource = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefShaderSource #-}-glShaderSource :: FuntypeShaderSource-glShaderSource = unsafePerformIO $ readIORef glrefShaderSource-{-# INLINE glShaderSource #-}-type FuntypeUseProgram =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUseProgram :: FunPtr FuntypeUseProgram -> FuntypeUseProgram-glrefUseProgram :: IORef FuntypeUseProgram-glrefUseProgram = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUseProgram #-}-glUseProgram :: FuntypeUseProgram-glUseProgram = unsafePerformIO $ readIORef glrefUseProgram-{-# INLINE glUseProgram #-}-type FuntypeUniform1f =- GLint ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform1f :: FunPtr FuntypeUniform1f -> FuntypeUniform1f-glrefUniform1f :: IORef FuntypeUniform1f-glrefUniform1f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform1f #-}-glUniform1f :: FuntypeUniform1f-glUniform1f = unsafePerformIO $ readIORef glrefUniform1f-{-# INLINE glUniform1f #-}-type FuntypeUniform2f =- GLint ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform2f :: FunPtr FuntypeUniform2f -> FuntypeUniform2f-glrefUniform2f :: IORef FuntypeUniform2f-glrefUniform2f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform2f #-}-glUniform2f :: FuntypeUniform2f-glUniform2f = unsafePerformIO $ readIORef glrefUniform2f-{-# INLINE glUniform2f #-}-type FuntypeUniform3f =- GLint ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform3f :: FunPtr FuntypeUniform3f -> FuntypeUniform3f-glrefUniform3f :: IORef FuntypeUniform3f-glrefUniform3f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform3f #-}-glUniform3f :: FuntypeUniform3f-glUniform3f = unsafePerformIO $ readIORef glrefUniform3f-{-# INLINE glUniform3f #-}-type FuntypeUniform4f =- GLint ->- GLfloat ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform4f :: FunPtr FuntypeUniform4f -> FuntypeUniform4f-glrefUniform4f :: IORef FuntypeUniform4f-glrefUniform4f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform4f #-}-glUniform4f :: FuntypeUniform4f-glUniform4f = unsafePerformIO $ readIORef glrefUniform4f-{-# INLINE glUniform4f #-}-type FuntypeUniform1i =- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform1i :: FunPtr FuntypeUniform1i -> FuntypeUniform1i-glrefUniform1i :: IORef FuntypeUniform1i-glrefUniform1i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform1i #-}-glUniform1i :: FuntypeUniform1i-glUniform1i = unsafePerformIO $ readIORef glrefUniform1i-{-# INLINE glUniform1i #-}-type FuntypeUniform2i =- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform2i :: FunPtr FuntypeUniform2i -> FuntypeUniform2i-glrefUniform2i :: IORef FuntypeUniform2i-glrefUniform2i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform2i #-}-glUniform2i :: FuntypeUniform2i-glUniform2i = unsafePerformIO $ readIORef glrefUniform2i-{-# INLINE glUniform2i #-}-type FuntypeUniform3i =- GLint ->- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform3i :: FunPtr FuntypeUniform3i -> FuntypeUniform3i-glrefUniform3i :: IORef FuntypeUniform3i-glrefUniform3i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform3i #-}-glUniform3i :: FuntypeUniform3i-glUniform3i = unsafePerformIO $ readIORef glrefUniform3i-{-# INLINE glUniform3i #-}-type FuntypeUniform4i =- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform4i :: FunPtr FuntypeUniform4i -> FuntypeUniform4i-glrefUniform4i :: IORef FuntypeUniform4i-glrefUniform4i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform4i #-}-glUniform4i :: FuntypeUniform4i-glUniform4i = unsafePerformIO $ readIORef glrefUniform4i-{-# INLINE glUniform4i #-}-type FuntypeUniform1fv =- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform1fv :: FunPtr FuntypeUniform1fv -> FuntypeUniform1fv-glrefUniform1fv :: IORef FuntypeUniform1fv-glrefUniform1fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform1fv #-}-glUniform1fv :: FuntypeUniform1fv-glUniform1fv = unsafePerformIO $ readIORef glrefUniform1fv-{-# INLINE glUniform1fv #-}-type FuntypeUniform2fv =- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform2fv :: FunPtr FuntypeUniform2fv -> FuntypeUniform2fv-glrefUniform2fv :: IORef FuntypeUniform2fv-glrefUniform2fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform2fv #-}-glUniform2fv :: FuntypeUniform2fv-glUniform2fv = unsafePerformIO $ readIORef glrefUniform2fv-{-# INLINE glUniform2fv #-}-type FuntypeUniform3fv =- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform3fv :: FunPtr FuntypeUniform3fv -> FuntypeUniform3fv-glrefUniform3fv :: IORef FuntypeUniform3fv-glrefUniform3fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform3fv #-}-glUniform3fv :: FuntypeUniform3fv-glUniform3fv = unsafePerformIO $ readIORef glrefUniform3fv-{-# INLINE glUniform3fv #-}-type FuntypeUniform4fv =- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform4fv :: FunPtr FuntypeUniform4fv -> FuntypeUniform4fv-glrefUniform4fv :: IORef FuntypeUniform4fv-glrefUniform4fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform4fv #-}-glUniform4fv :: FuntypeUniform4fv-glUniform4fv = unsafePerformIO $ readIORef glrefUniform4fv-{-# INLINE glUniform4fv #-}-type FuntypeUniform1iv =- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform1iv :: FunPtr FuntypeUniform1iv -> FuntypeUniform1iv-glrefUniform1iv :: IORef FuntypeUniform1iv-glrefUniform1iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform1iv #-}-glUniform1iv :: FuntypeUniform1iv-glUniform1iv = unsafePerformIO $ readIORef glrefUniform1iv-{-# INLINE glUniform1iv #-}-type FuntypeUniform2iv =- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform2iv :: FunPtr FuntypeUniform2iv -> FuntypeUniform2iv-glrefUniform2iv :: IORef FuntypeUniform2iv-glrefUniform2iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform2iv #-}-glUniform2iv :: FuntypeUniform2iv-glUniform2iv = unsafePerformIO $ readIORef glrefUniform2iv-{-# INLINE glUniform2iv #-}-type FuntypeUniform3iv =- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform3iv :: FunPtr FuntypeUniform3iv -> FuntypeUniform3iv-glrefUniform3iv :: IORef FuntypeUniform3iv-glrefUniform3iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform3iv #-}-glUniform3iv :: FuntypeUniform3iv-glUniform3iv = unsafePerformIO $ readIORef glrefUniform3iv-{-# INLINE glUniform3iv #-}-type FuntypeUniform4iv =- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform4iv :: FunPtr FuntypeUniform4iv -> FuntypeUniform4iv-glrefUniform4iv :: IORef FuntypeUniform4iv-glrefUniform4iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform4iv #-}-glUniform4iv :: FuntypeUniform4iv-glUniform4iv = unsafePerformIO $ readIORef glrefUniform4iv-{-# INLINE glUniform4iv #-}-type FuntypeUniformMatrix2fv =- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniformMatrix2fv :: FunPtr FuntypeUniformMatrix2fv -> FuntypeUniformMatrix2fv-glrefUniformMatrix2fv :: IORef FuntypeUniformMatrix2fv-glrefUniformMatrix2fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniformMatrix2fv #-}-glUniformMatrix2fv :: FuntypeUniformMatrix2fv-glUniformMatrix2fv = unsafePerformIO $ readIORef glrefUniformMatrix2fv-{-# INLINE glUniformMatrix2fv #-}-type FuntypeUniformMatrix3fv =- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniformMatrix3fv :: FunPtr FuntypeUniformMatrix3fv -> FuntypeUniformMatrix3fv-glrefUniformMatrix3fv :: IORef FuntypeUniformMatrix3fv-glrefUniformMatrix3fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniformMatrix3fv #-}-glUniformMatrix3fv :: FuntypeUniformMatrix3fv-glUniformMatrix3fv = unsafePerformIO $ readIORef glrefUniformMatrix3fv-{-# INLINE glUniformMatrix3fv #-}-type FuntypeUniformMatrix4fv =- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniformMatrix4fv :: FunPtr FuntypeUniformMatrix4fv -> FuntypeUniformMatrix4fv-glrefUniformMatrix4fv :: IORef FuntypeUniformMatrix4fv-glrefUniformMatrix4fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniformMatrix4fv #-}-glUniformMatrix4fv :: FuntypeUniformMatrix4fv-glUniformMatrix4fv = unsafePerformIO $ readIORef glrefUniformMatrix4fv-{-# INLINE glUniformMatrix4fv #-}-type FuntypeValidateProgram =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynValidateProgram :: FunPtr FuntypeValidateProgram -> FuntypeValidateProgram-glrefValidateProgram :: IORef FuntypeValidateProgram-glrefValidateProgram = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefValidateProgram #-}-glValidateProgram :: FuntypeValidateProgram-glValidateProgram = unsafePerformIO $ readIORef glrefValidateProgram-{-# INLINE glValidateProgram #-}-type FuntypeVertexAttrib1d =- GLuint ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib1d :: FunPtr FuntypeVertexAttrib1d -> FuntypeVertexAttrib1d-glrefVertexAttrib1d :: IORef FuntypeVertexAttrib1d-glrefVertexAttrib1d = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib1d #-}-glVertexAttrib1d :: FuntypeVertexAttrib1d-glVertexAttrib1d = unsafePerformIO $ readIORef glrefVertexAttrib1d-{-# INLINE glVertexAttrib1d #-}-type FuntypeVertexAttrib1dv =- GLuint ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib1dv :: FunPtr FuntypeVertexAttrib1dv -> FuntypeVertexAttrib1dv-glrefVertexAttrib1dv :: IORef FuntypeVertexAttrib1dv-glrefVertexAttrib1dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib1dv #-}-glVertexAttrib1dv :: FuntypeVertexAttrib1dv-glVertexAttrib1dv = unsafePerformIO $ readIORef glrefVertexAttrib1dv-{-# INLINE glVertexAttrib1dv #-}-type FuntypeVertexAttrib1f =- GLuint ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib1f :: FunPtr FuntypeVertexAttrib1f -> FuntypeVertexAttrib1f-glrefVertexAttrib1f :: IORef FuntypeVertexAttrib1f-glrefVertexAttrib1f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib1f #-}-glVertexAttrib1f :: FuntypeVertexAttrib1f-glVertexAttrib1f = unsafePerformIO $ readIORef glrefVertexAttrib1f-{-# INLINE glVertexAttrib1f #-}-type FuntypeVertexAttrib1fv =- GLuint ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib1fv :: FunPtr FuntypeVertexAttrib1fv -> FuntypeVertexAttrib1fv-glrefVertexAttrib1fv :: IORef FuntypeVertexAttrib1fv-glrefVertexAttrib1fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib1fv #-}-glVertexAttrib1fv :: FuntypeVertexAttrib1fv-glVertexAttrib1fv = unsafePerformIO $ readIORef glrefVertexAttrib1fv-{-# INLINE glVertexAttrib1fv #-}-type FuntypeVertexAttrib1s =- GLuint ->- GLshort ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib1s :: FunPtr FuntypeVertexAttrib1s -> FuntypeVertexAttrib1s-glrefVertexAttrib1s :: IORef FuntypeVertexAttrib1s-glrefVertexAttrib1s = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib1s #-}-glVertexAttrib1s :: FuntypeVertexAttrib1s-glVertexAttrib1s = unsafePerformIO $ readIORef glrefVertexAttrib1s-{-# INLINE glVertexAttrib1s #-}-type FuntypeVertexAttrib1sv =- GLuint ->- Ptr (GLshort) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib1sv :: FunPtr FuntypeVertexAttrib1sv -> FuntypeVertexAttrib1sv-glrefVertexAttrib1sv :: IORef FuntypeVertexAttrib1sv-glrefVertexAttrib1sv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib1sv #-}-glVertexAttrib1sv :: FuntypeVertexAttrib1sv-glVertexAttrib1sv = unsafePerformIO $ readIORef glrefVertexAttrib1sv-{-# INLINE glVertexAttrib1sv #-}-type FuntypeVertexAttrib2d =- GLuint ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib2d :: FunPtr FuntypeVertexAttrib2d -> FuntypeVertexAttrib2d-glrefVertexAttrib2d :: IORef FuntypeVertexAttrib2d-glrefVertexAttrib2d = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib2d #-}-glVertexAttrib2d :: FuntypeVertexAttrib2d-glVertexAttrib2d = unsafePerformIO $ readIORef glrefVertexAttrib2d-{-# INLINE glVertexAttrib2d #-}-type FuntypeVertexAttrib2dv =- GLuint ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib2dv :: FunPtr FuntypeVertexAttrib2dv -> FuntypeVertexAttrib2dv-glrefVertexAttrib2dv :: IORef FuntypeVertexAttrib2dv-glrefVertexAttrib2dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib2dv #-}-glVertexAttrib2dv :: FuntypeVertexAttrib2dv-glVertexAttrib2dv = unsafePerformIO $ readIORef glrefVertexAttrib2dv-{-# INLINE glVertexAttrib2dv #-}-type FuntypeVertexAttrib2f =- GLuint ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib2f :: FunPtr FuntypeVertexAttrib2f -> FuntypeVertexAttrib2f-glrefVertexAttrib2f :: IORef FuntypeVertexAttrib2f-glrefVertexAttrib2f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib2f #-}-glVertexAttrib2f :: FuntypeVertexAttrib2f-glVertexAttrib2f = unsafePerformIO $ readIORef glrefVertexAttrib2f-{-# INLINE glVertexAttrib2f #-}-type FuntypeVertexAttrib2fv =- GLuint ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib2fv :: FunPtr FuntypeVertexAttrib2fv -> FuntypeVertexAttrib2fv-glrefVertexAttrib2fv :: IORef FuntypeVertexAttrib2fv-glrefVertexAttrib2fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib2fv #-}-glVertexAttrib2fv :: FuntypeVertexAttrib2fv-glVertexAttrib2fv = unsafePerformIO $ readIORef glrefVertexAttrib2fv-{-# INLINE glVertexAttrib2fv #-}-type FuntypeVertexAttrib2s =- GLuint ->- GLshort ->- GLshort ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib2s :: FunPtr FuntypeVertexAttrib2s -> FuntypeVertexAttrib2s-glrefVertexAttrib2s :: IORef FuntypeVertexAttrib2s-glrefVertexAttrib2s = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib2s #-}-glVertexAttrib2s :: FuntypeVertexAttrib2s-glVertexAttrib2s = unsafePerformIO $ readIORef glrefVertexAttrib2s-{-# INLINE glVertexAttrib2s #-}-type FuntypeVertexAttrib2sv =- GLuint ->- Ptr (GLshort) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib2sv :: FunPtr FuntypeVertexAttrib2sv -> FuntypeVertexAttrib2sv-glrefVertexAttrib2sv :: IORef FuntypeVertexAttrib2sv-glrefVertexAttrib2sv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib2sv #-}-glVertexAttrib2sv :: FuntypeVertexAttrib2sv-glVertexAttrib2sv = unsafePerformIO $ readIORef glrefVertexAttrib2sv-{-# INLINE glVertexAttrib2sv #-}-type FuntypeVertexAttrib3d =- GLuint ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib3d :: FunPtr FuntypeVertexAttrib3d -> FuntypeVertexAttrib3d-glrefVertexAttrib3d :: IORef FuntypeVertexAttrib3d-glrefVertexAttrib3d = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib3d #-}-glVertexAttrib3d :: FuntypeVertexAttrib3d-glVertexAttrib3d = unsafePerformIO $ readIORef glrefVertexAttrib3d-{-# INLINE glVertexAttrib3d #-}-type FuntypeVertexAttrib3dv =- GLuint ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib3dv :: FunPtr FuntypeVertexAttrib3dv -> FuntypeVertexAttrib3dv-glrefVertexAttrib3dv :: IORef FuntypeVertexAttrib3dv-glrefVertexAttrib3dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib3dv #-}-glVertexAttrib3dv :: FuntypeVertexAttrib3dv-glVertexAttrib3dv = unsafePerformIO $ readIORef glrefVertexAttrib3dv-{-# INLINE glVertexAttrib3dv #-}-type FuntypeVertexAttrib3f =- GLuint ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib3f :: FunPtr FuntypeVertexAttrib3f -> FuntypeVertexAttrib3f-glrefVertexAttrib3f :: IORef FuntypeVertexAttrib3f-glrefVertexAttrib3f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib3f #-}-glVertexAttrib3f :: FuntypeVertexAttrib3f-glVertexAttrib3f = unsafePerformIO $ readIORef glrefVertexAttrib3f-{-# INLINE glVertexAttrib3f #-}-type FuntypeVertexAttrib3fv =- GLuint ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib3fv :: FunPtr FuntypeVertexAttrib3fv -> FuntypeVertexAttrib3fv-glrefVertexAttrib3fv :: IORef FuntypeVertexAttrib3fv-glrefVertexAttrib3fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib3fv #-}-glVertexAttrib3fv :: FuntypeVertexAttrib3fv-glVertexAttrib3fv = unsafePerformIO $ readIORef glrefVertexAttrib3fv-{-# INLINE glVertexAttrib3fv #-}-type FuntypeVertexAttrib3s =- GLuint ->- GLshort ->- GLshort ->- GLshort ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib3s :: FunPtr FuntypeVertexAttrib3s -> FuntypeVertexAttrib3s-glrefVertexAttrib3s :: IORef FuntypeVertexAttrib3s-glrefVertexAttrib3s = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib3s #-}-glVertexAttrib3s :: FuntypeVertexAttrib3s-glVertexAttrib3s = unsafePerformIO $ readIORef glrefVertexAttrib3s-{-# INLINE glVertexAttrib3s #-}-type FuntypeVertexAttrib3sv =- GLuint ->- Ptr (GLshort) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib3sv :: FunPtr FuntypeVertexAttrib3sv -> FuntypeVertexAttrib3sv-glrefVertexAttrib3sv :: IORef FuntypeVertexAttrib3sv-glrefVertexAttrib3sv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib3sv #-}-glVertexAttrib3sv :: FuntypeVertexAttrib3sv-glVertexAttrib3sv = unsafePerformIO $ readIORef glrefVertexAttrib3sv-{-# INLINE glVertexAttrib3sv #-}-type FuntypeVertexAttrib4Nbv =- GLuint ->- Ptr (GLbyte) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4Nbv :: FunPtr FuntypeVertexAttrib4Nbv -> FuntypeVertexAttrib4Nbv-glrefVertexAttrib4Nbv :: IORef FuntypeVertexAttrib4Nbv-glrefVertexAttrib4Nbv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4Nbv #-}-glVertexAttrib4Nbv :: FuntypeVertexAttrib4Nbv-glVertexAttrib4Nbv = unsafePerformIO $ readIORef glrefVertexAttrib4Nbv-{-# INLINE glVertexAttrib4Nbv #-}-type FuntypeVertexAttrib4Niv =- GLuint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4Niv :: FunPtr FuntypeVertexAttrib4Niv -> FuntypeVertexAttrib4Niv-glrefVertexAttrib4Niv :: IORef FuntypeVertexAttrib4Niv-glrefVertexAttrib4Niv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4Niv #-}-glVertexAttrib4Niv :: FuntypeVertexAttrib4Niv-glVertexAttrib4Niv = unsafePerformIO $ readIORef glrefVertexAttrib4Niv-{-# INLINE glVertexAttrib4Niv #-}-type FuntypeVertexAttrib4Nsv =- GLuint ->- Ptr (GLshort) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4Nsv :: FunPtr FuntypeVertexAttrib4Nsv -> FuntypeVertexAttrib4Nsv-glrefVertexAttrib4Nsv :: IORef FuntypeVertexAttrib4Nsv-glrefVertexAttrib4Nsv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4Nsv #-}-glVertexAttrib4Nsv :: FuntypeVertexAttrib4Nsv-glVertexAttrib4Nsv = unsafePerformIO $ readIORef glrefVertexAttrib4Nsv-{-# INLINE glVertexAttrib4Nsv #-}-type FuntypeVertexAttrib4Nub =- GLuint ->- GLubyte ->- GLubyte ->- GLubyte ->- GLubyte ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4Nub :: FunPtr FuntypeVertexAttrib4Nub -> FuntypeVertexAttrib4Nub-glrefVertexAttrib4Nub :: IORef FuntypeVertexAttrib4Nub-glrefVertexAttrib4Nub = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4Nub #-}-glVertexAttrib4Nub :: FuntypeVertexAttrib4Nub-glVertexAttrib4Nub = unsafePerformIO $ readIORef glrefVertexAttrib4Nub-{-# INLINE glVertexAttrib4Nub #-}-type FuntypeVertexAttrib4Nubv =- GLuint ->- Ptr (GLubyte) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4Nubv :: FunPtr FuntypeVertexAttrib4Nubv -> FuntypeVertexAttrib4Nubv-glrefVertexAttrib4Nubv :: IORef FuntypeVertexAttrib4Nubv-glrefVertexAttrib4Nubv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4Nubv #-}-glVertexAttrib4Nubv :: FuntypeVertexAttrib4Nubv-glVertexAttrib4Nubv = unsafePerformIO $ readIORef glrefVertexAttrib4Nubv-{-# INLINE glVertexAttrib4Nubv #-}-type FuntypeVertexAttrib4Nuiv =- GLuint ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4Nuiv :: FunPtr FuntypeVertexAttrib4Nuiv -> FuntypeVertexAttrib4Nuiv-glrefVertexAttrib4Nuiv :: IORef FuntypeVertexAttrib4Nuiv-glrefVertexAttrib4Nuiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4Nuiv #-}-glVertexAttrib4Nuiv :: FuntypeVertexAttrib4Nuiv-glVertexAttrib4Nuiv = unsafePerformIO $ readIORef glrefVertexAttrib4Nuiv-{-# INLINE glVertexAttrib4Nuiv #-}-type FuntypeVertexAttrib4Nusv =- GLuint ->- Ptr (GLushort) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4Nusv :: FunPtr FuntypeVertexAttrib4Nusv -> FuntypeVertexAttrib4Nusv-glrefVertexAttrib4Nusv :: IORef FuntypeVertexAttrib4Nusv-glrefVertexAttrib4Nusv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4Nusv #-}-glVertexAttrib4Nusv :: FuntypeVertexAttrib4Nusv-glVertexAttrib4Nusv = unsafePerformIO $ readIORef glrefVertexAttrib4Nusv-{-# INLINE glVertexAttrib4Nusv #-}-type FuntypeVertexAttrib4bv =- GLuint ->- Ptr (GLbyte) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4bv :: FunPtr FuntypeVertexAttrib4bv -> FuntypeVertexAttrib4bv-glrefVertexAttrib4bv :: IORef FuntypeVertexAttrib4bv-glrefVertexAttrib4bv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4bv #-}-glVertexAttrib4bv :: FuntypeVertexAttrib4bv-glVertexAttrib4bv = unsafePerformIO $ readIORef glrefVertexAttrib4bv-{-# INLINE glVertexAttrib4bv #-}-type FuntypeVertexAttrib4d =- GLuint ->- GLdouble ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4d :: FunPtr FuntypeVertexAttrib4d -> FuntypeVertexAttrib4d-glrefVertexAttrib4d :: IORef FuntypeVertexAttrib4d-glrefVertexAttrib4d = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4d #-}-glVertexAttrib4d :: FuntypeVertexAttrib4d-glVertexAttrib4d = unsafePerformIO $ readIORef glrefVertexAttrib4d-{-# INLINE glVertexAttrib4d #-}-type FuntypeVertexAttrib4dv =- GLuint ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4dv :: FunPtr FuntypeVertexAttrib4dv -> FuntypeVertexAttrib4dv-glrefVertexAttrib4dv :: IORef FuntypeVertexAttrib4dv-glrefVertexAttrib4dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4dv #-}-glVertexAttrib4dv :: FuntypeVertexAttrib4dv-glVertexAttrib4dv = unsafePerformIO $ readIORef glrefVertexAttrib4dv-{-# INLINE glVertexAttrib4dv #-}-type FuntypeVertexAttrib4f =- GLuint ->- GLfloat ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4f :: FunPtr FuntypeVertexAttrib4f -> FuntypeVertexAttrib4f-glrefVertexAttrib4f :: IORef FuntypeVertexAttrib4f-glrefVertexAttrib4f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4f #-}-glVertexAttrib4f :: FuntypeVertexAttrib4f-glVertexAttrib4f = unsafePerformIO $ readIORef glrefVertexAttrib4f-{-# INLINE glVertexAttrib4f #-}-type FuntypeVertexAttrib4fv =- GLuint ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4fv :: FunPtr FuntypeVertexAttrib4fv -> FuntypeVertexAttrib4fv-glrefVertexAttrib4fv :: IORef FuntypeVertexAttrib4fv-glrefVertexAttrib4fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4fv #-}-glVertexAttrib4fv :: FuntypeVertexAttrib4fv-glVertexAttrib4fv = unsafePerformIO $ readIORef glrefVertexAttrib4fv-{-# INLINE glVertexAttrib4fv #-}-type FuntypeVertexAttrib4iv =- GLuint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4iv :: FunPtr FuntypeVertexAttrib4iv -> FuntypeVertexAttrib4iv-glrefVertexAttrib4iv :: IORef FuntypeVertexAttrib4iv-glrefVertexAttrib4iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4iv #-}-glVertexAttrib4iv :: FuntypeVertexAttrib4iv-glVertexAttrib4iv = unsafePerformIO $ readIORef glrefVertexAttrib4iv-{-# INLINE glVertexAttrib4iv #-}-type FuntypeVertexAttrib4s =- GLuint ->- GLshort ->- GLshort ->- GLshort ->- GLshort ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4s :: FunPtr FuntypeVertexAttrib4s -> FuntypeVertexAttrib4s-glrefVertexAttrib4s :: IORef FuntypeVertexAttrib4s-glrefVertexAttrib4s = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4s #-}-glVertexAttrib4s :: FuntypeVertexAttrib4s-glVertexAttrib4s = unsafePerformIO $ readIORef glrefVertexAttrib4s-{-# INLINE glVertexAttrib4s #-}-type FuntypeVertexAttrib4sv =- GLuint ->- Ptr (GLshort) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4sv :: FunPtr FuntypeVertexAttrib4sv -> FuntypeVertexAttrib4sv-glrefVertexAttrib4sv :: IORef FuntypeVertexAttrib4sv-glrefVertexAttrib4sv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4sv #-}-glVertexAttrib4sv :: FuntypeVertexAttrib4sv-glVertexAttrib4sv = unsafePerformIO $ readIORef glrefVertexAttrib4sv-{-# INLINE glVertexAttrib4sv #-}-type FuntypeVertexAttrib4ubv =- GLuint ->- Ptr (GLubyte) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4ubv :: FunPtr FuntypeVertexAttrib4ubv -> FuntypeVertexAttrib4ubv-glrefVertexAttrib4ubv :: IORef FuntypeVertexAttrib4ubv-glrefVertexAttrib4ubv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4ubv #-}-glVertexAttrib4ubv :: FuntypeVertexAttrib4ubv-glVertexAttrib4ubv = unsafePerformIO $ readIORef glrefVertexAttrib4ubv-{-# INLINE glVertexAttrib4ubv #-}-type FuntypeVertexAttrib4uiv =- GLuint ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4uiv :: FunPtr FuntypeVertexAttrib4uiv -> FuntypeVertexAttrib4uiv-glrefVertexAttrib4uiv :: IORef FuntypeVertexAttrib4uiv-glrefVertexAttrib4uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4uiv #-}-glVertexAttrib4uiv :: FuntypeVertexAttrib4uiv-glVertexAttrib4uiv = unsafePerformIO $ readIORef glrefVertexAttrib4uiv-{-# INLINE glVertexAttrib4uiv #-}-type FuntypeVertexAttrib4usv =- GLuint ->- Ptr (GLushort) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttrib4usv :: FunPtr FuntypeVertexAttrib4usv -> FuntypeVertexAttrib4usv-glrefVertexAttrib4usv :: IORef FuntypeVertexAttrib4usv-glrefVertexAttrib4usv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttrib4usv #-}-glVertexAttrib4usv :: FuntypeVertexAttrib4usv-glVertexAttrib4usv = unsafePerformIO $ readIORef glrefVertexAttrib4usv-{-# INLINE glVertexAttrib4usv #-}-type FuntypeVertexAttribPointer =- GLuint ->- GLint ->- GLenum ->- GLboolean ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribPointer :: FunPtr FuntypeVertexAttribPointer -> FuntypeVertexAttribPointer-glrefVertexAttribPointer :: IORef FuntypeVertexAttribPointer-glrefVertexAttribPointer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribPointer #-}-glVertexAttribPointer :: FuntypeVertexAttribPointer-glVertexAttribPointer = unsafePerformIO $ readIORef glrefVertexAttribPointer-{-# INLINE glVertexAttribPointer #-}---- GL_VERSION_2_1--type FuntypeUniformMatrix2x3fv =- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniformMatrix2x3fv :: FunPtr FuntypeUniformMatrix2x3fv -> FuntypeUniformMatrix2x3fv-glrefUniformMatrix2x3fv :: IORef FuntypeUniformMatrix2x3fv-glrefUniformMatrix2x3fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniformMatrix2x3fv #-}-glUniformMatrix2x3fv :: FuntypeUniformMatrix2x3fv-glUniformMatrix2x3fv = unsafePerformIO $ readIORef glrefUniformMatrix2x3fv-{-# INLINE glUniformMatrix2x3fv #-}-type FuntypeUniformMatrix3x2fv =- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniformMatrix3x2fv :: FunPtr FuntypeUniformMatrix3x2fv -> FuntypeUniformMatrix3x2fv-glrefUniformMatrix3x2fv :: IORef FuntypeUniformMatrix3x2fv-glrefUniformMatrix3x2fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniformMatrix3x2fv #-}-glUniformMatrix3x2fv :: FuntypeUniformMatrix3x2fv-glUniformMatrix3x2fv = unsafePerformIO $ readIORef glrefUniformMatrix3x2fv-{-# INLINE glUniformMatrix3x2fv #-}-type FuntypeUniformMatrix2x4fv =- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniformMatrix2x4fv :: FunPtr FuntypeUniformMatrix2x4fv -> FuntypeUniformMatrix2x4fv-glrefUniformMatrix2x4fv :: IORef FuntypeUniformMatrix2x4fv-glrefUniformMatrix2x4fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniformMatrix2x4fv #-}-glUniformMatrix2x4fv :: FuntypeUniformMatrix2x4fv-glUniformMatrix2x4fv = unsafePerformIO $ readIORef glrefUniformMatrix2x4fv-{-# INLINE glUniformMatrix2x4fv #-}-type FuntypeUniformMatrix4x2fv =- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniformMatrix4x2fv :: FunPtr FuntypeUniformMatrix4x2fv -> FuntypeUniformMatrix4x2fv-glrefUniformMatrix4x2fv :: IORef FuntypeUniformMatrix4x2fv-glrefUniformMatrix4x2fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniformMatrix4x2fv #-}-glUniformMatrix4x2fv :: FuntypeUniformMatrix4x2fv-glUniformMatrix4x2fv = unsafePerformIO $ readIORef glrefUniformMatrix4x2fv-{-# INLINE glUniformMatrix4x2fv #-}-type FuntypeUniformMatrix3x4fv =- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniformMatrix3x4fv :: FunPtr FuntypeUniformMatrix3x4fv -> FuntypeUniformMatrix3x4fv-glrefUniformMatrix3x4fv :: IORef FuntypeUniformMatrix3x4fv-glrefUniformMatrix3x4fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniformMatrix3x4fv #-}-glUniformMatrix3x4fv :: FuntypeUniformMatrix3x4fv-glUniformMatrix3x4fv = unsafePerformIO $ readIORef glrefUniformMatrix3x4fv-{-# INLINE glUniformMatrix3x4fv #-}-type FuntypeUniformMatrix4x3fv =- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniformMatrix4x3fv :: FunPtr FuntypeUniformMatrix4x3fv -> FuntypeUniformMatrix4x3fv-glrefUniformMatrix4x3fv :: IORef FuntypeUniformMatrix4x3fv-glrefUniformMatrix4x3fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniformMatrix4x3fv #-}-glUniformMatrix4x3fv :: FuntypeUniformMatrix4x3fv-glUniformMatrix4x3fv = unsafePerformIO $ readIORef glrefUniformMatrix4x3fv-{-# INLINE glUniformMatrix4x3fv #-}---- GL_VERSION_3_0--type FuntypeColorMaski =- GLuint ->- GLboolean ->- GLboolean ->- GLboolean ->- GLboolean ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynColorMaski :: FunPtr FuntypeColorMaski -> FuntypeColorMaski-glrefColorMaski :: IORef FuntypeColorMaski-glrefColorMaski = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefColorMaski #-}-glColorMaski :: FuntypeColorMaski-glColorMaski = unsafePerformIO $ readIORef glrefColorMaski-{-# INLINE glColorMaski #-}-type FuntypeGetBooleani_v =- GLenum ->- GLuint ->- Ptr (GLboolean) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetBooleani_v :: FunPtr FuntypeGetBooleani_v -> FuntypeGetBooleani_v-glrefGetBooleani_v :: IORef FuntypeGetBooleani_v-glrefGetBooleani_v = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetBooleani_v #-}-glGetBooleani_v :: FuntypeGetBooleani_v-glGetBooleani_v = unsafePerformIO $ readIORef glrefGetBooleani_v-{-# INLINE glGetBooleani_v #-}-type FuntypeGetIntegeri_v =- GLenum ->- GLuint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetIntegeri_v :: FunPtr FuntypeGetIntegeri_v -> FuntypeGetIntegeri_v-glrefGetIntegeri_v :: IORef FuntypeGetIntegeri_v-glrefGetIntegeri_v = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetIntegeri_v #-}-glGetIntegeri_v :: FuntypeGetIntegeri_v-glGetIntegeri_v = unsafePerformIO $ readIORef glrefGetIntegeri_v-{-# INLINE glGetIntegeri_v #-}-type FuntypeEnablei =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynEnablei :: FunPtr FuntypeEnablei -> FuntypeEnablei-glrefEnablei :: IORef FuntypeEnablei-glrefEnablei = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefEnablei #-}-glEnablei :: FuntypeEnablei-glEnablei = unsafePerformIO $ readIORef glrefEnablei-{-# INLINE glEnablei #-}-type FuntypeDisablei =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDisablei :: FunPtr FuntypeDisablei -> FuntypeDisablei-glrefDisablei :: IORef FuntypeDisablei-glrefDisablei = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDisablei #-}-glDisablei :: FuntypeDisablei-glDisablei = unsafePerformIO $ readIORef glrefDisablei-{-# INLINE glDisablei #-}-type FuntypeIsEnabledi =- GLenum ->- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsEnabledi :: FunPtr FuntypeIsEnabledi -> FuntypeIsEnabledi-glrefIsEnabledi :: IORef FuntypeIsEnabledi-glrefIsEnabledi = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsEnabledi #-}-glIsEnabledi :: FuntypeIsEnabledi-glIsEnabledi = unsafePerformIO $ readIORef glrefIsEnabledi-{-# INLINE glIsEnabledi #-}-type FuntypeBeginTransformFeedback =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBeginTransformFeedback :: FunPtr FuntypeBeginTransformFeedback -> FuntypeBeginTransformFeedback-glrefBeginTransformFeedback :: IORef FuntypeBeginTransformFeedback-glrefBeginTransformFeedback = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBeginTransformFeedback #-}-glBeginTransformFeedback :: FuntypeBeginTransformFeedback-glBeginTransformFeedback = unsafePerformIO $ readIORef glrefBeginTransformFeedback-{-# INLINE glBeginTransformFeedback #-}-type FuntypeEndTransformFeedback =- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynEndTransformFeedback :: FunPtr FuntypeEndTransformFeedback -> FuntypeEndTransformFeedback-glrefEndTransformFeedback :: IORef FuntypeEndTransformFeedback-glrefEndTransformFeedback = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefEndTransformFeedback #-}-glEndTransformFeedback :: FuntypeEndTransformFeedback-glEndTransformFeedback = unsafePerformIO $ readIORef glrefEndTransformFeedback-{-# INLINE glEndTransformFeedback #-}-type FuntypeBindBufferRange =- GLenum ->- GLuint ->- GLuint ->- GLintptr ->- GLsizeiptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindBufferRange :: FunPtr FuntypeBindBufferRange -> FuntypeBindBufferRange-glrefBindBufferRange :: IORef FuntypeBindBufferRange-glrefBindBufferRange = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindBufferRange #-}-glBindBufferRange :: FuntypeBindBufferRange-glBindBufferRange = unsafePerformIO $ readIORef glrefBindBufferRange-{-# INLINE glBindBufferRange #-}-type FuntypeBindBufferBase =- GLenum ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindBufferBase :: FunPtr FuntypeBindBufferBase -> FuntypeBindBufferBase-glrefBindBufferBase :: IORef FuntypeBindBufferBase-glrefBindBufferBase = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindBufferBase #-}-glBindBufferBase :: FuntypeBindBufferBase-glBindBufferBase = unsafePerformIO $ readIORef glrefBindBufferBase-{-# INLINE glBindBufferBase #-}-type FuntypeTransformFeedbackVaryings =- GLuint ->- GLsizei ->- Ptr (Ptr (GLchar)) ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTransformFeedbackVaryings :: FunPtr FuntypeTransformFeedbackVaryings -> FuntypeTransformFeedbackVaryings-glrefTransformFeedbackVaryings :: IORef FuntypeTransformFeedbackVaryings-glrefTransformFeedbackVaryings = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTransformFeedbackVaryings #-}-glTransformFeedbackVaryings :: FuntypeTransformFeedbackVaryings-glTransformFeedbackVaryings = unsafePerformIO $ readIORef glrefTransformFeedbackVaryings-{-# INLINE glTransformFeedbackVaryings #-}-type FuntypeGetTransformFeedbackVarying =- GLuint ->- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLsizei) ->- Ptr (GLenum) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTransformFeedbackVarying :: FunPtr FuntypeGetTransformFeedbackVarying -> FuntypeGetTransformFeedbackVarying-glrefGetTransformFeedbackVarying :: IORef FuntypeGetTransformFeedbackVarying-glrefGetTransformFeedbackVarying = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTransformFeedbackVarying #-}-glGetTransformFeedbackVarying :: FuntypeGetTransformFeedbackVarying-glGetTransformFeedbackVarying = unsafePerformIO $ readIORef glrefGetTransformFeedbackVarying-{-# INLINE glGetTransformFeedbackVarying #-}-type FuntypeClampColor =- GLenum ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClampColor :: FunPtr FuntypeClampColor -> FuntypeClampColor-glrefClampColor :: IORef FuntypeClampColor-glrefClampColor = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClampColor #-}-glClampColor :: FuntypeClampColor-glClampColor = unsafePerformIO $ readIORef glrefClampColor-{-# INLINE glClampColor #-}-type FuntypeBeginConditionalRender =- GLuint ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBeginConditionalRender :: FunPtr FuntypeBeginConditionalRender -> FuntypeBeginConditionalRender-glrefBeginConditionalRender :: IORef FuntypeBeginConditionalRender-glrefBeginConditionalRender = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBeginConditionalRender #-}-glBeginConditionalRender :: FuntypeBeginConditionalRender-glBeginConditionalRender = unsafePerformIO $ readIORef glrefBeginConditionalRender-{-# INLINE glBeginConditionalRender #-}-type FuntypeEndConditionalRender =- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynEndConditionalRender :: FunPtr FuntypeEndConditionalRender -> FuntypeEndConditionalRender-glrefEndConditionalRender :: IORef FuntypeEndConditionalRender-glrefEndConditionalRender = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefEndConditionalRender #-}-glEndConditionalRender :: FuntypeEndConditionalRender-glEndConditionalRender = unsafePerformIO $ readIORef glrefEndConditionalRender-{-# INLINE glEndConditionalRender #-}-type FuntypeVertexAttribIPointer =- GLuint ->- GLint ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribIPointer :: FunPtr FuntypeVertexAttribIPointer -> FuntypeVertexAttribIPointer-glrefVertexAttribIPointer :: IORef FuntypeVertexAttribIPointer-glrefVertexAttribIPointer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribIPointer #-}-glVertexAttribIPointer :: FuntypeVertexAttribIPointer-glVertexAttribIPointer = unsafePerformIO $ readIORef glrefVertexAttribIPointer-{-# INLINE glVertexAttribIPointer #-}-type FuntypeGetVertexAttribIiv =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetVertexAttribIiv :: FunPtr FuntypeGetVertexAttribIiv -> FuntypeGetVertexAttribIiv-glrefGetVertexAttribIiv :: IORef FuntypeGetVertexAttribIiv-glrefGetVertexAttribIiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetVertexAttribIiv #-}-glGetVertexAttribIiv :: FuntypeGetVertexAttribIiv-glGetVertexAttribIiv = unsafePerformIO $ readIORef glrefGetVertexAttribIiv-{-# INLINE glGetVertexAttribIiv #-}-type FuntypeGetVertexAttribIuiv =- GLuint ->- GLenum ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetVertexAttribIuiv :: FunPtr FuntypeGetVertexAttribIuiv -> FuntypeGetVertexAttribIuiv-glrefGetVertexAttribIuiv :: IORef FuntypeGetVertexAttribIuiv-glrefGetVertexAttribIuiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetVertexAttribIuiv #-}-glGetVertexAttribIuiv :: FuntypeGetVertexAttribIuiv-glGetVertexAttribIuiv = unsafePerformIO $ readIORef glrefGetVertexAttribIuiv-{-# INLINE glGetVertexAttribIuiv #-}-type FuntypeVertexAttribI1i =- GLuint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI1i :: FunPtr FuntypeVertexAttribI1i -> FuntypeVertexAttribI1i-glrefVertexAttribI1i :: IORef FuntypeVertexAttribI1i-glrefVertexAttribI1i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI1i #-}-glVertexAttribI1i :: FuntypeVertexAttribI1i-glVertexAttribI1i = unsafePerformIO $ readIORef glrefVertexAttribI1i-{-# INLINE glVertexAttribI1i #-}-type FuntypeVertexAttribI2i =- GLuint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI2i :: FunPtr FuntypeVertexAttribI2i -> FuntypeVertexAttribI2i-glrefVertexAttribI2i :: IORef FuntypeVertexAttribI2i-glrefVertexAttribI2i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI2i #-}-glVertexAttribI2i :: FuntypeVertexAttribI2i-glVertexAttribI2i = unsafePerformIO $ readIORef glrefVertexAttribI2i-{-# INLINE glVertexAttribI2i #-}-type FuntypeVertexAttribI3i =- GLuint ->- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI3i :: FunPtr FuntypeVertexAttribI3i -> FuntypeVertexAttribI3i-glrefVertexAttribI3i :: IORef FuntypeVertexAttribI3i-glrefVertexAttribI3i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI3i #-}-glVertexAttribI3i :: FuntypeVertexAttribI3i-glVertexAttribI3i = unsafePerformIO $ readIORef glrefVertexAttribI3i-{-# INLINE glVertexAttribI3i #-}-type FuntypeVertexAttribI4i =- GLuint ->- GLint ->- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI4i :: FunPtr FuntypeVertexAttribI4i -> FuntypeVertexAttribI4i-glrefVertexAttribI4i :: IORef FuntypeVertexAttribI4i-glrefVertexAttribI4i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI4i #-}-glVertexAttribI4i :: FuntypeVertexAttribI4i-glVertexAttribI4i = unsafePerformIO $ readIORef glrefVertexAttribI4i-{-# INLINE glVertexAttribI4i #-}-type FuntypeVertexAttribI1ui =- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI1ui :: FunPtr FuntypeVertexAttribI1ui -> FuntypeVertexAttribI1ui-glrefVertexAttribI1ui :: IORef FuntypeVertexAttribI1ui-glrefVertexAttribI1ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI1ui #-}-glVertexAttribI1ui :: FuntypeVertexAttribI1ui-glVertexAttribI1ui = unsafePerformIO $ readIORef glrefVertexAttribI1ui-{-# INLINE glVertexAttribI1ui #-}-type FuntypeVertexAttribI2ui =- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI2ui :: FunPtr FuntypeVertexAttribI2ui -> FuntypeVertexAttribI2ui-glrefVertexAttribI2ui :: IORef FuntypeVertexAttribI2ui-glrefVertexAttribI2ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI2ui #-}-glVertexAttribI2ui :: FuntypeVertexAttribI2ui-glVertexAttribI2ui = unsafePerformIO $ readIORef glrefVertexAttribI2ui-{-# INLINE glVertexAttribI2ui #-}-type FuntypeVertexAttribI3ui =- GLuint ->- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI3ui :: FunPtr FuntypeVertexAttribI3ui -> FuntypeVertexAttribI3ui-glrefVertexAttribI3ui :: IORef FuntypeVertexAttribI3ui-glrefVertexAttribI3ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI3ui #-}-glVertexAttribI3ui :: FuntypeVertexAttribI3ui-glVertexAttribI3ui = unsafePerformIO $ readIORef glrefVertexAttribI3ui-{-# INLINE glVertexAttribI3ui #-}-type FuntypeVertexAttribI4ui =- GLuint ->- GLuint ->- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI4ui :: FunPtr FuntypeVertexAttribI4ui -> FuntypeVertexAttribI4ui-glrefVertexAttribI4ui :: IORef FuntypeVertexAttribI4ui-glrefVertexAttribI4ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI4ui #-}-glVertexAttribI4ui :: FuntypeVertexAttribI4ui-glVertexAttribI4ui = unsafePerformIO $ readIORef glrefVertexAttribI4ui-{-# INLINE glVertexAttribI4ui #-}-type FuntypeVertexAttribI1iv =- GLuint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI1iv :: FunPtr FuntypeVertexAttribI1iv -> FuntypeVertexAttribI1iv-glrefVertexAttribI1iv :: IORef FuntypeVertexAttribI1iv-glrefVertexAttribI1iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI1iv #-}-glVertexAttribI1iv :: FuntypeVertexAttribI1iv-glVertexAttribI1iv = unsafePerformIO $ readIORef glrefVertexAttribI1iv-{-# INLINE glVertexAttribI1iv #-}-type FuntypeVertexAttribI2iv =- GLuint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI2iv :: FunPtr FuntypeVertexAttribI2iv -> FuntypeVertexAttribI2iv-glrefVertexAttribI2iv :: IORef FuntypeVertexAttribI2iv-glrefVertexAttribI2iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI2iv #-}-glVertexAttribI2iv :: FuntypeVertexAttribI2iv-glVertexAttribI2iv = unsafePerformIO $ readIORef glrefVertexAttribI2iv-{-# INLINE glVertexAttribI2iv #-}-type FuntypeVertexAttribI3iv =- GLuint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI3iv :: FunPtr FuntypeVertexAttribI3iv -> FuntypeVertexAttribI3iv-glrefVertexAttribI3iv :: IORef FuntypeVertexAttribI3iv-glrefVertexAttribI3iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI3iv #-}-glVertexAttribI3iv :: FuntypeVertexAttribI3iv-glVertexAttribI3iv = unsafePerformIO $ readIORef glrefVertexAttribI3iv-{-# INLINE glVertexAttribI3iv #-}-type FuntypeVertexAttribI4iv =- GLuint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI4iv :: FunPtr FuntypeVertexAttribI4iv -> FuntypeVertexAttribI4iv-glrefVertexAttribI4iv :: IORef FuntypeVertexAttribI4iv-glrefVertexAttribI4iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI4iv #-}-glVertexAttribI4iv :: FuntypeVertexAttribI4iv-glVertexAttribI4iv = unsafePerformIO $ readIORef glrefVertexAttribI4iv-{-# INLINE glVertexAttribI4iv #-}-type FuntypeVertexAttribI1uiv =- GLuint ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI1uiv :: FunPtr FuntypeVertexAttribI1uiv -> FuntypeVertexAttribI1uiv-glrefVertexAttribI1uiv :: IORef FuntypeVertexAttribI1uiv-glrefVertexAttribI1uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI1uiv #-}-glVertexAttribI1uiv :: FuntypeVertexAttribI1uiv-glVertexAttribI1uiv = unsafePerformIO $ readIORef glrefVertexAttribI1uiv-{-# INLINE glVertexAttribI1uiv #-}-type FuntypeVertexAttribI2uiv =- GLuint ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI2uiv :: FunPtr FuntypeVertexAttribI2uiv -> FuntypeVertexAttribI2uiv-glrefVertexAttribI2uiv :: IORef FuntypeVertexAttribI2uiv-glrefVertexAttribI2uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI2uiv #-}-glVertexAttribI2uiv :: FuntypeVertexAttribI2uiv-glVertexAttribI2uiv = unsafePerformIO $ readIORef glrefVertexAttribI2uiv-{-# INLINE glVertexAttribI2uiv #-}-type FuntypeVertexAttribI3uiv =- GLuint ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI3uiv :: FunPtr FuntypeVertexAttribI3uiv -> FuntypeVertexAttribI3uiv-glrefVertexAttribI3uiv :: IORef FuntypeVertexAttribI3uiv-glrefVertexAttribI3uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI3uiv #-}-glVertexAttribI3uiv :: FuntypeVertexAttribI3uiv-glVertexAttribI3uiv = unsafePerformIO $ readIORef glrefVertexAttribI3uiv-{-# INLINE glVertexAttribI3uiv #-}-type FuntypeVertexAttribI4uiv =- GLuint ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI4uiv :: FunPtr FuntypeVertexAttribI4uiv -> FuntypeVertexAttribI4uiv-glrefVertexAttribI4uiv :: IORef FuntypeVertexAttribI4uiv-glrefVertexAttribI4uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI4uiv #-}-glVertexAttribI4uiv :: FuntypeVertexAttribI4uiv-glVertexAttribI4uiv = unsafePerformIO $ readIORef glrefVertexAttribI4uiv-{-# INLINE glVertexAttribI4uiv #-}-type FuntypeVertexAttribI4bv =- GLuint ->- Ptr (GLbyte) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI4bv :: FunPtr FuntypeVertexAttribI4bv -> FuntypeVertexAttribI4bv-glrefVertexAttribI4bv :: IORef FuntypeVertexAttribI4bv-glrefVertexAttribI4bv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI4bv #-}-glVertexAttribI4bv :: FuntypeVertexAttribI4bv-glVertexAttribI4bv = unsafePerformIO $ readIORef glrefVertexAttribI4bv-{-# INLINE glVertexAttribI4bv #-}-type FuntypeVertexAttribI4sv =- GLuint ->- Ptr (GLshort) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI4sv :: FunPtr FuntypeVertexAttribI4sv -> FuntypeVertexAttribI4sv-glrefVertexAttribI4sv :: IORef FuntypeVertexAttribI4sv-glrefVertexAttribI4sv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI4sv #-}-glVertexAttribI4sv :: FuntypeVertexAttribI4sv-glVertexAttribI4sv = unsafePerformIO $ readIORef glrefVertexAttribI4sv-{-# INLINE glVertexAttribI4sv #-}-type FuntypeVertexAttribI4ubv =- GLuint ->- Ptr (GLubyte) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI4ubv :: FunPtr FuntypeVertexAttribI4ubv -> FuntypeVertexAttribI4ubv-glrefVertexAttribI4ubv :: IORef FuntypeVertexAttribI4ubv-glrefVertexAttribI4ubv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI4ubv #-}-glVertexAttribI4ubv :: FuntypeVertexAttribI4ubv-glVertexAttribI4ubv = unsafePerformIO $ readIORef glrefVertexAttribI4ubv-{-# INLINE glVertexAttribI4ubv #-}-type FuntypeVertexAttribI4usv =- GLuint ->- Ptr (GLushort) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribI4usv :: FunPtr FuntypeVertexAttribI4usv -> FuntypeVertexAttribI4usv-glrefVertexAttribI4usv :: IORef FuntypeVertexAttribI4usv-glrefVertexAttribI4usv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribI4usv #-}-glVertexAttribI4usv :: FuntypeVertexAttribI4usv-glVertexAttribI4usv = unsafePerformIO $ readIORef glrefVertexAttribI4usv-{-# INLINE glVertexAttribI4usv #-}-type FuntypeGetUniformuiv =- GLuint ->- GLint ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetUniformuiv :: FunPtr FuntypeGetUniformuiv -> FuntypeGetUniformuiv-glrefGetUniformuiv :: IORef FuntypeGetUniformuiv-glrefGetUniformuiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetUniformuiv #-}-glGetUniformuiv :: FuntypeGetUniformuiv-glGetUniformuiv = unsafePerformIO $ readIORef glrefGetUniformuiv-{-# INLINE glGetUniformuiv #-}-type FuntypeBindFragDataLocation =- GLuint ->- GLuint ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindFragDataLocation :: FunPtr FuntypeBindFragDataLocation -> FuntypeBindFragDataLocation-glrefBindFragDataLocation :: IORef FuntypeBindFragDataLocation-glrefBindFragDataLocation = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindFragDataLocation #-}-glBindFragDataLocation :: FuntypeBindFragDataLocation-glBindFragDataLocation = unsafePerformIO $ readIORef glrefBindFragDataLocation-{-# INLINE glBindFragDataLocation #-}-type FuntypeGetFragDataLocation =- GLuint ->- Ptr (GLchar) ->- IO ( GLint )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetFragDataLocation :: FunPtr FuntypeGetFragDataLocation -> FuntypeGetFragDataLocation-glrefGetFragDataLocation :: IORef FuntypeGetFragDataLocation-glrefGetFragDataLocation = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetFragDataLocation #-}-glGetFragDataLocation :: FuntypeGetFragDataLocation-glGetFragDataLocation = unsafePerformIO $ readIORef glrefGetFragDataLocation-{-# INLINE glGetFragDataLocation #-}-type FuntypeUniform1ui =- GLint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform1ui :: FunPtr FuntypeUniform1ui -> FuntypeUniform1ui-glrefUniform1ui :: IORef FuntypeUniform1ui-glrefUniform1ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform1ui #-}-glUniform1ui :: FuntypeUniform1ui-glUniform1ui = unsafePerformIO $ readIORef glrefUniform1ui-{-# INLINE glUniform1ui #-}-type FuntypeUniform2ui =- GLint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform2ui :: FunPtr FuntypeUniform2ui -> FuntypeUniform2ui-glrefUniform2ui :: IORef FuntypeUniform2ui-glrefUniform2ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform2ui #-}-glUniform2ui :: FuntypeUniform2ui-glUniform2ui = unsafePerformIO $ readIORef glrefUniform2ui-{-# INLINE glUniform2ui #-}-type FuntypeUniform3ui =- GLint ->- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform3ui :: FunPtr FuntypeUniform3ui -> FuntypeUniform3ui-glrefUniform3ui :: IORef FuntypeUniform3ui-glrefUniform3ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform3ui #-}-glUniform3ui :: FuntypeUniform3ui-glUniform3ui = unsafePerformIO $ readIORef glrefUniform3ui-{-# INLINE glUniform3ui #-}-type FuntypeUniform4ui =- GLint ->- GLuint ->- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform4ui :: FunPtr FuntypeUniform4ui -> FuntypeUniform4ui-glrefUniform4ui :: IORef FuntypeUniform4ui-glrefUniform4ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform4ui #-}-glUniform4ui :: FuntypeUniform4ui-glUniform4ui = unsafePerformIO $ readIORef glrefUniform4ui-{-# INLINE glUniform4ui #-}-type FuntypeUniform1uiv =- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform1uiv :: FunPtr FuntypeUniform1uiv -> FuntypeUniform1uiv-glrefUniform1uiv :: IORef FuntypeUniform1uiv-glrefUniform1uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform1uiv #-}-glUniform1uiv :: FuntypeUniform1uiv-glUniform1uiv = unsafePerformIO $ readIORef glrefUniform1uiv-{-# INLINE glUniform1uiv #-}-type FuntypeUniform2uiv =- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform2uiv :: FunPtr FuntypeUniform2uiv -> FuntypeUniform2uiv-glrefUniform2uiv :: IORef FuntypeUniform2uiv-glrefUniform2uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform2uiv #-}-glUniform2uiv :: FuntypeUniform2uiv-glUniform2uiv = unsafePerformIO $ readIORef glrefUniform2uiv-{-# INLINE glUniform2uiv #-}-type FuntypeUniform3uiv =- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform3uiv :: FunPtr FuntypeUniform3uiv -> FuntypeUniform3uiv-glrefUniform3uiv :: IORef FuntypeUniform3uiv-glrefUniform3uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform3uiv #-}-glUniform3uiv :: FuntypeUniform3uiv-glUniform3uiv = unsafePerformIO $ readIORef glrefUniform3uiv-{-# INLINE glUniform3uiv #-}-type FuntypeUniform4uiv =- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniform4uiv :: FunPtr FuntypeUniform4uiv -> FuntypeUniform4uiv-glrefUniform4uiv :: IORef FuntypeUniform4uiv-glrefUniform4uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniform4uiv #-}-glUniform4uiv :: FuntypeUniform4uiv-glUniform4uiv = unsafePerformIO $ readIORef glrefUniform4uiv-{-# INLINE glUniform4uiv #-}-type FuntypeTexParameterIiv =- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexParameterIiv :: FunPtr FuntypeTexParameterIiv -> FuntypeTexParameterIiv-glrefTexParameterIiv :: IORef FuntypeTexParameterIiv-glrefTexParameterIiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexParameterIiv #-}-glTexParameterIiv :: FuntypeTexParameterIiv-glTexParameterIiv = unsafePerformIO $ readIORef glrefTexParameterIiv-{-# INLINE glTexParameterIiv #-}-type FuntypeTexParameterIuiv =- GLenum ->- GLenum ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexParameterIuiv :: FunPtr FuntypeTexParameterIuiv -> FuntypeTexParameterIuiv-glrefTexParameterIuiv :: IORef FuntypeTexParameterIuiv-glrefTexParameterIuiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexParameterIuiv #-}-glTexParameterIuiv :: FuntypeTexParameterIuiv-glTexParameterIuiv = unsafePerformIO $ readIORef glrefTexParameterIuiv-{-# INLINE glTexParameterIuiv #-}-type FuntypeGetTexParameterIiv =- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTexParameterIiv :: FunPtr FuntypeGetTexParameterIiv -> FuntypeGetTexParameterIiv-glrefGetTexParameterIiv :: IORef FuntypeGetTexParameterIiv-glrefGetTexParameterIiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTexParameterIiv #-}-glGetTexParameterIiv :: FuntypeGetTexParameterIiv-glGetTexParameterIiv = unsafePerformIO $ readIORef glrefGetTexParameterIiv-{-# INLINE glGetTexParameterIiv #-}-type FuntypeGetTexParameterIuiv =- GLenum ->- GLenum ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTexParameterIuiv :: FunPtr FuntypeGetTexParameterIuiv -> FuntypeGetTexParameterIuiv-glrefGetTexParameterIuiv :: IORef FuntypeGetTexParameterIuiv-glrefGetTexParameterIuiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTexParameterIuiv #-}-glGetTexParameterIuiv :: FuntypeGetTexParameterIuiv-glGetTexParameterIuiv = unsafePerformIO $ readIORef glrefGetTexParameterIuiv-{-# INLINE glGetTexParameterIuiv #-}-type FuntypeClearBufferiv =- GLenum ->- GLint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClearBufferiv :: FunPtr FuntypeClearBufferiv -> FuntypeClearBufferiv-glrefClearBufferiv :: IORef FuntypeClearBufferiv-glrefClearBufferiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClearBufferiv #-}-glClearBufferiv :: FuntypeClearBufferiv-glClearBufferiv = unsafePerformIO $ readIORef glrefClearBufferiv-{-# INLINE glClearBufferiv #-}-type FuntypeClearBufferuiv =- GLenum ->- GLint ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClearBufferuiv :: FunPtr FuntypeClearBufferuiv -> FuntypeClearBufferuiv-glrefClearBufferuiv :: IORef FuntypeClearBufferuiv-glrefClearBufferuiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClearBufferuiv #-}-glClearBufferuiv :: FuntypeClearBufferuiv-glClearBufferuiv = unsafePerformIO $ readIORef glrefClearBufferuiv-{-# INLINE glClearBufferuiv #-}-type FuntypeClearBufferfv =- GLenum ->- GLint ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClearBufferfv :: FunPtr FuntypeClearBufferfv -> FuntypeClearBufferfv-glrefClearBufferfv :: IORef FuntypeClearBufferfv-glrefClearBufferfv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClearBufferfv #-}-glClearBufferfv :: FuntypeClearBufferfv-glClearBufferfv = unsafePerformIO $ readIORef glrefClearBufferfv-{-# INLINE glClearBufferfv #-}-type FuntypeClearBufferfi =- GLenum ->- GLint ->- GLfloat ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClearBufferfi :: FunPtr FuntypeClearBufferfi -> FuntypeClearBufferfi-glrefClearBufferfi :: IORef FuntypeClearBufferfi-glrefClearBufferfi = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClearBufferfi #-}-glClearBufferfi :: FuntypeClearBufferfi-glClearBufferfi = unsafePerformIO $ readIORef glrefClearBufferfi-{-# INLINE glClearBufferfi #-}-type FuntypeGetStringi =- GLenum ->- GLuint ->- IO ( Ptr (GLubyte) )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetStringi :: FunPtr FuntypeGetStringi -> FuntypeGetStringi-glrefGetStringi :: IORef FuntypeGetStringi-glrefGetStringi = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetStringi #-}-glGetStringi :: FuntypeGetStringi-glGetStringi = unsafePerformIO $ readIORef glrefGetStringi-{-# INLINE glGetStringi #-}-type FuntypeIsRenderbuffer =- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsRenderbuffer :: FunPtr FuntypeIsRenderbuffer -> FuntypeIsRenderbuffer-glrefIsRenderbuffer :: IORef FuntypeIsRenderbuffer-glrefIsRenderbuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsRenderbuffer #-}-glIsRenderbuffer :: FuntypeIsRenderbuffer-glIsRenderbuffer = unsafePerformIO $ readIORef glrefIsRenderbuffer-{-# INLINE glIsRenderbuffer #-}-type FuntypeBindRenderbuffer =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindRenderbuffer :: FunPtr FuntypeBindRenderbuffer -> FuntypeBindRenderbuffer-glrefBindRenderbuffer :: IORef FuntypeBindRenderbuffer-glrefBindRenderbuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindRenderbuffer #-}-glBindRenderbuffer :: FuntypeBindRenderbuffer-glBindRenderbuffer = unsafePerformIO $ readIORef glrefBindRenderbuffer-{-# INLINE glBindRenderbuffer #-}-type FuntypeDeleteRenderbuffers =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDeleteRenderbuffers :: FunPtr FuntypeDeleteRenderbuffers -> FuntypeDeleteRenderbuffers-glrefDeleteRenderbuffers :: IORef FuntypeDeleteRenderbuffers-glrefDeleteRenderbuffers = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDeleteRenderbuffers #-}-glDeleteRenderbuffers :: FuntypeDeleteRenderbuffers-glDeleteRenderbuffers = unsafePerformIO $ readIORef glrefDeleteRenderbuffers-{-# INLINE glDeleteRenderbuffers #-}-type FuntypeGenRenderbuffers =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGenRenderbuffers :: FunPtr FuntypeGenRenderbuffers -> FuntypeGenRenderbuffers-glrefGenRenderbuffers :: IORef FuntypeGenRenderbuffers-glrefGenRenderbuffers = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGenRenderbuffers #-}-glGenRenderbuffers :: FuntypeGenRenderbuffers-glGenRenderbuffers = unsafePerformIO $ readIORef glrefGenRenderbuffers-{-# INLINE glGenRenderbuffers #-}-type FuntypeRenderbufferStorage =- GLenum ->- GLenum ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynRenderbufferStorage :: FunPtr FuntypeRenderbufferStorage -> FuntypeRenderbufferStorage-glrefRenderbufferStorage :: IORef FuntypeRenderbufferStorage-glrefRenderbufferStorage = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefRenderbufferStorage #-}-glRenderbufferStorage :: FuntypeRenderbufferStorage-glRenderbufferStorage = unsafePerformIO $ readIORef glrefRenderbufferStorage-{-# INLINE glRenderbufferStorage #-}-type FuntypeGetRenderbufferParameteriv =- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetRenderbufferParameteriv :: FunPtr FuntypeGetRenderbufferParameteriv -> FuntypeGetRenderbufferParameteriv-glrefGetRenderbufferParameteriv :: IORef FuntypeGetRenderbufferParameteriv-glrefGetRenderbufferParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetRenderbufferParameteriv #-}-glGetRenderbufferParameteriv :: FuntypeGetRenderbufferParameteriv-glGetRenderbufferParameteriv = unsafePerformIO $ readIORef glrefGetRenderbufferParameteriv-{-# INLINE glGetRenderbufferParameteriv #-}-type FuntypeIsFramebuffer =- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsFramebuffer :: FunPtr FuntypeIsFramebuffer -> FuntypeIsFramebuffer-glrefIsFramebuffer :: IORef FuntypeIsFramebuffer-glrefIsFramebuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsFramebuffer #-}-glIsFramebuffer :: FuntypeIsFramebuffer-glIsFramebuffer = unsafePerformIO $ readIORef glrefIsFramebuffer-{-# INLINE glIsFramebuffer #-}-type FuntypeBindFramebuffer =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindFramebuffer :: FunPtr FuntypeBindFramebuffer -> FuntypeBindFramebuffer-glrefBindFramebuffer :: IORef FuntypeBindFramebuffer-glrefBindFramebuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindFramebuffer #-}-glBindFramebuffer :: FuntypeBindFramebuffer-glBindFramebuffer = unsafePerformIO $ readIORef glrefBindFramebuffer-{-# INLINE glBindFramebuffer #-}-type FuntypeDeleteFramebuffers =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDeleteFramebuffers :: FunPtr FuntypeDeleteFramebuffers -> FuntypeDeleteFramebuffers-glrefDeleteFramebuffers :: IORef FuntypeDeleteFramebuffers-glrefDeleteFramebuffers = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDeleteFramebuffers #-}-glDeleteFramebuffers :: FuntypeDeleteFramebuffers-glDeleteFramebuffers = unsafePerformIO $ readIORef glrefDeleteFramebuffers-{-# INLINE glDeleteFramebuffers #-}-type FuntypeGenFramebuffers =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGenFramebuffers :: FunPtr FuntypeGenFramebuffers -> FuntypeGenFramebuffers-glrefGenFramebuffers :: IORef FuntypeGenFramebuffers-glrefGenFramebuffers = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGenFramebuffers #-}-glGenFramebuffers :: FuntypeGenFramebuffers-glGenFramebuffers = unsafePerformIO $ readIORef glrefGenFramebuffers-{-# INLINE glGenFramebuffers #-}-type FuntypeCheckFramebufferStatus =- GLenum ->- IO ( GLenum )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCheckFramebufferStatus :: FunPtr FuntypeCheckFramebufferStatus -> FuntypeCheckFramebufferStatus-glrefCheckFramebufferStatus :: IORef FuntypeCheckFramebufferStatus-glrefCheckFramebufferStatus = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCheckFramebufferStatus #-}-glCheckFramebufferStatus :: FuntypeCheckFramebufferStatus-glCheckFramebufferStatus = unsafePerformIO $ readIORef glrefCheckFramebufferStatus-{-# INLINE glCheckFramebufferStatus #-}-type FuntypeFramebufferTexture1D =- GLenum ->- GLenum ->- GLenum ->- GLuint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFramebufferTexture1D :: FunPtr FuntypeFramebufferTexture1D -> FuntypeFramebufferTexture1D-glrefFramebufferTexture1D :: IORef FuntypeFramebufferTexture1D-glrefFramebufferTexture1D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFramebufferTexture1D #-}-glFramebufferTexture1D :: FuntypeFramebufferTexture1D-glFramebufferTexture1D = unsafePerformIO $ readIORef glrefFramebufferTexture1D-{-# INLINE glFramebufferTexture1D #-}-type FuntypeFramebufferTexture2D =- GLenum ->- GLenum ->- GLenum ->- GLuint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFramebufferTexture2D :: FunPtr FuntypeFramebufferTexture2D -> FuntypeFramebufferTexture2D-glrefFramebufferTexture2D :: IORef FuntypeFramebufferTexture2D-glrefFramebufferTexture2D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFramebufferTexture2D #-}-glFramebufferTexture2D :: FuntypeFramebufferTexture2D-glFramebufferTexture2D = unsafePerformIO $ readIORef glrefFramebufferTexture2D-{-# INLINE glFramebufferTexture2D #-}-type FuntypeFramebufferTexture3D =- GLenum ->- GLenum ->- GLenum ->- GLuint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFramebufferTexture3D :: FunPtr FuntypeFramebufferTexture3D -> FuntypeFramebufferTexture3D-glrefFramebufferTexture3D :: IORef FuntypeFramebufferTexture3D-glrefFramebufferTexture3D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFramebufferTexture3D #-}-glFramebufferTexture3D :: FuntypeFramebufferTexture3D-glFramebufferTexture3D = unsafePerformIO $ readIORef glrefFramebufferTexture3D-{-# INLINE glFramebufferTexture3D #-}-type FuntypeFramebufferRenderbuffer =- GLenum ->- GLenum ->- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFramebufferRenderbuffer :: FunPtr FuntypeFramebufferRenderbuffer -> FuntypeFramebufferRenderbuffer-glrefFramebufferRenderbuffer :: IORef FuntypeFramebufferRenderbuffer-glrefFramebufferRenderbuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFramebufferRenderbuffer #-}-glFramebufferRenderbuffer :: FuntypeFramebufferRenderbuffer-glFramebufferRenderbuffer = unsafePerformIO $ readIORef glrefFramebufferRenderbuffer-{-# INLINE glFramebufferRenderbuffer #-}-type FuntypeGetFramebufferAttachmentParameteriv =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetFramebufferAttachmentParameteriv :: FunPtr FuntypeGetFramebufferAttachmentParameteriv -> FuntypeGetFramebufferAttachmentParameteriv-glrefGetFramebufferAttachmentParameteriv :: IORef FuntypeGetFramebufferAttachmentParameteriv-glrefGetFramebufferAttachmentParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetFramebufferAttachmentParameteriv #-}-glGetFramebufferAttachmentParameteriv :: FuntypeGetFramebufferAttachmentParameteriv-glGetFramebufferAttachmentParameteriv = unsafePerformIO $ readIORef glrefGetFramebufferAttachmentParameteriv-{-# INLINE glGetFramebufferAttachmentParameteriv #-}-type FuntypeGenerateMipmap =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGenerateMipmap :: FunPtr FuntypeGenerateMipmap -> FuntypeGenerateMipmap-glrefGenerateMipmap :: IORef FuntypeGenerateMipmap-glrefGenerateMipmap = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGenerateMipmap #-}-glGenerateMipmap :: FuntypeGenerateMipmap-glGenerateMipmap = unsafePerformIO $ readIORef glrefGenerateMipmap-{-# INLINE glGenerateMipmap #-}-type FuntypeBlitFramebuffer =- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLbitfield ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBlitFramebuffer :: FunPtr FuntypeBlitFramebuffer -> FuntypeBlitFramebuffer-glrefBlitFramebuffer :: IORef FuntypeBlitFramebuffer-glrefBlitFramebuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBlitFramebuffer #-}-glBlitFramebuffer :: FuntypeBlitFramebuffer-glBlitFramebuffer = unsafePerformIO $ readIORef glrefBlitFramebuffer-{-# INLINE glBlitFramebuffer #-}-type FuntypeRenderbufferStorageMultisample =- GLenum ->- GLsizei ->- GLenum ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynRenderbufferStorageMultisample :: FunPtr FuntypeRenderbufferStorageMultisample -> FuntypeRenderbufferStorageMultisample-glrefRenderbufferStorageMultisample :: IORef FuntypeRenderbufferStorageMultisample-glrefRenderbufferStorageMultisample = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefRenderbufferStorageMultisample #-}-glRenderbufferStorageMultisample :: FuntypeRenderbufferStorageMultisample-glRenderbufferStorageMultisample = unsafePerformIO $ readIORef glrefRenderbufferStorageMultisample-{-# INLINE glRenderbufferStorageMultisample #-}-type FuntypeFramebufferTextureLayer =- GLenum ->- GLenum ->- GLuint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFramebufferTextureLayer :: FunPtr FuntypeFramebufferTextureLayer -> FuntypeFramebufferTextureLayer-glrefFramebufferTextureLayer :: IORef FuntypeFramebufferTextureLayer-glrefFramebufferTextureLayer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFramebufferTextureLayer #-}-glFramebufferTextureLayer :: FuntypeFramebufferTextureLayer-glFramebufferTextureLayer = unsafePerformIO $ readIORef glrefFramebufferTextureLayer-{-# INLINE glFramebufferTextureLayer #-}-type FuntypeMapBufferRange =- GLenum ->- GLintptr ->- GLsizeiptr ->- GLbitfield ->- IO ( Ptr () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMapBufferRange :: FunPtr FuntypeMapBufferRange -> FuntypeMapBufferRange-glrefMapBufferRange :: IORef FuntypeMapBufferRange-glrefMapBufferRange = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMapBufferRange #-}-glMapBufferRange :: FuntypeMapBufferRange-glMapBufferRange = unsafePerformIO $ readIORef glrefMapBufferRange-{-# INLINE glMapBufferRange #-}-type FuntypeFlushMappedBufferRange =- GLenum ->- GLintptr ->- GLsizeiptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFlushMappedBufferRange :: FunPtr FuntypeFlushMappedBufferRange -> FuntypeFlushMappedBufferRange-glrefFlushMappedBufferRange :: IORef FuntypeFlushMappedBufferRange-glrefFlushMappedBufferRange = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFlushMappedBufferRange #-}-glFlushMappedBufferRange :: FuntypeFlushMappedBufferRange-glFlushMappedBufferRange = unsafePerformIO $ readIORef glrefFlushMappedBufferRange-{-# INLINE glFlushMappedBufferRange #-}-type FuntypeBindVertexArray =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindVertexArray :: FunPtr FuntypeBindVertexArray -> FuntypeBindVertexArray-glrefBindVertexArray :: IORef FuntypeBindVertexArray-glrefBindVertexArray = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindVertexArray #-}-glBindVertexArray :: FuntypeBindVertexArray-glBindVertexArray = unsafePerformIO $ readIORef glrefBindVertexArray-{-# INLINE glBindVertexArray #-}-type FuntypeDeleteVertexArrays =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDeleteVertexArrays :: FunPtr FuntypeDeleteVertexArrays -> FuntypeDeleteVertexArrays-glrefDeleteVertexArrays :: IORef FuntypeDeleteVertexArrays-glrefDeleteVertexArrays = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDeleteVertexArrays #-}-glDeleteVertexArrays :: FuntypeDeleteVertexArrays-glDeleteVertexArrays = unsafePerformIO $ readIORef glrefDeleteVertexArrays-{-# INLINE glDeleteVertexArrays #-}-type FuntypeGenVertexArrays =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGenVertexArrays :: FunPtr FuntypeGenVertexArrays -> FuntypeGenVertexArrays-glrefGenVertexArrays :: IORef FuntypeGenVertexArrays-glrefGenVertexArrays = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGenVertexArrays #-}-glGenVertexArrays :: FuntypeGenVertexArrays-glGenVertexArrays = unsafePerformIO $ readIORef glrefGenVertexArrays-{-# INLINE glGenVertexArrays #-}-type FuntypeIsVertexArray =- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsVertexArray :: FunPtr FuntypeIsVertexArray -> FuntypeIsVertexArray-glrefIsVertexArray :: IORef FuntypeIsVertexArray-glrefIsVertexArray = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsVertexArray #-}-glIsVertexArray :: FuntypeIsVertexArray-glIsVertexArray = unsafePerformIO $ readIORef glrefIsVertexArray-{-# INLINE glIsVertexArray #-}---- GL_VERSION_3_1--type FuntypeDrawArraysInstanced =- GLenum ->- GLint ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDrawArraysInstanced :: FunPtr FuntypeDrawArraysInstanced -> FuntypeDrawArraysInstanced-glrefDrawArraysInstanced :: IORef FuntypeDrawArraysInstanced-glrefDrawArraysInstanced = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDrawArraysInstanced #-}-glDrawArraysInstanced :: FuntypeDrawArraysInstanced-glDrawArraysInstanced = unsafePerformIO $ readIORef glrefDrawArraysInstanced-{-# INLINE glDrawArraysInstanced #-}-type FuntypeDrawElementsInstanced =- GLenum ->- GLsizei ->- GLenum ->- Ptr () ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDrawElementsInstanced :: FunPtr FuntypeDrawElementsInstanced -> FuntypeDrawElementsInstanced-glrefDrawElementsInstanced :: IORef FuntypeDrawElementsInstanced-glrefDrawElementsInstanced = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDrawElementsInstanced #-}-glDrawElementsInstanced :: FuntypeDrawElementsInstanced-glDrawElementsInstanced = unsafePerformIO $ readIORef glrefDrawElementsInstanced-{-# INLINE glDrawElementsInstanced #-}-type FuntypeTexBuffer =- GLenum ->- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexBuffer :: FunPtr FuntypeTexBuffer -> FuntypeTexBuffer-glrefTexBuffer :: IORef FuntypeTexBuffer-glrefTexBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexBuffer #-}-glTexBuffer :: FuntypeTexBuffer-glTexBuffer = unsafePerformIO $ readIORef glrefTexBuffer-{-# INLINE glTexBuffer #-}-type FuntypePrimitiveRestartIndex =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPrimitiveRestartIndex :: FunPtr FuntypePrimitiveRestartIndex -> FuntypePrimitiveRestartIndex-glrefPrimitiveRestartIndex :: IORef FuntypePrimitiveRestartIndex-glrefPrimitiveRestartIndex = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPrimitiveRestartIndex #-}-glPrimitiveRestartIndex :: FuntypePrimitiveRestartIndex-glPrimitiveRestartIndex = unsafePerformIO $ readIORef glrefPrimitiveRestartIndex-{-# INLINE glPrimitiveRestartIndex #-}-type FuntypeCopyBufferSubData =- GLenum ->- GLenum ->- GLintptr ->- GLintptr ->- GLsizeiptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyBufferSubData :: FunPtr FuntypeCopyBufferSubData -> FuntypeCopyBufferSubData-glrefCopyBufferSubData :: IORef FuntypeCopyBufferSubData-glrefCopyBufferSubData = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyBufferSubData #-}-glCopyBufferSubData :: FuntypeCopyBufferSubData-glCopyBufferSubData = unsafePerformIO $ readIORef glrefCopyBufferSubData-{-# INLINE glCopyBufferSubData #-}-type FuntypeGetUniformIndices =- GLuint ->- GLsizei ->- Ptr (Ptr (GLchar)) ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetUniformIndices :: FunPtr FuntypeGetUniformIndices -> FuntypeGetUniformIndices-glrefGetUniformIndices :: IORef FuntypeGetUniformIndices-glrefGetUniformIndices = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetUniformIndices #-}-glGetUniformIndices :: FuntypeGetUniformIndices-glGetUniformIndices = unsafePerformIO $ readIORef glrefGetUniformIndices-{-# INLINE glGetUniformIndices #-}-type FuntypeGetActiveUniformsiv =- GLuint ->- GLsizei ->- Ptr (GLuint) ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetActiveUniformsiv :: FunPtr FuntypeGetActiveUniformsiv -> FuntypeGetActiveUniformsiv-glrefGetActiveUniformsiv :: IORef FuntypeGetActiveUniformsiv-glrefGetActiveUniformsiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetActiveUniformsiv #-}-glGetActiveUniformsiv :: FuntypeGetActiveUniformsiv-glGetActiveUniformsiv = unsafePerformIO $ readIORef glrefGetActiveUniformsiv-{-# INLINE glGetActiveUniformsiv #-}-type FuntypeGetActiveUniformName =- GLuint ->- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetActiveUniformName :: FunPtr FuntypeGetActiveUniformName -> FuntypeGetActiveUniformName-glrefGetActiveUniformName :: IORef FuntypeGetActiveUniformName-glrefGetActiveUniformName = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetActiveUniformName #-}-glGetActiveUniformName :: FuntypeGetActiveUniformName-glGetActiveUniformName = unsafePerformIO $ readIORef glrefGetActiveUniformName-{-# INLINE glGetActiveUniformName #-}-type FuntypeGetUniformBlockIndex =- GLuint ->- Ptr (GLchar) ->- IO ( GLuint )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetUniformBlockIndex :: FunPtr FuntypeGetUniformBlockIndex -> FuntypeGetUniformBlockIndex-glrefGetUniformBlockIndex :: IORef FuntypeGetUniformBlockIndex-glrefGetUniformBlockIndex = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetUniformBlockIndex #-}-glGetUniformBlockIndex :: FuntypeGetUniformBlockIndex-glGetUniformBlockIndex = unsafePerformIO $ readIORef glrefGetUniformBlockIndex-{-# INLINE glGetUniformBlockIndex #-}-type FuntypeGetActiveUniformBlockiv =- GLuint ->- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetActiveUniformBlockiv :: FunPtr FuntypeGetActiveUniformBlockiv -> FuntypeGetActiveUniformBlockiv-glrefGetActiveUniformBlockiv :: IORef FuntypeGetActiveUniformBlockiv-glrefGetActiveUniformBlockiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetActiveUniformBlockiv #-}-glGetActiveUniformBlockiv :: FuntypeGetActiveUniformBlockiv-glGetActiveUniformBlockiv = unsafePerformIO $ readIORef glrefGetActiveUniformBlockiv-{-# INLINE glGetActiveUniformBlockiv #-}-type FuntypeGetActiveUniformBlockName =- GLuint ->- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetActiveUniformBlockName :: FunPtr FuntypeGetActiveUniformBlockName -> FuntypeGetActiveUniformBlockName-glrefGetActiveUniformBlockName :: IORef FuntypeGetActiveUniformBlockName-glrefGetActiveUniformBlockName = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetActiveUniformBlockName #-}-glGetActiveUniformBlockName :: FuntypeGetActiveUniformBlockName-glGetActiveUniformBlockName = unsafePerformIO $ readIORef glrefGetActiveUniformBlockName-{-# INLINE glGetActiveUniformBlockName #-}-type FuntypeUniformBlockBinding =- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUniformBlockBinding :: FunPtr FuntypeUniformBlockBinding -> FuntypeUniformBlockBinding-glrefUniformBlockBinding :: IORef FuntypeUniformBlockBinding-glrefUniformBlockBinding = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUniformBlockBinding #-}-glUniformBlockBinding :: FuntypeUniformBlockBinding-glUniformBlockBinding = unsafePerformIO $ readIORef glrefUniformBlockBinding-{-# INLINE glUniformBlockBinding #-}---- GL_VERSION_3_2--type FuntypeDrawElementsBaseVertex =- GLenum ->- GLsizei ->- GLenum ->- Ptr () ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDrawElementsBaseVertex :: FunPtr FuntypeDrawElementsBaseVertex -> FuntypeDrawElementsBaseVertex-glrefDrawElementsBaseVertex :: IORef FuntypeDrawElementsBaseVertex-glrefDrawElementsBaseVertex = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDrawElementsBaseVertex #-}-glDrawElementsBaseVertex :: FuntypeDrawElementsBaseVertex-glDrawElementsBaseVertex = unsafePerformIO $ readIORef glrefDrawElementsBaseVertex-{-# INLINE glDrawElementsBaseVertex #-}-type FuntypeDrawRangeElementsBaseVertex =- GLenum ->- GLuint ->- GLuint ->- GLsizei ->- GLenum ->- Ptr () ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDrawRangeElementsBaseVertex :: FunPtr FuntypeDrawRangeElementsBaseVertex -> FuntypeDrawRangeElementsBaseVertex-glrefDrawRangeElementsBaseVertex :: IORef FuntypeDrawRangeElementsBaseVertex-glrefDrawRangeElementsBaseVertex = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDrawRangeElementsBaseVertex #-}-glDrawRangeElementsBaseVertex :: FuntypeDrawRangeElementsBaseVertex-glDrawRangeElementsBaseVertex = unsafePerformIO $ readIORef glrefDrawRangeElementsBaseVertex-{-# INLINE glDrawRangeElementsBaseVertex #-}-type FuntypeDrawElementsInstancedBaseVertex =- GLenum ->- GLsizei ->- GLenum ->- Ptr () ->- GLsizei ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDrawElementsInstancedBaseVertex :: FunPtr FuntypeDrawElementsInstancedBaseVertex -> FuntypeDrawElementsInstancedBaseVertex-glrefDrawElementsInstancedBaseVertex :: IORef FuntypeDrawElementsInstancedBaseVertex-glrefDrawElementsInstancedBaseVertex = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDrawElementsInstancedBaseVertex #-}-glDrawElementsInstancedBaseVertex :: FuntypeDrawElementsInstancedBaseVertex-glDrawElementsInstancedBaseVertex = unsafePerformIO $ readIORef glrefDrawElementsInstancedBaseVertex-{-# INLINE glDrawElementsInstancedBaseVertex #-}-type FuntypeMultiDrawElementsBaseVertex =- GLenum ->- Ptr (GLsizei) ->- GLenum ->- Ptr (Ptr ()) ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiDrawElementsBaseVertex :: FunPtr FuntypeMultiDrawElementsBaseVertex -> FuntypeMultiDrawElementsBaseVertex-glrefMultiDrawElementsBaseVertex :: IORef FuntypeMultiDrawElementsBaseVertex-glrefMultiDrawElementsBaseVertex = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiDrawElementsBaseVertex #-}-glMultiDrawElementsBaseVertex :: FuntypeMultiDrawElementsBaseVertex-glMultiDrawElementsBaseVertex = unsafePerformIO $ readIORef glrefMultiDrawElementsBaseVertex-{-# INLINE glMultiDrawElementsBaseVertex #-}-type FuntypeProvokingVertex =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProvokingVertex :: FunPtr FuntypeProvokingVertex -> FuntypeProvokingVertex-glrefProvokingVertex :: IORef FuntypeProvokingVertex-glrefProvokingVertex = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProvokingVertex #-}-glProvokingVertex :: FuntypeProvokingVertex-glProvokingVertex = unsafePerformIO $ readIORef glrefProvokingVertex-{-# INLINE glProvokingVertex #-}-type FuntypeFenceSync =- GLenum ->- GLbitfield ->- IO ( GLsync )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFenceSync :: FunPtr FuntypeFenceSync -> FuntypeFenceSync-glrefFenceSync :: IORef FuntypeFenceSync-glrefFenceSync = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFenceSync #-}-glFenceSync :: FuntypeFenceSync-glFenceSync = unsafePerformIO $ readIORef glrefFenceSync-{-# INLINE glFenceSync #-}-type FuntypeIsSync =- GLsync ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsSync :: FunPtr FuntypeIsSync -> FuntypeIsSync-glrefIsSync :: IORef FuntypeIsSync-glrefIsSync = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsSync #-}-glIsSync :: FuntypeIsSync-glIsSync = unsafePerformIO $ readIORef glrefIsSync-{-# INLINE glIsSync #-}-type FuntypeDeleteSync =- GLsync ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDeleteSync :: FunPtr FuntypeDeleteSync -> FuntypeDeleteSync-glrefDeleteSync :: IORef FuntypeDeleteSync-glrefDeleteSync = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDeleteSync #-}-glDeleteSync :: FuntypeDeleteSync-glDeleteSync = unsafePerformIO $ readIORef glrefDeleteSync-{-# INLINE glDeleteSync #-}-type FuntypeClientWaitSync =- GLsync ->- GLbitfield ->- GLuint64 ->- IO ( GLenum )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClientWaitSync :: FunPtr FuntypeClientWaitSync -> FuntypeClientWaitSync-glrefClientWaitSync :: IORef FuntypeClientWaitSync-glrefClientWaitSync = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClientWaitSync #-}-glClientWaitSync :: FuntypeClientWaitSync-glClientWaitSync = unsafePerformIO $ readIORef glrefClientWaitSync-{-# INLINE glClientWaitSync #-}-type FuntypeWaitSync =- GLsync ->- GLbitfield ->- GLuint64 ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynWaitSync :: FunPtr FuntypeWaitSync -> FuntypeWaitSync-glrefWaitSync :: IORef FuntypeWaitSync-glrefWaitSync = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefWaitSync #-}-glWaitSync :: FuntypeWaitSync-glWaitSync = unsafePerformIO $ readIORef glrefWaitSync-{-# INLINE glWaitSync #-}-type FuntypeGetInteger64v =- GLenum ->- Ptr (GLint64) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetInteger64v :: FunPtr FuntypeGetInteger64v -> FuntypeGetInteger64v-glrefGetInteger64v :: IORef FuntypeGetInteger64v-glrefGetInteger64v = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetInteger64v #-}-glGetInteger64v :: FuntypeGetInteger64v-glGetInteger64v = unsafePerformIO $ readIORef glrefGetInteger64v-{-# INLINE glGetInteger64v #-}-type FuntypeGetSynciv =- GLsync ->- GLenum ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetSynciv :: FunPtr FuntypeGetSynciv -> FuntypeGetSynciv-glrefGetSynciv :: IORef FuntypeGetSynciv-glrefGetSynciv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetSynciv #-}-glGetSynciv :: FuntypeGetSynciv-glGetSynciv = unsafePerformIO $ readIORef glrefGetSynciv-{-# INLINE glGetSynciv #-}-type FuntypeGetInteger64i_v =- GLenum ->- GLuint ->- Ptr (GLint64) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetInteger64i_v :: FunPtr FuntypeGetInteger64i_v -> FuntypeGetInteger64i_v-glrefGetInteger64i_v :: IORef FuntypeGetInteger64i_v-glrefGetInteger64i_v = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetInteger64i_v #-}-glGetInteger64i_v :: FuntypeGetInteger64i_v-glGetInteger64i_v = unsafePerformIO $ readIORef glrefGetInteger64i_v-{-# INLINE glGetInteger64i_v #-}-type FuntypeGetBufferParameteri64v =- GLenum ->- GLenum ->- Ptr (GLint64) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetBufferParameteri64v :: FunPtr FuntypeGetBufferParameteri64v -> FuntypeGetBufferParameteri64v-glrefGetBufferParameteri64v :: IORef FuntypeGetBufferParameteri64v-glrefGetBufferParameteri64v = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetBufferParameteri64v #-}-glGetBufferParameteri64v :: FuntypeGetBufferParameteri64v-glGetBufferParameteri64v = unsafePerformIO $ readIORef glrefGetBufferParameteri64v-{-# INLINE glGetBufferParameteri64v #-}-type FuntypeFramebufferTexture =- GLenum ->- GLenum ->- GLuint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFramebufferTexture :: FunPtr FuntypeFramebufferTexture -> FuntypeFramebufferTexture-glrefFramebufferTexture :: IORef FuntypeFramebufferTexture-glrefFramebufferTexture = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFramebufferTexture #-}-glFramebufferTexture :: FuntypeFramebufferTexture-glFramebufferTexture = unsafePerformIO $ readIORef glrefFramebufferTexture-{-# INLINE glFramebufferTexture #-}-type FuntypeTexImage2DMultisample =- GLenum ->- GLsizei ->- GLenum ->- GLsizei ->- GLsizei ->- GLboolean ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexImage2DMultisample :: FunPtr FuntypeTexImage2DMultisample -> FuntypeTexImage2DMultisample-glrefTexImage2DMultisample :: IORef FuntypeTexImage2DMultisample-glrefTexImage2DMultisample = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexImage2DMultisample #-}-glTexImage2DMultisample :: FuntypeTexImage2DMultisample-glTexImage2DMultisample = unsafePerformIO $ readIORef glrefTexImage2DMultisample-{-# INLINE glTexImage2DMultisample #-}-type FuntypeTexImage3DMultisample =- GLenum ->- GLsizei ->- GLenum ->- GLsizei ->- GLsizei ->- GLsizei ->- GLboolean ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexImage3DMultisample :: FunPtr FuntypeTexImage3DMultisample -> FuntypeTexImage3DMultisample-glrefTexImage3DMultisample :: IORef FuntypeTexImage3DMultisample-glrefTexImage3DMultisample = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexImage3DMultisample #-}-glTexImage3DMultisample :: FuntypeTexImage3DMultisample-glTexImage3DMultisample = unsafePerformIO $ readIORef glrefTexImage3DMultisample-{-# INLINE glTexImage3DMultisample #-}-type FuntypeGetMultisamplefv =- GLenum ->- GLuint ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultisamplefv :: FunPtr FuntypeGetMultisamplefv -> FuntypeGetMultisamplefv-glrefGetMultisamplefv :: IORef FuntypeGetMultisamplefv-glrefGetMultisamplefv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultisamplefv #-}-glGetMultisamplefv :: FuntypeGetMultisamplefv-glGetMultisamplefv = unsafePerformIO $ readIORef glrefGetMultisamplefv-{-# INLINE glGetMultisamplefv #-}-type FuntypeSampleMaski =- GLuint ->- GLbitfield ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynSampleMaski :: FunPtr FuntypeSampleMaski -> FuntypeSampleMaski-glrefSampleMaski :: IORef FuntypeSampleMaski-glrefSampleMaski = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefSampleMaski #-}-glSampleMaski :: FuntypeSampleMaski-glSampleMaski = unsafePerformIO $ readIORef glrefSampleMaski-{-# INLINE glSampleMaski #-}---- GL_VERSION_3_3--type FuntypeBindFragDataLocationIndexed =- GLuint ->- GLuint ->- GLuint ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindFragDataLocationIndexed :: FunPtr FuntypeBindFragDataLocationIndexed -> FuntypeBindFragDataLocationIndexed-glrefBindFragDataLocationIndexed :: IORef FuntypeBindFragDataLocationIndexed-glrefBindFragDataLocationIndexed = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindFragDataLocationIndexed #-}-glBindFragDataLocationIndexed :: FuntypeBindFragDataLocationIndexed-glBindFragDataLocationIndexed = unsafePerformIO $ readIORef glrefBindFragDataLocationIndexed-{-# INLINE glBindFragDataLocationIndexed #-}-type FuntypeGetFragDataIndex =- GLuint ->- Ptr (GLchar) ->- IO ( GLint )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetFragDataIndex :: FunPtr FuntypeGetFragDataIndex -> FuntypeGetFragDataIndex-glrefGetFragDataIndex :: IORef FuntypeGetFragDataIndex-glrefGetFragDataIndex = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetFragDataIndex #-}-glGetFragDataIndex :: FuntypeGetFragDataIndex-glGetFragDataIndex = unsafePerformIO $ readIORef glrefGetFragDataIndex-{-# INLINE glGetFragDataIndex #-}-type FuntypeGenSamplers =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGenSamplers :: FunPtr FuntypeGenSamplers -> FuntypeGenSamplers-glrefGenSamplers :: IORef FuntypeGenSamplers-glrefGenSamplers = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGenSamplers #-}-glGenSamplers :: FuntypeGenSamplers-glGenSamplers = unsafePerformIO $ readIORef glrefGenSamplers-{-# INLINE glGenSamplers #-}-type FuntypeDeleteSamplers =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDeleteSamplers :: FunPtr FuntypeDeleteSamplers -> FuntypeDeleteSamplers-glrefDeleteSamplers :: IORef FuntypeDeleteSamplers-glrefDeleteSamplers = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDeleteSamplers #-}-glDeleteSamplers :: FuntypeDeleteSamplers-glDeleteSamplers = unsafePerformIO $ readIORef glrefDeleteSamplers-{-# INLINE glDeleteSamplers #-}-type FuntypeIsSampler =- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsSampler :: FunPtr FuntypeIsSampler -> FuntypeIsSampler-glrefIsSampler :: IORef FuntypeIsSampler-glrefIsSampler = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsSampler #-}-glIsSampler :: FuntypeIsSampler-glIsSampler = unsafePerformIO $ readIORef glrefIsSampler-{-# INLINE glIsSampler #-}-type FuntypeBindSampler =- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindSampler :: FunPtr FuntypeBindSampler -> FuntypeBindSampler-glrefBindSampler :: IORef FuntypeBindSampler-glrefBindSampler = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindSampler #-}-glBindSampler :: FuntypeBindSampler-glBindSampler = unsafePerformIO $ readIORef glrefBindSampler-{-# INLINE glBindSampler #-}-type FuntypeSamplerParameteri =- GLuint ->- GLenum ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynSamplerParameteri :: FunPtr FuntypeSamplerParameteri -> FuntypeSamplerParameteri-glrefSamplerParameteri :: IORef FuntypeSamplerParameteri-glrefSamplerParameteri = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefSamplerParameteri #-}-glSamplerParameteri :: FuntypeSamplerParameteri-glSamplerParameteri = unsafePerformIO $ readIORef glrefSamplerParameteri-{-# INLINE glSamplerParameteri #-}-type FuntypeSamplerParameteriv =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynSamplerParameteriv :: FunPtr FuntypeSamplerParameteriv -> FuntypeSamplerParameteriv-glrefSamplerParameteriv :: IORef FuntypeSamplerParameteriv-glrefSamplerParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefSamplerParameteriv #-}-glSamplerParameteriv :: FuntypeSamplerParameteriv-glSamplerParameteriv = unsafePerformIO $ readIORef glrefSamplerParameteriv-{-# INLINE glSamplerParameteriv #-}-type FuntypeSamplerParameterf =- GLuint ->- GLenum ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynSamplerParameterf :: FunPtr FuntypeSamplerParameterf -> FuntypeSamplerParameterf-glrefSamplerParameterf :: IORef FuntypeSamplerParameterf-glrefSamplerParameterf = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefSamplerParameterf #-}-glSamplerParameterf :: FuntypeSamplerParameterf-glSamplerParameterf = unsafePerformIO $ readIORef glrefSamplerParameterf-{-# INLINE glSamplerParameterf #-}-type FuntypeSamplerParameterfv =- GLuint ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynSamplerParameterfv :: FunPtr FuntypeSamplerParameterfv -> FuntypeSamplerParameterfv-glrefSamplerParameterfv :: IORef FuntypeSamplerParameterfv-glrefSamplerParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefSamplerParameterfv #-}-glSamplerParameterfv :: FuntypeSamplerParameterfv-glSamplerParameterfv = unsafePerformIO $ readIORef glrefSamplerParameterfv-{-# INLINE glSamplerParameterfv #-}-type FuntypeSamplerParameterIiv =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynSamplerParameterIiv :: FunPtr FuntypeSamplerParameterIiv -> FuntypeSamplerParameterIiv-glrefSamplerParameterIiv :: IORef FuntypeSamplerParameterIiv-glrefSamplerParameterIiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefSamplerParameterIiv #-}-glSamplerParameterIiv :: FuntypeSamplerParameterIiv-glSamplerParameterIiv = unsafePerformIO $ readIORef glrefSamplerParameterIiv-{-# INLINE glSamplerParameterIiv #-}-type FuntypeSamplerParameterIuiv =- GLuint ->- GLenum ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynSamplerParameterIuiv :: FunPtr FuntypeSamplerParameterIuiv -> FuntypeSamplerParameterIuiv-glrefSamplerParameterIuiv :: IORef FuntypeSamplerParameterIuiv-glrefSamplerParameterIuiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefSamplerParameterIuiv #-}-glSamplerParameterIuiv :: FuntypeSamplerParameterIuiv-glSamplerParameterIuiv = unsafePerformIO $ readIORef glrefSamplerParameterIuiv-{-# INLINE glSamplerParameterIuiv #-}-type FuntypeGetSamplerParameteriv =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetSamplerParameteriv :: FunPtr FuntypeGetSamplerParameteriv -> FuntypeGetSamplerParameteriv-glrefGetSamplerParameteriv :: IORef FuntypeGetSamplerParameteriv-glrefGetSamplerParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetSamplerParameteriv #-}-glGetSamplerParameteriv :: FuntypeGetSamplerParameteriv-glGetSamplerParameteriv = unsafePerformIO $ readIORef glrefGetSamplerParameteriv-{-# INLINE glGetSamplerParameteriv #-}-type FuntypeGetSamplerParameterIiv =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetSamplerParameterIiv :: FunPtr FuntypeGetSamplerParameterIiv -> FuntypeGetSamplerParameterIiv-glrefGetSamplerParameterIiv :: IORef FuntypeGetSamplerParameterIiv-glrefGetSamplerParameterIiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetSamplerParameterIiv #-}-glGetSamplerParameterIiv :: FuntypeGetSamplerParameterIiv-glGetSamplerParameterIiv = unsafePerformIO $ readIORef glrefGetSamplerParameterIiv-{-# INLINE glGetSamplerParameterIiv #-}-type FuntypeGetSamplerParameterfv =- GLuint ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetSamplerParameterfv :: FunPtr FuntypeGetSamplerParameterfv -> FuntypeGetSamplerParameterfv-glrefGetSamplerParameterfv :: IORef FuntypeGetSamplerParameterfv-glrefGetSamplerParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetSamplerParameterfv #-}-glGetSamplerParameterfv :: FuntypeGetSamplerParameterfv-glGetSamplerParameterfv = unsafePerformIO $ readIORef glrefGetSamplerParameterfv-{-# INLINE glGetSamplerParameterfv #-}-type FuntypeGetSamplerParameterIuiv =- GLuint ->- GLenum ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetSamplerParameterIuiv :: FunPtr FuntypeGetSamplerParameterIuiv -> FuntypeGetSamplerParameterIuiv-glrefGetSamplerParameterIuiv :: IORef FuntypeGetSamplerParameterIuiv-glrefGetSamplerParameterIuiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetSamplerParameterIuiv #-}-glGetSamplerParameterIuiv :: FuntypeGetSamplerParameterIuiv-glGetSamplerParameterIuiv = unsafePerformIO $ readIORef glrefGetSamplerParameterIuiv-{-# INLINE glGetSamplerParameterIuiv #-}-type FuntypeQueryCounter =- GLuint ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynQueryCounter :: FunPtr FuntypeQueryCounter -> FuntypeQueryCounter-glrefQueryCounter :: IORef FuntypeQueryCounter-glrefQueryCounter = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefQueryCounter #-}-glQueryCounter :: FuntypeQueryCounter-glQueryCounter = unsafePerformIO $ readIORef glrefQueryCounter-{-# INLINE glQueryCounter #-}-type FuntypeGetQueryObjecti64v =- GLuint ->- GLenum ->- Ptr (GLint64) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetQueryObjecti64v :: FunPtr FuntypeGetQueryObjecti64v -> FuntypeGetQueryObjecti64v-glrefGetQueryObjecti64v :: IORef FuntypeGetQueryObjecti64v-glrefGetQueryObjecti64v = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetQueryObjecti64v #-}-glGetQueryObjecti64v :: FuntypeGetQueryObjecti64v-glGetQueryObjecti64v = unsafePerformIO $ readIORef glrefGetQueryObjecti64v-{-# INLINE glGetQueryObjecti64v #-}-type FuntypeGetQueryObjectui64v =- GLuint ->- GLenum ->- Ptr (GLuint64) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetQueryObjectui64v :: FunPtr FuntypeGetQueryObjectui64v -> FuntypeGetQueryObjectui64v-glrefGetQueryObjectui64v :: IORef FuntypeGetQueryObjectui64v-glrefGetQueryObjectui64v = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetQueryObjectui64v #-}-glGetQueryObjectui64v :: FuntypeGetQueryObjectui64v-glGetQueryObjectui64v = unsafePerformIO $ readIORef glrefGetQueryObjectui64v-{-# INLINE glGetQueryObjectui64v #-}-type FuntypeVertexAttribDivisor =- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribDivisor :: FunPtr FuntypeVertexAttribDivisor -> FuntypeVertexAttribDivisor-glrefVertexAttribDivisor :: IORef FuntypeVertexAttribDivisor-glrefVertexAttribDivisor = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribDivisor #-}-glVertexAttribDivisor :: FuntypeVertexAttribDivisor-glVertexAttribDivisor = unsafePerformIO $ readIORef glrefVertexAttribDivisor-{-# INLINE glVertexAttribDivisor #-}-type FuntypeVertexAttribP1ui =- GLuint ->- GLenum ->- GLboolean ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribP1ui :: FunPtr FuntypeVertexAttribP1ui -> FuntypeVertexAttribP1ui-glrefVertexAttribP1ui :: IORef FuntypeVertexAttribP1ui-glrefVertexAttribP1ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribP1ui #-}-glVertexAttribP1ui :: FuntypeVertexAttribP1ui-glVertexAttribP1ui = unsafePerformIO $ readIORef glrefVertexAttribP1ui-{-# INLINE glVertexAttribP1ui #-}-type FuntypeVertexAttribP1uiv =- GLuint ->- GLenum ->- GLboolean ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribP1uiv :: FunPtr FuntypeVertexAttribP1uiv -> FuntypeVertexAttribP1uiv-glrefVertexAttribP1uiv :: IORef FuntypeVertexAttribP1uiv-glrefVertexAttribP1uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribP1uiv #-}-glVertexAttribP1uiv :: FuntypeVertexAttribP1uiv-glVertexAttribP1uiv = unsafePerformIO $ readIORef glrefVertexAttribP1uiv-{-# INLINE glVertexAttribP1uiv #-}-type FuntypeVertexAttribP2ui =- GLuint ->- GLenum ->- GLboolean ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribP2ui :: FunPtr FuntypeVertexAttribP2ui -> FuntypeVertexAttribP2ui-glrefVertexAttribP2ui :: IORef FuntypeVertexAttribP2ui-glrefVertexAttribP2ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribP2ui #-}-glVertexAttribP2ui :: FuntypeVertexAttribP2ui-glVertexAttribP2ui = unsafePerformIO $ readIORef glrefVertexAttribP2ui-{-# INLINE glVertexAttribP2ui #-}-type FuntypeVertexAttribP2uiv =- GLuint ->- GLenum ->- GLboolean ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribP2uiv :: FunPtr FuntypeVertexAttribP2uiv -> FuntypeVertexAttribP2uiv-glrefVertexAttribP2uiv :: IORef FuntypeVertexAttribP2uiv-glrefVertexAttribP2uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribP2uiv #-}-glVertexAttribP2uiv :: FuntypeVertexAttribP2uiv-glVertexAttribP2uiv = unsafePerformIO $ readIORef glrefVertexAttribP2uiv-{-# INLINE glVertexAttribP2uiv #-}-type FuntypeVertexAttribP3ui =- GLuint ->- GLenum ->- GLboolean ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribP3ui :: FunPtr FuntypeVertexAttribP3ui -> FuntypeVertexAttribP3ui-glrefVertexAttribP3ui :: IORef FuntypeVertexAttribP3ui-glrefVertexAttribP3ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribP3ui #-}-glVertexAttribP3ui :: FuntypeVertexAttribP3ui-glVertexAttribP3ui = unsafePerformIO $ readIORef glrefVertexAttribP3ui-{-# INLINE glVertexAttribP3ui #-}-type FuntypeVertexAttribP3uiv =- GLuint ->- GLenum ->- GLboolean ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribP3uiv :: FunPtr FuntypeVertexAttribP3uiv -> FuntypeVertexAttribP3uiv-glrefVertexAttribP3uiv :: IORef FuntypeVertexAttribP3uiv-glrefVertexAttribP3uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribP3uiv #-}-glVertexAttribP3uiv :: FuntypeVertexAttribP3uiv-glVertexAttribP3uiv = unsafePerformIO $ readIORef glrefVertexAttribP3uiv-{-# INLINE glVertexAttribP3uiv #-}-type FuntypeVertexAttribP4ui =- GLuint ->- GLenum ->- GLboolean ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribP4ui :: FunPtr FuntypeVertexAttribP4ui -> FuntypeVertexAttribP4ui-glrefVertexAttribP4ui :: IORef FuntypeVertexAttribP4ui-glrefVertexAttribP4ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribP4ui #-}-glVertexAttribP4ui :: FuntypeVertexAttribP4ui-glVertexAttribP4ui = unsafePerformIO $ readIORef glrefVertexAttribP4ui-{-# INLINE glVertexAttribP4ui #-}-type FuntypeVertexAttribP4uiv =- GLuint ->- GLenum ->- GLboolean ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexAttribP4uiv :: FunPtr FuntypeVertexAttribP4uiv -> FuntypeVertexAttribP4uiv-glrefVertexAttribP4uiv :: IORef FuntypeVertexAttribP4uiv-glrefVertexAttribP4uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexAttribP4uiv #-}-glVertexAttribP4uiv :: FuntypeVertexAttribP4uiv-glVertexAttribP4uiv = unsafePerformIO $ readIORef glrefVertexAttribP4uiv-{-# INLINE glVertexAttribP4uiv #-}---- GL_ARB_texture_storage--type FuntypeTexStorage1D =- GLenum ->- GLsizei ->- GLenum ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexStorage1D :: FunPtr FuntypeTexStorage1D -> FuntypeTexStorage1D-glrefTexStorage1D :: IORef FuntypeTexStorage1D-glrefTexStorage1D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexStorage1D #-}-glTexStorage1D :: FuntypeTexStorage1D-glTexStorage1D = unsafePerformIO $ readIORef glrefTexStorage1D-{-# INLINE glTexStorage1D #-}-type FuntypeTexStorage2D =- GLenum ->- GLsizei ->- GLenum ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexStorage2D :: FunPtr FuntypeTexStorage2D -> FuntypeTexStorage2D-glrefTexStorage2D :: IORef FuntypeTexStorage2D-glrefTexStorage2D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexStorage2D #-}-glTexStorage2D :: FuntypeTexStorage2D-glTexStorage2D = unsafePerformIO $ readIORef glrefTexStorage2D-{-# INLINE glTexStorage2D #-}-type FuntypeTexStorage3D =- GLenum ->- GLsizei ->- GLenum ->- GLsizei ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexStorage3D :: FunPtr FuntypeTexStorage3D -> FuntypeTexStorage3D-glrefTexStorage3D :: IORef FuntypeTexStorage3D-glrefTexStorage3D = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexStorage3D #-}-glTexStorage3D :: FuntypeTexStorage3D-glTexStorage3D = unsafePerformIO $ readIORef glrefTexStorage3D-{-# INLINE glTexStorage3D #-}---- GL_KHR_debug--type FuntypeDebugMessageControl =- GLenum ->- GLenum ->- GLenum ->- GLsizei ->- Ptr (GLuint) ->- GLboolean ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDebugMessageControl :: FunPtr FuntypeDebugMessageControl -> FuntypeDebugMessageControl-glrefDebugMessageControl :: IORef FuntypeDebugMessageControl-glrefDebugMessageControl = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDebugMessageControl #-}-glDebugMessageControl :: FuntypeDebugMessageControl-glDebugMessageControl = unsafePerformIO $ readIORef glrefDebugMessageControl-{-# INLINE glDebugMessageControl #-}-type FuntypeDebugMessageInsert =- GLenum ->- GLenum ->- GLuint ->- GLenum ->- GLsizei ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDebugMessageInsert :: FunPtr FuntypeDebugMessageInsert -> FuntypeDebugMessageInsert-glrefDebugMessageInsert :: IORef FuntypeDebugMessageInsert-glrefDebugMessageInsert = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDebugMessageInsert #-}-glDebugMessageInsert :: FuntypeDebugMessageInsert-glDebugMessageInsert = unsafePerformIO $ readIORef glrefDebugMessageInsert-{-# INLINE glDebugMessageInsert #-}-type FuntypeDebugMessageCallback =- GLDEBUGPROC ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDebugMessageCallback :: FunPtr FuntypeDebugMessageCallback -> FuntypeDebugMessageCallback-glrefDebugMessageCallback :: IORef FuntypeDebugMessageCallback-glrefDebugMessageCallback = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDebugMessageCallback #-}-glDebugMessageCallback :: FuntypeDebugMessageCallback-glDebugMessageCallback = unsafePerformIO $ readIORef glrefDebugMessageCallback-{-# INLINE glDebugMessageCallback #-}-type FuntypeGetDebugMessageLog =- GLuint ->- GLsizei ->- Ptr (GLenum) ->- Ptr (GLenum) ->- Ptr (GLuint) ->- Ptr (GLenum) ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( GLuint )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetDebugMessageLog :: FunPtr FuntypeGetDebugMessageLog -> FuntypeGetDebugMessageLog-glrefGetDebugMessageLog :: IORef FuntypeGetDebugMessageLog-glrefGetDebugMessageLog = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetDebugMessageLog #-}-glGetDebugMessageLog :: FuntypeGetDebugMessageLog-glGetDebugMessageLog = unsafePerformIO $ readIORef glrefGetDebugMessageLog-{-# INLINE glGetDebugMessageLog #-}-type FuntypePushDebugGroup =- GLenum ->- GLuint ->- GLsizei ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPushDebugGroup :: FunPtr FuntypePushDebugGroup -> FuntypePushDebugGroup-glrefPushDebugGroup :: IORef FuntypePushDebugGroup-glrefPushDebugGroup = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPushDebugGroup #-}-glPushDebugGroup :: FuntypePushDebugGroup-glPushDebugGroup = unsafePerformIO $ readIORef glrefPushDebugGroup-{-# INLINE glPushDebugGroup #-}-type FuntypePopDebugGroup =- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPopDebugGroup :: FunPtr FuntypePopDebugGroup -> FuntypePopDebugGroup-glrefPopDebugGroup :: IORef FuntypePopDebugGroup-glrefPopDebugGroup = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPopDebugGroup #-}-glPopDebugGroup :: FuntypePopDebugGroup-glPopDebugGroup = unsafePerformIO $ readIORef glrefPopDebugGroup-{-# INLINE glPopDebugGroup #-}-type FuntypeObjectLabel =- GLenum ->- GLuint ->- GLsizei ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynObjectLabel :: FunPtr FuntypeObjectLabel -> FuntypeObjectLabel-glrefObjectLabel :: IORef FuntypeObjectLabel-glrefObjectLabel = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefObjectLabel #-}-glObjectLabel :: FuntypeObjectLabel-glObjectLabel = unsafePerformIO $ readIORef glrefObjectLabel-{-# INLINE glObjectLabel #-}-type FuntypeGetObjectLabel =- GLenum ->- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetObjectLabel :: FunPtr FuntypeGetObjectLabel -> FuntypeGetObjectLabel-glrefGetObjectLabel :: IORef FuntypeGetObjectLabel-glrefGetObjectLabel = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetObjectLabel #-}-glGetObjectLabel :: FuntypeGetObjectLabel-glGetObjectLabel = unsafePerformIO $ readIORef glrefGetObjectLabel-{-# INLINE glGetObjectLabel #-}-type FuntypeObjectPtrLabel =- Ptr () ->- GLsizei ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynObjectPtrLabel :: FunPtr FuntypeObjectPtrLabel -> FuntypeObjectPtrLabel-glrefObjectPtrLabel :: IORef FuntypeObjectPtrLabel-glrefObjectPtrLabel = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefObjectPtrLabel #-}-glObjectPtrLabel :: FuntypeObjectPtrLabel-glObjectPtrLabel = unsafePerformIO $ readIORef glrefObjectPtrLabel-{-# INLINE glObjectPtrLabel #-}-type FuntypeGetObjectPtrLabel =- Ptr () ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetObjectPtrLabel :: FunPtr FuntypeGetObjectPtrLabel -> FuntypeGetObjectPtrLabel-glrefGetObjectPtrLabel :: IORef FuntypeGetObjectPtrLabel-glrefGetObjectPtrLabel = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetObjectPtrLabel #-}-glGetObjectPtrLabel :: FuntypeGetObjectPtrLabel-glGetObjectPtrLabel = unsafePerformIO $ readIORef glrefGetObjectPtrLabel-{-# INLINE glGetObjectPtrLabel #-}-type FuntypeGetPointerv =- GLenum ->- Ptr (Ptr ()) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetPointerv :: FunPtr FuntypeGetPointerv -> FuntypeGetPointerv-glrefGetPointerv :: IORef FuntypeGetPointerv-glrefGetPointerv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetPointerv #-}-glGetPointerv :: FuntypeGetPointerv-glGetPointerv = unsafePerformIO $ readIORef glrefGetPointerv-{-# INLINE glGetPointerv #-}-type FuntypeDebugMessageControlKHR =- GLenum ->- GLenum ->- GLenum ->- GLsizei ->- Ptr (GLuint) ->- GLboolean ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDebugMessageControlKHR :: FunPtr FuntypeDebugMessageControlKHR -> FuntypeDebugMessageControlKHR-glrefDebugMessageControlKHR :: IORef FuntypeDebugMessageControlKHR-glrefDebugMessageControlKHR = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDebugMessageControlKHR #-}-glDebugMessageControlKHR :: FuntypeDebugMessageControlKHR-glDebugMessageControlKHR = unsafePerformIO $ readIORef glrefDebugMessageControlKHR-{-# INLINE glDebugMessageControlKHR #-}-type FuntypeDebugMessageInsertKHR =- GLenum ->- GLenum ->- GLuint ->- GLenum ->- GLsizei ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDebugMessageInsertKHR :: FunPtr FuntypeDebugMessageInsertKHR -> FuntypeDebugMessageInsertKHR-glrefDebugMessageInsertKHR :: IORef FuntypeDebugMessageInsertKHR-glrefDebugMessageInsertKHR = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDebugMessageInsertKHR #-}-glDebugMessageInsertKHR :: FuntypeDebugMessageInsertKHR-glDebugMessageInsertKHR = unsafePerformIO $ readIORef glrefDebugMessageInsertKHR-{-# INLINE glDebugMessageInsertKHR #-}-type FuntypeDebugMessageCallbackKHR =- GLDEBUGPROCKHR ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDebugMessageCallbackKHR :: FunPtr FuntypeDebugMessageCallbackKHR -> FuntypeDebugMessageCallbackKHR-glrefDebugMessageCallbackKHR :: IORef FuntypeDebugMessageCallbackKHR-glrefDebugMessageCallbackKHR = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDebugMessageCallbackKHR #-}-glDebugMessageCallbackKHR :: FuntypeDebugMessageCallbackKHR-glDebugMessageCallbackKHR = unsafePerformIO $ readIORef glrefDebugMessageCallbackKHR-{-# INLINE glDebugMessageCallbackKHR #-}-type FuntypeGetDebugMessageLogKHR =- GLuint ->- GLsizei ->- Ptr (GLenum) ->- Ptr (GLenum) ->- Ptr (GLuint) ->- Ptr (GLenum) ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( GLuint )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetDebugMessageLogKHR :: FunPtr FuntypeGetDebugMessageLogKHR -> FuntypeGetDebugMessageLogKHR-glrefGetDebugMessageLogKHR :: IORef FuntypeGetDebugMessageLogKHR-glrefGetDebugMessageLogKHR = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetDebugMessageLogKHR #-}-glGetDebugMessageLogKHR :: FuntypeGetDebugMessageLogKHR-glGetDebugMessageLogKHR = unsafePerformIO $ readIORef glrefGetDebugMessageLogKHR-{-# INLINE glGetDebugMessageLogKHR #-}-type FuntypePushDebugGroupKHR =- GLenum ->- GLuint ->- GLsizei ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPushDebugGroupKHR :: FunPtr FuntypePushDebugGroupKHR -> FuntypePushDebugGroupKHR-glrefPushDebugGroupKHR :: IORef FuntypePushDebugGroupKHR-glrefPushDebugGroupKHR = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPushDebugGroupKHR #-}-glPushDebugGroupKHR :: FuntypePushDebugGroupKHR-glPushDebugGroupKHR = unsafePerformIO $ readIORef glrefPushDebugGroupKHR-{-# INLINE glPushDebugGroupKHR #-}-type FuntypePopDebugGroupKHR =- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPopDebugGroupKHR :: FunPtr FuntypePopDebugGroupKHR -> FuntypePopDebugGroupKHR-glrefPopDebugGroupKHR :: IORef FuntypePopDebugGroupKHR-glrefPopDebugGroupKHR = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPopDebugGroupKHR #-}-glPopDebugGroupKHR :: FuntypePopDebugGroupKHR-glPopDebugGroupKHR = unsafePerformIO $ readIORef glrefPopDebugGroupKHR-{-# INLINE glPopDebugGroupKHR #-}-type FuntypeObjectLabelKHR =- GLenum ->- GLuint ->- GLsizei ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynObjectLabelKHR :: FunPtr FuntypeObjectLabelKHR -> FuntypeObjectLabelKHR-glrefObjectLabelKHR :: IORef FuntypeObjectLabelKHR-glrefObjectLabelKHR = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefObjectLabelKHR #-}-glObjectLabelKHR :: FuntypeObjectLabelKHR-glObjectLabelKHR = unsafePerformIO $ readIORef glrefObjectLabelKHR-{-# INLINE glObjectLabelKHR #-}-type FuntypeGetObjectLabelKHR =- GLenum ->- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetObjectLabelKHR :: FunPtr FuntypeGetObjectLabelKHR -> FuntypeGetObjectLabelKHR-glrefGetObjectLabelKHR :: IORef FuntypeGetObjectLabelKHR-glrefGetObjectLabelKHR = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetObjectLabelKHR #-}-glGetObjectLabelKHR :: FuntypeGetObjectLabelKHR-glGetObjectLabelKHR = unsafePerformIO $ readIORef glrefGetObjectLabelKHR-{-# INLINE glGetObjectLabelKHR #-}-type FuntypeObjectPtrLabelKHR =- Ptr () ->- GLsizei ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynObjectPtrLabelKHR :: FunPtr FuntypeObjectPtrLabelKHR -> FuntypeObjectPtrLabelKHR-glrefObjectPtrLabelKHR :: IORef FuntypeObjectPtrLabelKHR-glrefObjectPtrLabelKHR = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefObjectPtrLabelKHR #-}-glObjectPtrLabelKHR :: FuntypeObjectPtrLabelKHR-glObjectPtrLabelKHR = unsafePerformIO $ readIORef glrefObjectPtrLabelKHR-{-# INLINE glObjectPtrLabelKHR #-}-type FuntypeGetObjectPtrLabelKHR =- Ptr () ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetObjectPtrLabelKHR :: FunPtr FuntypeGetObjectPtrLabelKHR -> FuntypeGetObjectPtrLabelKHR-glrefGetObjectPtrLabelKHR :: IORef FuntypeGetObjectPtrLabelKHR-glrefGetObjectPtrLabelKHR = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetObjectPtrLabelKHR #-}-glGetObjectPtrLabelKHR :: FuntypeGetObjectPtrLabelKHR-glGetObjectPtrLabelKHR = unsafePerformIO $ readIORef glrefGetObjectPtrLabelKHR-{-# INLINE glGetObjectPtrLabelKHR #-}-type FuntypeGetPointervKHR =- GLenum ->- Ptr (Ptr ()) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetPointervKHR :: FunPtr FuntypeGetPointervKHR -> FuntypeGetPointervKHR-glrefGetPointervKHR :: IORef FuntypeGetPointervKHR-glrefGetPointervKHR = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetPointervKHR #-}-glGetPointervKHR :: FuntypeGetPointervKHR-glGetPointervKHR = unsafePerformIO $ readIORef glrefGetPointervKHR-{-# INLINE glGetPointervKHR #-}---- GL_EXT_direct_state_access--type FuntypeMatrixLoadfEXT =- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixLoadfEXT :: FunPtr FuntypeMatrixLoadfEXT -> FuntypeMatrixLoadfEXT-glrefMatrixLoadfEXT :: IORef FuntypeMatrixLoadfEXT-glrefMatrixLoadfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixLoadfEXT #-}-glMatrixLoadfEXT :: FuntypeMatrixLoadfEXT-glMatrixLoadfEXT = unsafePerformIO $ readIORef glrefMatrixLoadfEXT-{-# INLINE glMatrixLoadfEXT #-}-type FuntypeMatrixLoaddEXT =- GLenum ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixLoaddEXT :: FunPtr FuntypeMatrixLoaddEXT -> FuntypeMatrixLoaddEXT-glrefMatrixLoaddEXT :: IORef FuntypeMatrixLoaddEXT-glrefMatrixLoaddEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixLoaddEXT #-}-glMatrixLoaddEXT :: FuntypeMatrixLoaddEXT-glMatrixLoaddEXT = unsafePerformIO $ readIORef glrefMatrixLoaddEXT-{-# INLINE glMatrixLoaddEXT #-}-type FuntypeMatrixMultfEXT =- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixMultfEXT :: FunPtr FuntypeMatrixMultfEXT -> FuntypeMatrixMultfEXT-glrefMatrixMultfEXT :: IORef FuntypeMatrixMultfEXT-glrefMatrixMultfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixMultfEXT #-}-glMatrixMultfEXT :: FuntypeMatrixMultfEXT-glMatrixMultfEXT = unsafePerformIO $ readIORef glrefMatrixMultfEXT-{-# INLINE glMatrixMultfEXT #-}-type FuntypeMatrixMultdEXT =- GLenum ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixMultdEXT :: FunPtr FuntypeMatrixMultdEXT -> FuntypeMatrixMultdEXT-glrefMatrixMultdEXT :: IORef FuntypeMatrixMultdEXT-glrefMatrixMultdEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixMultdEXT #-}-glMatrixMultdEXT :: FuntypeMatrixMultdEXT-glMatrixMultdEXT = unsafePerformIO $ readIORef glrefMatrixMultdEXT-{-# INLINE glMatrixMultdEXT #-}-type FuntypeMatrixLoadIdentityEXT =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixLoadIdentityEXT :: FunPtr FuntypeMatrixLoadIdentityEXT -> FuntypeMatrixLoadIdentityEXT-glrefMatrixLoadIdentityEXT :: IORef FuntypeMatrixLoadIdentityEXT-glrefMatrixLoadIdentityEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixLoadIdentityEXT #-}-glMatrixLoadIdentityEXT :: FuntypeMatrixLoadIdentityEXT-glMatrixLoadIdentityEXT = unsafePerformIO $ readIORef glrefMatrixLoadIdentityEXT-{-# INLINE glMatrixLoadIdentityEXT #-}-type FuntypeMatrixRotatefEXT =- GLenum ->- GLfloat ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixRotatefEXT :: FunPtr FuntypeMatrixRotatefEXT -> FuntypeMatrixRotatefEXT-glrefMatrixRotatefEXT :: IORef FuntypeMatrixRotatefEXT-glrefMatrixRotatefEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixRotatefEXT #-}-glMatrixRotatefEXT :: FuntypeMatrixRotatefEXT-glMatrixRotatefEXT = unsafePerformIO $ readIORef glrefMatrixRotatefEXT-{-# INLINE glMatrixRotatefEXT #-}-type FuntypeMatrixRotatedEXT =- GLenum ->- GLdouble ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixRotatedEXT :: FunPtr FuntypeMatrixRotatedEXT -> FuntypeMatrixRotatedEXT-glrefMatrixRotatedEXT :: IORef FuntypeMatrixRotatedEXT-glrefMatrixRotatedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixRotatedEXT #-}-glMatrixRotatedEXT :: FuntypeMatrixRotatedEXT-glMatrixRotatedEXT = unsafePerformIO $ readIORef glrefMatrixRotatedEXT-{-# INLINE glMatrixRotatedEXT #-}-type FuntypeMatrixScalefEXT =- GLenum ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixScalefEXT :: FunPtr FuntypeMatrixScalefEXT -> FuntypeMatrixScalefEXT-glrefMatrixScalefEXT :: IORef FuntypeMatrixScalefEXT-glrefMatrixScalefEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixScalefEXT #-}-glMatrixScalefEXT :: FuntypeMatrixScalefEXT-glMatrixScalefEXT = unsafePerformIO $ readIORef glrefMatrixScalefEXT-{-# INLINE glMatrixScalefEXT #-}-type FuntypeMatrixScaledEXT =- GLenum ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixScaledEXT :: FunPtr FuntypeMatrixScaledEXT -> FuntypeMatrixScaledEXT-glrefMatrixScaledEXT :: IORef FuntypeMatrixScaledEXT-glrefMatrixScaledEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixScaledEXT #-}-glMatrixScaledEXT :: FuntypeMatrixScaledEXT-glMatrixScaledEXT = unsafePerformIO $ readIORef glrefMatrixScaledEXT-{-# INLINE glMatrixScaledEXT #-}-type FuntypeMatrixTranslatefEXT =- GLenum ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixTranslatefEXT :: FunPtr FuntypeMatrixTranslatefEXT -> FuntypeMatrixTranslatefEXT-glrefMatrixTranslatefEXT :: IORef FuntypeMatrixTranslatefEXT-glrefMatrixTranslatefEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixTranslatefEXT #-}-glMatrixTranslatefEXT :: FuntypeMatrixTranslatefEXT-glMatrixTranslatefEXT = unsafePerformIO $ readIORef glrefMatrixTranslatefEXT-{-# INLINE glMatrixTranslatefEXT #-}-type FuntypeMatrixTranslatedEXT =- GLenum ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixTranslatedEXT :: FunPtr FuntypeMatrixTranslatedEXT -> FuntypeMatrixTranslatedEXT-glrefMatrixTranslatedEXT :: IORef FuntypeMatrixTranslatedEXT-glrefMatrixTranslatedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixTranslatedEXT #-}-glMatrixTranslatedEXT :: FuntypeMatrixTranslatedEXT-glMatrixTranslatedEXT = unsafePerformIO $ readIORef glrefMatrixTranslatedEXT-{-# INLINE glMatrixTranslatedEXT #-}-type FuntypeMatrixFrustumEXT =- GLenum ->- GLdouble ->- GLdouble ->- GLdouble ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixFrustumEXT :: FunPtr FuntypeMatrixFrustumEXT -> FuntypeMatrixFrustumEXT-glrefMatrixFrustumEXT :: IORef FuntypeMatrixFrustumEXT-glrefMatrixFrustumEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixFrustumEXT #-}-glMatrixFrustumEXT :: FuntypeMatrixFrustumEXT-glMatrixFrustumEXT = unsafePerformIO $ readIORef glrefMatrixFrustumEXT-{-# INLINE glMatrixFrustumEXT #-}-type FuntypeMatrixOrthoEXT =- GLenum ->- GLdouble ->- GLdouble ->- GLdouble ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixOrthoEXT :: FunPtr FuntypeMatrixOrthoEXT -> FuntypeMatrixOrthoEXT-glrefMatrixOrthoEXT :: IORef FuntypeMatrixOrthoEXT-glrefMatrixOrthoEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixOrthoEXT #-}-glMatrixOrthoEXT :: FuntypeMatrixOrthoEXT-glMatrixOrthoEXT = unsafePerformIO $ readIORef glrefMatrixOrthoEXT-{-# INLINE glMatrixOrthoEXT #-}-type FuntypeMatrixPopEXT =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixPopEXT :: FunPtr FuntypeMatrixPopEXT -> FuntypeMatrixPopEXT-glrefMatrixPopEXT :: IORef FuntypeMatrixPopEXT-glrefMatrixPopEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixPopEXT #-}-glMatrixPopEXT :: FuntypeMatrixPopEXT-glMatrixPopEXT = unsafePerformIO $ readIORef glrefMatrixPopEXT-{-# INLINE glMatrixPopEXT #-}-type FuntypeMatrixPushEXT =- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixPushEXT :: FunPtr FuntypeMatrixPushEXT -> FuntypeMatrixPushEXT-glrefMatrixPushEXT :: IORef FuntypeMatrixPushEXT-glrefMatrixPushEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixPushEXT #-}-glMatrixPushEXT :: FuntypeMatrixPushEXT-glMatrixPushEXT = unsafePerformIO $ readIORef glrefMatrixPushEXT-{-# INLINE glMatrixPushEXT #-}-type FuntypeClientAttribDefaultEXT =- GLbitfield ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClientAttribDefaultEXT :: FunPtr FuntypeClientAttribDefaultEXT -> FuntypeClientAttribDefaultEXT-glrefClientAttribDefaultEXT :: IORef FuntypeClientAttribDefaultEXT-glrefClientAttribDefaultEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClientAttribDefaultEXT #-}-glClientAttribDefaultEXT :: FuntypeClientAttribDefaultEXT-glClientAttribDefaultEXT = unsafePerformIO $ readIORef glrefClientAttribDefaultEXT-{-# INLINE glClientAttribDefaultEXT #-}-type FuntypePushClientAttribDefaultEXT =- GLbitfield ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynPushClientAttribDefaultEXT :: FunPtr FuntypePushClientAttribDefaultEXT -> FuntypePushClientAttribDefaultEXT-glrefPushClientAttribDefaultEXT :: IORef FuntypePushClientAttribDefaultEXT-glrefPushClientAttribDefaultEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefPushClientAttribDefaultEXT #-}-glPushClientAttribDefaultEXT :: FuntypePushClientAttribDefaultEXT-glPushClientAttribDefaultEXT = unsafePerformIO $ readIORef glrefPushClientAttribDefaultEXT-{-# INLINE glPushClientAttribDefaultEXT #-}-type FuntypeTextureParameterfEXT =- GLuint ->- GLenum ->- GLenum ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureParameterfEXT :: FunPtr FuntypeTextureParameterfEXT -> FuntypeTextureParameterfEXT-glrefTextureParameterfEXT :: IORef FuntypeTextureParameterfEXT-glrefTextureParameterfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureParameterfEXT #-}-glTextureParameterfEXT :: FuntypeTextureParameterfEXT-glTextureParameterfEXT = unsafePerformIO $ readIORef glrefTextureParameterfEXT-{-# INLINE glTextureParameterfEXT #-}-type FuntypeTextureParameterfvEXT =- GLuint ->- GLenum ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureParameterfvEXT :: FunPtr FuntypeTextureParameterfvEXT -> FuntypeTextureParameterfvEXT-glrefTextureParameterfvEXT :: IORef FuntypeTextureParameterfvEXT-glrefTextureParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureParameterfvEXT #-}-glTextureParameterfvEXT :: FuntypeTextureParameterfvEXT-glTextureParameterfvEXT = unsafePerformIO $ readIORef glrefTextureParameterfvEXT-{-# INLINE glTextureParameterfvEXT #-}-type FuntypeTextureParameteriEXT =- GLuint ->- GLenum ->- GLenum ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureParameteriEXT :: FunPtr FuntypeTextureParameteriEXT -> FuntypeTextureParameteriEXT-glrefTextureParameteriEXT :: IORef FuntypeTextureParameteriEXT-glrefTextureParameteriEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureParameteriEXT #-}-glTextureParameteriEXT :: FuntypeTextureParameteriEXT-glTextureParameteriEXT = unsafePerformIO $ readIORef glrefTextureParameteriEXT-{-# INLINE glTextureParameteriEXT #-}-type FuntypeTextureParameterivEXT =- GLuint ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureParameterivEXT :: FunPtr FuntypeTextureParameterivEXT -> FuntypeTextureParameterivEXT-glrefTextureParameterivEXT :: IORef FuntypeTextureParameterivEXT-glrefTextureParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureParameterivEXT #-}-glTextureParameterivEXT :: FuntypeTextureParameterivEXT-glTextureParameterivEXT = unsafePerformIO $ readIORef glrefTextureParameterivEXT-{-# INLINE glTextureParameterivEXT #-}-type FuntypeTextureImage1DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureImage1DEXT :: FunPtr FuntypeTextureImage1DEXT -> FuntypeTextureImage1DEXT-glrefTextureImage1DEXT :: IORef FuntypeTextureImage1DEXT-glrefTextureImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureImage1DEXT #-}-glTextureImage1DEXT :: FuntypeTextureImage1DEXT-glTextureImage1DEXT = unsafePerformIO $ readIORef glrefTextureImage1DEXT-{-# INLINE glTextureImage1DEXT #-}-type FuntypeTextureImage2DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureImage2DEXT :: FunPtr FuntypeTextureImage2DEXT -> FuntypeTextureImage2DEXT-glrefTextureImage2DEXT :: IORef FuntypeTextureImage2DEXT-glrefTextureImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureImage2DEXT #-}-glTextureImage2DEXT :: FuntypeTextureImage2DEXT-glTextureImage2DEXT = unsafePerformIO $ readIORef glrefTextureImage2DEXT-{-# INLINE glTextureImage2DEXT #-}-type FuntypeTextureSubImage1DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureSubImage1DEXT :: FunPtr FuntypeTextureSubImage1DEXT -> FuntypeTextureSubImage1DEXT-glrefTextureSubImage1DEXT :: IORef FuntypeTextureSubImage1DEXT-glrefTextureSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureSubImage1DEXT #-}-glTextureSubImage1DEXT :: FuntypeTextureSubImage1DEXT-glTextureSubImage1DEXT = unsafePerformIO $ readIORef glrefTextureSubImage1DEXT-{-# INLINE glTextureSubImage1DEXT #-}-type FuntypeTextureSubImage2DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureSubImage2DEXT :: FunPtr FuntypeTextureSubImage2DEXT -> FuntypeTextureSubImage2DEXT-glrefTextureSubImage2DEXT :: IORef FuntypeTextureSubImage2DEXT-glrefTextureSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureSubImage2DEXT #-}-glTextureSubImage2DEXT :: FuntypeTextureSubImage2DEXT-glTextureSubImage2DEXT = unsafePerformIO $ readIORef glrefTextureSubImage2DEXT-{-# INLINE glTextureSubImage2DEXT #-}-type FuntypeCopyTextureImage1DEXT =- GLuint ->- GLenum ->- GLint ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyTextureImage1DEXT :: FunPtr FuntypeCopyTextureImage1DEXT -> FuntypeCopyTextureImage1DEXT-glrefCopyTextureImage1DEXT :: IORef FuntypeCopyTextureImage1DEXT-glrefCopyTextureImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyTextureImage1DEXT #-}-glCopyTextureImage1DEXT :: FuntypeCopyTextureImage1DEXT-glCopyTextureImage1DEXT = unsafePerformIO $ readIORef glrefCopyTextureImage1DEXT-{-# INLINE glCopyTextureImage1DEXT #-}-type FuntypeCopyTextureImage2DEXT =- GLuint ->- GLenum ->- GLint ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyTextureImage2DEXT :: FunPtr FuntypeCopyTextureImage2DEXT -> FuntypeCopyTextureImage2DEXT-glrefCopyTextureImage2DEXT :: IORef FuntypeCopyTextureImage2DEXT-glrefCopyTextureImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyTextureImage2DEXT #-}-glCopyTextureImage2DEXT :: FuntypeCopyTextureImage2DEXT-glCopyTextureImage2DEXT = unsafePerformIO $ readIORef glrefCopyTextureImage2DEXT-{-# INLINE glCopyTextureImage2DEXT #-}-type FuntypeCopyTextureSubImage1DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyTextureSubImage1DEXT :: FunPtr FuntypeCopyTextureSubImage1DEXT -> FuntypeCopyTextureSubImage1DEXT-glrefCopyTextureSubImage1DEXT :: IORef FuntypeCopyTextureSubImage1DEXT-glrefCopyTextureSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyTextureSubImage1DEXT #-}-glCopyTextureSubImage1DEXT :: FuntypeCopyTextureSubImage1DEXT-glCopyTextureSubImage1DEXT = unsafePerformIO $ readIORef glrefCopyTextureSubImage1DEXT-{-# INLINE glCopyTextureSubImage1DEXT #-}-type FuntypeCopyTextureSubImage2DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyTextureSubImage2DEXT :: FunPtr FuntypeCopyTextureSubImage2DEXT -> FuntypeCopyTextureSubImage2DEXT-glrefCopyTextureSubImage2DEXT :: IORef FuntypeCopyTextureSubImage2DEXT-glrefCopyTextureSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyTextureSubImage2DEXT #-}-glCopyTextureSubImage2DEXT :: FuntypeCopyTextureSubImage2DEXT-glCopyTextureSubImage2DEXT = unsafePerformIO $ readIORef glrefCopyTextureSubImage2DEXT-{-# INLINE glCopyTextureSubImage2DEXT #-}-type FuntypeGetTextureImageEXT =- GLuint ->- GLenum ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTextureImageEXT :: FunPtr FuntypeGetTextureImageEXT -> FuntypeGetTextureImageEXT-glrefGetTextureImageEXT :: IORef FuntypeGetTextureImageEXT-glrefGetTextureImageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTextureImageEXT #-}-glGetTextureImageEXT :: FuntypeGetTextureImageEXT-glGetTextureImageEXT = unsafePerformIO $ readIORef glrefGetTextureImageEXT-{-# INLINE glGetTextureImageEXT #-}-type FuntypeGetTextureParameterfvEXT =- GLuint ->- GLenum ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTextureParameterfvEXT :: FunPtr FuntypeGetTextureParameterfvEXT -> FuntypeGetTextureParameterfvEXT-glrefGetTextureParameterfvEXT :: IORef FuntypeGetTextureParameterfvEXT-glrefGetTextureParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTextureParameterfvEXT #-}-glGetTextureParameterfvEXT :: FuntypeGetTextureParameterfvEXT-glGetTextureParameterfvEXT = unsafePerformIO $ readIORef glrefGetTextureParameterfvEXT-{-# INLINE glGetTextureParameterfvEXT #-}-type FuntypeGetTextureParameterivEXT =- GLuint ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTextureParameterivEXT :: FunPtr FuntypeGetTextureParameterivEXT -> FuntypeGetTextureParameterivEXT-glrefGetTextureParameterivEXT :: IORef FuntypeGetTextureParameterivEXT-glrefGetTextureParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTextureParameterivEXT #-}-glGetTextureParameterivEXT :: FuntypeGetTextureParameterivEXT-glGetTextureParameterivEXT = unsafePerformIO $ readIORef glrefGetTextureParameterivEXT-{-# INLINE glGetTextureParameterivEXT #-}-type FuntypeGetTextureLevelParameterfvEXT =- GLuint ->- GLenum ->- GLint ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTextureLevelParameterfvEXT :: FunPtr FuntypeGetTextureLevelParameterfvEXT -> FuntypeGetTextureLevelParameterfvEXT-glrefGetTextureLevelParameterfvEXT :: IORef FuntypeGetTextureLevelParameterfvEXT-glrefGetTextureLevelParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTextureLevelParameterfvEXT #-}-glGetTextureLevelParameterfvEXT :: FuntypeGetTextureLevelParameterfvEXT-glGetTextureLevelParameterfvEXT = unsafePerformIO $ readIORef glrefGetTextureLevelParameterfvEXT-{-# INLINE glGetTextureLevelParameterfvEXT #-}-type FuntypeGetTextureLevelParameterivEXT =- GLuint ->- GLenum ->- GLint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTextureLevelParameterivEXT :: FunPtr FuntypeGetTextureLevelParameterivEXT -> FuntypeGetTextureLevelParameterivEXT-glrefGetTextureLevelParameterivEXT :: IORef FuntypeGetTextureLevelParameterivEXT-glrefGetTextureLevelParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTextureLevelParameterivEXT #-}-glGetTextureLevelParameterivEXT :: FuntypeGetTextureLevelParameterivEXT-glGetTextureLevelParameterivEXT = unsafePerformIO $ readIORef glrefGetTextureLevelParameterivEXT-{-# INLINE glGetTextureLevelParameterivEXT #-}-type FuntypeTextureImage3DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLsizei ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureImage3DEXT :: FunPtr FuntypeTextureImage3DEXT -> FuntypeTextureImage3DEXT-glrefTextureImage3DEXT :: IORef FuntypeTextureImage3DEXT-glrefTextureImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureImage3DEXT #-}-glTextureImage3DEXT :: FuntypeTextureImage3DEXT-glTextureImage3DEXT = unsafePerformIO $ readIORef glrefTextureImage3DEXT-{-# INLINE glTextureImage3DEXT #-}-type FuntypeTextureSubImage3DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLsizei ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureSubImage3DEXT :: FunPtr FuntypeTextureSubImage3DEXT -> FuntypeTextureSubImage3DEXT-glrefTextureSubImage3DEXT :: IORef FuntypeTextureSubImage3DEXT-glrefTextureSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureSubImage3DEXT #-}-glTextureSubImage3DEXT :: FuntypeTextureSubImage3DEXT-glTextureSubImage3DEXT = unsafePerformIO $ readIORef glrefTextureSubImage3DEXT-{-# INLINE glTextureSubImage3DEXT #-}-type FuntypeCopyTextureSubImage3DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyTextureSubImage3DEXT :: FunPtr FuntypeCopyTextureSubImage3DEXT -> FuntypeCopyTextureSubImage3DEXT-glrefCopyTextureSubImage3DEXT :: IORef FuntypeCopyTextureSubImage3DEXT-glrefCopyTextureSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyTextureSubImage3DEXT #-}-glCopyTextureSubImage3DEXT :: FuntypeCopyTextureSubImage3DEXT-glCopyTextureSubImage3DEXT = unsafePerformIO $ readIORef glrefCopyTextureSubImage3DEXT-{-# INLINE glCopyTextureSubImage3DEXT #-}-type FuntypeBindMultiTextureEXT =- GLenum ->- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindMultiTextureEXT :: FunPtr FuntypeBindMultiTextureEXT -> FuntypeBindMultiTextureEXT-glrefBindMultiTextureEXT :: IORef FuntypeBindMultiTextureEXT-glrefBindMultiTextureEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindMultiTextureEXT #-}-glBindMultiTextureEXT :: FuntypeBindMultiTextureEXT-glBindMultiTextureEXT = unsafePerformIO $ readIORef glrefBindMultiTextureEXT-{-# INLINE glBindMultiTextureEXT #-}-type FuntypeMultiTexCoordPointerEXT =- GLenum ->- GLint ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexCoordPointerEXT :: FunPtr FuntypeMultiTexCoordPointerEXT -> FuntypeMultiTexCoordPointerEXT-glrefMultiTexCoordPointerEXT :: IORef FuntypeMultiTexCoordPointerEXT-glrefMultiTexCoordPointerEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexCoordPointerEXT #-}-glMultiTexCoordPointerEXT :: FuntypeMultiTexCoordPointerEXT-glMultiTexCoordPointerEXT = unsafePerformIO $ readIORef glrefMultiTexCoordPointerEXT-{-# INLINE glMultiTexCoordPointerEXT #-}-type FuntypeMultiTexEnvfEXT =- GLenum ->- GLenum ->- GLenum ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexEnvfEXT :: FunPtr FuntypeMultiTexEnvfEXT -> FuntypeMultiTexEnvfEXT-glrefMultiTexEnvfEXT :: IORef FuntypeMultiTexEnvfEXT-glrefMultiTexEnvfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexEnvfEXT #-}-glMultiTexEnvfEXT :: FuntypeMultiTexEnvfEXT-glMultiTexEnvfEXT = unsafePerformIO $ readIORef glrefMultiTexEnvfEXT-{-# INLINE glMultiTexEnvfEXT #-}-type FuntypeMultiTexEnvfvEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexEnvfvEXT :: FunPtr FuntypeMultiTexEnvfvEXT -> FuntypeMultiTexEnvfvEXT-glrefMultiTexEnvfvEXT :: IORef FuntypeMultiTexEnvfvEXT-glrefMultiTexEnvfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexEnvfvEXT #-}-glMultiTexEnvfvEXT :: FuntypeMultiTexEnvfvEXT-glMultiTexEnvfvEXT = unsafePerformIO $ readIORef glrefMultiTexEnvfvEXT-{-# INLINE glMultiTexEnvfvEXT #-}-type FuntypeMultiTexEnviEXT =- GLenum ->- GLenum ->- GLenum ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexEnviEXT :: FunPtr FuntypeMultiTexEnviEXT -> FuntypeMultiTexEnviEXT-glrefMultiTexEnviEXT :: IORef FuntypeMultiTexEnviEXT-glrefMultiTexEnviEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexEnviEXT #-}-glMultiTexEnviEXT :: FuntypeMultiTexEnviEXT-glMultiTexEnviEXT = unsafePerformIO $ readIORef glrefMultiTexEnviEXT-{-# INLINE glMultiTexEnviEXT #-}-type FuntypeMultiTexEnvivEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexEnvivEXT :: FunPtr FuntypeMultiTexEnvivEXT -> FuntypeMultiTexEnvivEXT-glrefMultiTexEnvivEXT :: IORef FuntypeMultiTexEnvivEXT-glrefMultiTexEnvivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexEnvivEXT #-}-glMultiTexEnvivEXT :: FuntypeMultiTexEnvivEXT-glMultiTexEnvivEXT = unsafePerformIO $ readIORef glrefMultiTexEnvivEXT-{-# INLINE glMultiTexEnvivEXT #-}-type FuntypeMultiTexGendEXT =- GLenum ->- GLenum ->- GLenum ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexGendEXT :: FunPtr FuntypeMultiTexGendEXT -> FuntypeMultiTexGendEXT-glrefMultiTexGendEXT :: IORef FuntypeMultiTexGendEXT-glrefMultiTexGendEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexGendEXT #-}-glMultiTexGendEXT :: FuntypeMultiTexGendEXT-glMultiTexGendEXT = unsafePerformIO $ readIORef glrefMultiTexGendEXT-{-# INLINE glMultiTexGendEXT #-}-type FuntypeMultiTexGendvEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexGendvEXT :: FunPtr FuntypeMultiTexGendvEXT -> FuntypeMultiTexGendvEXT-glrefMultiTexGendvEXT :: IORef FuntypeMultiTexGendvEXT-glrefMultiTexGendvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexGendvEXT #-}-glMultiTexGendvEXT :: FuntypeMultiTexGendvEXT-glMultiTexGendvEXT = unsafePerformIO $ readIORef glrefMultiTexGendvEXT-{-# INLINE glMultiTexGendvEXT #-}-type FuntypeMultiTexGenfEXT =- GLenum ->- GLenum ->- GLenum ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexGenfEXT :: FunPtr FuntypeMultiTexGenfEXT -> FuntypeMultiTexGenfEXT-glrefMultiTexGenfEXT :: IORef FuntypeMultiTexGenfEXT-glrefMultiTexGenfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexGenfEXT #-}-glMultiTexGenfEXT :: FuntypeMultiTexGenfEXT-glMultiTexGenfEXT = unsafePerformIO $ readIORef glrefMultiTexGenfEXT-{-# INLINE glMultiTexGenfEXT #-}-type FuntypeMultiTexGenfvEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexGenfvEXT :: FunPtr FuntypeMultiTexGenfvEXT -> FuntypeMultiTexGenfvEXT-glrefMultiTexGenfvEXT :: IORef FuntypeMultiTexGenfvEXT-glrefMultiTexGenfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexGenfvEXT #-}-glMultiTexGenfvEXT :: FuntypeMultiTexGenfvEXT-glMultiTexGenfvEXT = unsafePerformIO $ readIORef glrefMultiTexGenfvEXT-{-# INLINE glMultiTexGenfvEXT #-}-type FuntypeMultiTexGeniEXT =- GLenum ->- GLenum ->- GLenum ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexGeniEXT :: FunPtr FuntypeMultiTexGeniEXT -> FuntypeMultiTexGeniEXT-glrefMultiTexGeniEXT :: IORef FuntypeMultiTexGeniEXT-glrefMultiTexGeniEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexGeniEXT #-}-glMultiTexGeniEXT :: FuntypeMultiTexGeniEXT-glMultiTexGeniEXT = unsafePerformIO $ readIORef glrefMultiTexGeniEXT-{-# INLINE glMultiTexGeniEXT #-}-type FuntypeMultiTexGenivEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexGenivEXT :: FunPtr FuntypeMultiTexGenivEXT -> FuntypeMultiTexGenivEXT-glrefMultiTexGenivEXT :: IORef FuntypeMultiTexGenivEXT-glrefMultiTexGenivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexGenivEXT #-}-glMultiTexGenivEXT :: FuntypeMultiTexGenivEXT-glMultiTexGenivEXT = unsafePerformIO $ readIORef glrefMultiTexGenivEXT-{-# INLINE glMultiTexGenivEXT #-}-type FuntypeGetMultiTexEnvfvEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexEnvfvEXT :: FunPtr FuntypeGetMultiTexEnvfvEXT -> FuntypeGetMultiTexEnvfvEXT-glrefGetMultiTexEnvfvEXT :: IORef FuntypeGetMultiTexEnvfvEXT-glrefGetMultiTexEnvfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexEnvfvEXT #-}-glGetMultiTexEnvfvEXT :: FuntypeGetMultiTexEnvfvEXT-glGetMultiTexEnvfvEXT = unsafePerformIO $ readIORef glrefGetMultiTexEnvfvEXT-{-# INLINE glGetMultiTexEnvfvEXT #-}-type FuntypeGetMultiTexEnvivEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexEnvivEXT :: FunPtr FuntypeGetMultiTexEnvivEXT -> FuntypeGetMultiTexEnvivEXT-glrefGetMultiTexEnvivEXT :: IORef FuntypeGetMultiTexEnvivEXT-glrefGetMultiTexEnvivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexEnvivEXT #-}-glGetMultiTexEnvivEXT :: FuntypeGetMultiTexEnvivEXT-glGetMultiTexEnvivEXT = unsafePerformIO $ readIORef glrefGetMultiTexEnvivEXT-{-# INLINE glGetMultiTexEnvivEXT #-}-type FuntypeGetMultiTexGendvEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexGendvEXT :: FunPtr FuntypeGetMultiTexGendvEXT -> FuntypeGetMultiTexGendvEXT-glrefGetMultiTexGendvEXT :: IORef FuntypeGetMultiTexGendvEXT-glrefGetMultiTexGendvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexGendvEXT #-}-glGetMultiTexGendvEXT :: FuntypeGetMultiTexGendvEXT-glGetMultiTexGendvEXT = unsafePerformIO $ readIORef glrefGetMultiTexGendvEXT-{-# INLINE glGetMultiTexGendvEXT #-}-type FuntypeGetMultiTexGenfvEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexGenfvEXT :: FunPtr FuntypeGetMultiTexGenfvEXT -> FuntypeGetMultiTexGenfvEXT-glrefGetMultiTexGenfvEXT :: IORef FuntypeGetMultiTexGenfvEXT-glrefGetMultiTexGenfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexGenfvEXT #-}-glGetMultiTexGenfvEXT :: FuntypeGetMultiTexGenfvEXT-glGetMultiTexGenfvEXT = unsafePerformIO $ readIORef glrefGetMultiTexGenfvEXT-{-# INLINE glGetMultiTexGenfvEXT #-}-type FuntypeGetMultiTexGenivEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexGenivEXT :: FunPtr FuntypeGetMultiTexGenivEXT -> FuntypeGetMultiTexGenivEXT-glrefGetMultiTexGenivEXT :: IORef FuntypeGetMultiTexGenivEXT-glrefGetMultiTexGenivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexGenivEXT #-}-glGetMultiTexGenivEXT :: FuntypeGetMultiTexGenivEXT-glGetMultiTexGenivEXT = unsafePerformIO $ readIORef glrefGetMultiTexGenivEXT-{-# INLINE glGetMultiTexGenivEXT #-}-type FuntypeMultiTexParameteriEXT =- GLenum ->- GLenum ->- GLenum ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexParameteriEXT :: FunPtr FuntypeMultiTexParameteriEXT -> FuntypeMultiTexParameteriEXT-glrefMultiTexParameteriEXT :: IORef FuntypeMultiTexParameteriEXT-glrefMultiTexParameteriEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexParameteriEXT #-}-glMultiTexParameteriEXT :: FuntypeMultiTexParameteriEXT-glMultiTexParameteriEXT = unsafePerformIO $ readIORef glrefMultiTexParameteriEXT-{-# INLINE glMultiTexParameteriEXT #-}-type FuntypeMultiTexParameterivEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexParameterivEXT :: FunPtr FuntypeMultiTexParameterivEXT -> FuntypeMultiTexParameterivEXT-glrefMultiTexParameterivEXT :: IORef FuntypeMultiTexParameterivEXT-glrefMultiTexParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexParameterivEXT #-}-glMultiTexParameterivEXT :: FuntypeMultiTexParameterivEXT-glMultiTexParameterivEXT = unsafePerformIO $ readIORef glrefMultiTexParameterivEXT-{-# INLINE glMultiTexParameterivEXT #-}-type FuntypeMultiTexParameterfEXT =- GLenum ->- GLenum ->- GLenum ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexParameterfEXT :: FunPtr FuntypeMultiTexParameterfEXT -> FuntypeMultiTexParameterfEXT-glrefMultiTexParameterfEXT :: IORef FuntypeMultiTexParameterfEXT-glrefMultiTexParameterfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexParameterfEXT #-}-glMultiTexParameterfEXT :: FuntypeMultiTexParameterfEXT-glMultiTexParameterfEXT = unsafePerformIO $ readIORef glrefMultiTexParameterfEXT-{-# INLINE glMultiTexParameterfEXT #-}-type FuntypeMultiTexParameterfvEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexParameterfvEXT :: FunPtr FuntypeMultiTexParameterfvEXT -> FuntypeMultiTexParameterfvEXT-glrefMultiTexParameterfvEXT :: IORef FuntypeMultiTexParameterfvEXT-glrefMultiTexParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexParameterfvEXT #-}-glMultiTexParameterfvEXT :: FuntypeMultiTexParameterfvEXT-glMultiTexParameterfvEXT = unsafePerformIO $ readIORef glrefMultiTexParameterfvEXT-{-# INLINE glMultiTexParameterfvEXT #-}-type FuntypeMultiTexImage1DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexImage1DEXT :: FunPtr FuntypeMultiTexImage1DEXT -> FuntypeMultiTexImage1DEXT-glrefMultiTexImage1DEXT :: IORef FuntypeMultiTexImage1DEXT-glrefMultiTexImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexImage1DEXT #-}-glMultiTexImage1DEXT :: FuntypeMultiTexImage1DEXT-glMultiTexImage1DEXT = unsafePerformIO $ readIORef glrefMultiTexImage1DEXT-{-# INLINE glMultiTexImage1DEXT #-}-type FuntypeMultiTexImage2DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexImage2DEXT :: FunPtr FuntypeMultiTexImage2DEXT -> FuntypeMultiTexImage2DEXT-glrefMultiTexImage2DEXT :: IORef FuntypeMultiTexImage2DEXT-glrefMultiTexImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexImage2DEXT #-}-glMultiTexImage2DEXT :: FuntypeMultiTexImage2DEXT-glMultiTexImage2DEXT = unsafePerformIO $ readIORef glrefMultiTexImage2DEXT-{-# INLINE glMultiTexImage2DEXT #-}-type FuntypeMultiTexSubImage1DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexSubImage1DEXT :: FunPtr FuntypeMultiTexSubImage1DEXT -> FuntypeMultiTexSubImage1DEXT-glrefMultiTexSubImage1DEXT :: IORef FuntypeMultiTexSubImage1DEXT-glrefMultiTexSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexSubImage1DEXT #-}-glMultiTexSubImage1DEXT :: FuntypeMultiTexSubImage1DEXT-glMultiTexSubImage1DEXT = unsafePerformIO $ readIORef glrefMultiTexSubImage1DEXT-{-# INLINE glMultiTexSubImage1DEXT #-}-type FuntypeMultiTexSubImage2DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexSubImage2DEXT :: FunPtr FuntypeMultiTexSubImage2DEXT -> FuntypeMultiTexSubImage2DEXT-glrefMultiTexSubImage2DEXT :: IORef FuntypeMultiTexSubImage2DEXT-glrefMultiTexSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexSubImage2DEXT #-}-glMultiTexSubImage2DEXT :: FuntypeMultiTexSubImage2DEXT-glMultiTexSubImage2DEXT = unsafePerformIO $ readIORef glrefMultiTexSubImage2DEXT-{-# INLINE glMultiTexSubImage2DEXT #-}-type FuntypeCopyMultiTexImage1DEXT =- GLenum ->- GLenum ->- GLint ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyMultiTexImage1DEXT :: FunPtr FuntypeCopyMultiTexImage1DEXT -> FuntypeCopyMultiTexImage1DEXT-glrefCopyMultiTexImage1DEXT :: IORef FuntypeCopyMultiTexImage1DEXT-glrefCopyMultiTexImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyMultiTexImage1DEXT #-}-glCopyMultiTexImage1DEXT :: FuntypeCopyMultiTexImage1DEXT-glCopyMultiTexImage1DEXT = unsafePerformIO $ readIORef glrefCopyMultiTexImage1DEXT-{-# INLINE glCopyMultiTexImage1DEXT #-}-type FuntypeCopyMultiTexImage2DEXT =- GLenum ->- GLenum ->- GLint ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyMultiTexImage2DEXT :: FunPtr FuntypeCopyMultiTexImage2DEXT -> FuntypeCopyMultiTexImage2DEXT-glrefCopyMultiTexImage2DEXT :: IORef FuntypeCopyMultiTexImage2DEXT-glrefCopyMultiTexImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyMultiTexImage2DEXT #-}-glCopyMultiTexImage2DEXT :: FuntypeCopyMultiTexImage2DEXT-glCopyMultiTexImage2DEXT = unsafePerformIO $ readIORef glrefCopyMultiTexImage2DEXT-{-# INLINE glCopyMultiTexImage2DEXT #-}-type FuntypeCopyMultiTexSubImage1DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyMultiTexSubImage1DEXT :: FunPtr FuntypeCopyMultiTexSubImage1DEXT -> FuntypeCopyMultiTexSubImage1DEXT-glrefCopyMultiTexSubImage1DEXT :: IORef FuntypeCopyMultiTexSubImage1DEXT-glrefCopyMultiTexSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyMultiTexSubImage1DEXT #-}-glCopyMultiTexSubImage1DEXT :: FuntypeCopyMultiTexSubImage1DEXT-glCopyMultiTexSubImage1DEXT = unsafePerformIO $ readIORef glrefCopyMultiTexSubImage1DEXT-{-# INLINE glCopyMultiTexSubImage1DEXT #-}-type FuntypeCopyMultiTexSubImage2DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyMultiTexSubImage2DEXT :: FunPtr FuntypeCopyMultiTexSubImage2DEXT -> FuntypeCopyMultiTexSubImage2DEXT-glrefCopyMultiTexSubImage2DEXT :: IORef FuntypeCopyMultiTexSubImage2DEXT-glrefCopyMultiTexSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyMultiTexSubImage2DEXT #-}-glCopyMultiTexSubImage2DEXT :: FuntypeCopyMultiTexSubImage2DEXT-glCopyMultiTexSubImage2DEXT = unsafePerformIO $ readIORef glrefCopyMultiTexSubImage2DEXT-{-# INLINE glCopyMultiTexSubImage2DEXT #-}-type FuntypeGetMultiTexImageEXT =- GLenum ->- GLenum ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexImageEXT :: FunPtr FuntypeGetMultiTexImageEXT -> FuntypeGetMultiTexImageEXT-glrefGetMultiTexImageEXT :: IORef FuntypeGetMultiTexImageEXT-glrefGetMultiTexImageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexImageEXT #-}-glGetMultiTexImageEXT :: FuntypeGetMultiTexImageEXT-glGetMultiTexImageEXT = unsafePerformIO $ readIORef glrefGetMultiTexImageEXT-{-# INLINE glGetMultiTexImageEXT #-}-type FuntypeGetMultiTexParameterfvEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexParameterfvEXT :: FunPtr FuntypeGetMultiTexParameterfvEXT -> FuntypeGetMultiTexParameterfvEXT-glrefGetMultiTexParameterfvEXT :: IORef FuntypeGetMultiTexParameterfvEXT-glrefGetMultiTexParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexParameterfvEXT #-}-glGetMultiTexParameterfvEXT :: FuntypeGetMultiTexParameterfvEXT-glGetMultiTexParameterfvEXT = unsafePerformIO $ readIORef glrefGetMultiTexParameterfvEXT-{-# INLINE glGetMultiTexParameterfvEXT #-}-type FuntypeGetMultiTexParameterivEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexParameterivEXT :: FunPtr FuntypeGetMultiTexParameterivEXT -> FuntypeGetMultiTexParameterivEXT-glrefGetMultiTexParameterivEXT :: IORef FuntypeGetMultiTexParameterivEXT-glrefGetMultiTexParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexParameterivEXT #-}-glGetMultiTexParameterivEXT :: FuntypeGetMultiTexParameterivEXT-glGetMultiTexParameterivEXT = unsafePerformIO $ readIORef glrefGetMultiTexParameterivEXT-{-# INLINE glGetMultiTexParameterivEXT #-}-type FuntypeGetMultiTexLevelParameterfvEXT =- GLenum ->- GLenum ->- GLint ->- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexLevelParameterfvEXT :: FunPtr FuntypeGetMultiTexLevelParameterfvEXT -> FuntypeGetMultiTexLevelParameterfvEXT-glrefGetMultiTexLevelParameterfvEXT :: IORef FuntypeGetMultiTexLevelParameterfvEXT-glrefGetMultiTexLevelParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexLevelParameterfvEXT #-}-glGetMultiTexLevelParameterfvEXT :: FuntypeGetMultiTexLevelParameterfvEXT-glGetMultiTexLevelParameterfvEXT = unsafePerformIO $ readIORef glrefGetMultiTexLevelParameterfvEXT-{-# INLINE glGetMultiTexLevelParameterfvEXT #-}-type FuntypeGetMultiTexLevelParameterivEXT =- GLenum ->- GLenum ->- GLint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexLevelParameterivEXT :: FunPtr FuntypeGetMultiTexLevelParameterivEXT -> FuntypeGetMultiTexLevelParameterivEXT-glrefGetMultiTexLevelParameterivEXT :: IORef FuntypeGetMultiTexLevelParameterivEXT-glrefGetMultiTexLevelParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexLevelParameterivEXT #-}-glGetMultiTexLevelParameterivEXT :: FuntypeGetMultiTexLevelParameterivEXT-glGetMultiTexLevelParameterivEXT = unsafePerformIO $ readIORef glrefGetMultiTexLevelParameterivEXT-{-# INLINE glGetMultiTexLevelParameterivEXT #-}-type FuntypeMultiTexImage3DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLsizei ->- GLint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexImage3DEXT :: FunPtr FuntypeMultiTexImage3DEXT -> FuntypeMultiTexImage3DEXT-glrefMultiTexImage3DEXT :: IORef FuntypeMultiTexImage3DEXT-glrefMultiTexImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexImage3DEXT #-}-glMultiTexImage3DEXT :: FuntypeMultiTexImage3DEXT-glMultiTexImage3DEXT = unsafePerformIO $ readIORef glrefMultiTexImage3DEXT-{-# INLINE glMultiTexImage3DEXT #-}-type FuntypeMultiTexSubImage3DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLsizei ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexSubImage3DEXT :: FunPtr FuntypeMultiTexSubImage3DEXT -> FuntypeMultiTexSubImage3DEXT-glrefMultiTexSubImage3DEXT :: IORef FuntypeMultiTexSubImage3DEXT-glrefMultiTexSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexSubImage3DEXT #-}-glMultiTexSubImage3DEXT :: FuntypeMultiTexSubImage3DEXT-glMultiTexSubImage3DEXT = unsafePerformIO $ readIORef glrefMultiTexSubImage3DEXT-{-# INLINE glMultiTexSubImage3DEXT #-}-type FuntypeCopyMultiTexSubImage3DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCopyMultiTexSubImage3DEXT :: FunPtr FuntypeCopyMultiTexSubImage3DEXT -> FuntypeCopyMultiTexSubImage3DEXT-glrefCopyMultiTexSubImage3DEXT :: IORef FuntypeCopyMultiTexSubImage3DEXT-glrefCopyMultiTexSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCopyMultiTexSubImage3DEXT #-}-glCopyMultiTexSubImage3DEXT :: FuntypeCopyMultiTexSubImage3DEXT-glCopyMultiTexSubImage3DEXT = unsafePerformIO $ readIORef glrefCopyMultiTexSubImage3DEXT-{-# INLINE glCopyMultiTexSubImage3DEXT #-}-type FuntypeEnableClientStateIndexedEXT =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynEnableClientStateIndexedEXT :: FunPtr FuntypeEnableClientStateIndexedEXT -> FuntypeEnableClientStateIndexedEXT-glrefEnableClientStateIndexedEXT :: IORef FuntypeEnableClientStateIndexedEXT-glrefEnableClientStateIndexedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefEnableClientStateIndexedEXT #-}-glEnableClientStateIndexedEXT :: FuntypeEnableClientStateIndexedEXT-glEnableClientStateIndexedEXT = unsafePerformIO $ readIORef glrefEnableClientStateIndexedEXT-{-# INLINE glEnableClientStateIndexedEXT #-}-type FuntypeDisableClientStateIndexedEXT =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDisableClientStateIndexedEXT :: FunPtr FuntypeDisableClientStateIndexedEXT -> FuntypeDisableClientStateIndexedEXT-glrefDisableClientStateIndexedEXT :: IORef FuntypeDisableClientStateIndexedEXT-glrefDisableClientStateIndexedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDisableClientStateIndexedEXT #-}-glDisableClientStateIndexedEXT :: FuntypeDisableClientStateIndexedEXT-glDisableClientStateIndexedEXT = unsafePerformIO $ readIORef glrefDisableClientStateIndexedEXT-{-# INLINE glDisableClientStateIndexedEXT #-}-type FuntypeGetFloatIndexedvEXT =- GLenum ->- GLuint ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetFloatIndexedvEXT :: FunPtr FuntypeGetFloatIndexedvEXT -> FuntypeGetFloatIndexedvEXT-glrefGetFloatIndexedvEXT :: IORef FuntypeGetFloatIndexedvEXT-glrefGetFloatIndexedvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetFloatIndexedvEXT #-}-glGetFloatIndexedvEXT :: FuntypeGetFloatIndexedvEXT-glGetFloatIndexedvEXT = unsafePerformIO $ readIORef glrefGetFloatIndexedvEXT-{-# INLINE glGetFloatIndexedvEXT #-}-type FuntypeGetDoubleIndexedvEXT =- GLenum ->- GLuint ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetDoubleIndexedvEXT :: FunPtr FuntypeGetDoubleIndexedvEXT -> FuntypeGetDoubleIndexedvEXT-glrefGetDoubleIndexedvEXT :: IORef FuntypeGetDoubleIndexedvEXT-glrefGetDoubleIndexedvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetDoubleIndexedvEXT #-}-glGetDoubleIndexedvEXT :: FuntypeGetDoubleIndexedvEXT-glGetDoubleIndexedvEXT = unsafePerformIO $ readIORef glrefGetDoubleIndexedvEXT-{-# INLINE glGetDoubleIndexedvEXT #-}-type FuntypeGetPointerIndexedvEXT =- GLenum ->- GLuint ->- Ptr (Ptr ()) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetPointerIndexedvEXT :: FunPtr FuntypeGetPointerIndexedvEXT -> FuntypeGetPointerIndexedvEXT-glrefGetPointerIndexedvEXT :: IORef FuntypeGetPointerIndexedvEXT-glrefGetPointerIndexedvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetPointerIndexedvEXT #-}-glGetPointerIndexedvEXT :: FuntypeGetPointerIndexedvEXT-glGetPointerIndexedvEXT = unsafePerformIO $ readIORef glrefGetPointerIndexedvEXT-{-# INLINE glGetPointerIndexedvEXT #-}-type FuntypeEnableIndexedEXT =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynEnableIndexedEXT :: FunPtr FuntypeEnableIndexedEXT -> FuntypeEnableIndexedEXT-glrefEnableIndexedEXT :: IORef FuntypeEnableIndexedEXT-glrefEnableIndexedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefEnableIndexedEXT #-}-glEnableIndexedEXT :: FuntypeEnableIndexedEXT-glEnableIndexedEXT = unsafePerformIO $ readIORef glrefEnableIndexedEXT-{-# INLINE glEnableIndexedEXT #-}-type FuntypeDisableIndexedEXT =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDisableIndexedEXT :: FunPtr FuntypeDisableIndexedEXT -> FuntypeDisableIndexedEXT-glrefDisableIndexedEXT :: IORef FuntypeDisableIndexedEXT-glrefDisableIndexedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDisableIndexedEXT #-}-glDisableIndexedEXT :: FuntypeDisableIndexedEXT-glDisableIndexedEXT = unsafePerformIO $ readIORef glrefDisableIndexedEXT-{-# INLINE glDisableIndexedEXT #-}-type FuntypeIsEnabledIndexedEXT =- GLenum ->- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsEnabledIndexedEXT :: FunPtr FuntypeIsEnabledIndexedEXT -> FuntypeIsEnabledIndexedEXT-glrefIsEnabledIndexedEXT :: IORef FuntypeIsEnabledIndexedEXT-glrefIsEnabledIndexedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsEnabledIndexedEXT #-}-glIsEnabledIndexedEXT :: FuntypeIsEnabledIndexedEXT-glIsEnabledIndexedEXT = unsafePerformIO $ readIORef glrefIsEnabledIndexedEXT-{-# INLINE glIsEnabledIndexedEXT #-}-type FuntypeGetIntegerIndexedvEXT =- GLenum ->- GLuint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetIntegerIndexedvEXT :: FunPtr FuntypeGetIntegerIndexedvEXT -> FuntypeGetIntegerIndexedvEXT-glrefGetIntegerIndexedvEXT :: IORef FuntypeGetIntegerIndexedvEXT-glrefGetIntegerIndexedvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetIntegerIndexedvEXT #-}-glGetIntegerIndexedvEXT :: FuntypeGetIntegerIndexedvEXT-glGetIntegerIndexedvEXT = unsafePerformIO $ readIORef glrefGetIntegerIndexedvEXT-{-# INLINE glGetIntegerIndexedvEXT #-}-type FuntypeGetBooleanIndexedvEXT =- GLenum ->- GLuint ->- Ptr (GLboolean) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetBooleanIndexedvEXT :: FunPtr FuntypeGetBooleanIndexedvEXT -> FuntypeGetBooleanIndexedvEXT-glrefGetBooleanIndexedvEXT :: IORef FuntypeGetBooleanIndexedvEXT-glrefGetBooleanIndexedvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetBooleanIndexedvEXT #-}-glGetBooleanIndexedvEXT :: FuntypeGetBooleanIndexedvEXT-glGetBooleanIndexedvEXT = unsafePerformIO $ readIORef glrefGetBooleanIndexedvEXT-{-# INLINE glGetBooleanIndexedvEXT #-}-type FuntypeCompressedTextureImage3DEXT =- GLuint ->- GLenum ->- GLint ->- GLenum ->- GLsizei ->- GLsizei ->- GLsizei ->- GLint ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTextureImage3DEXT :: FunPtr FuntypeCompressedTextureImage3DEXT -> FuntypeCompressedTextureImage3DEXT-glrefCompressedTextureImage3DEXT :: IORef FuntypeCompressedTextureImage3DEXT-glrefCompressedTextureImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTextureImage3DEXT #-}-glCompressedTextureImage3DEXT :: FuntypeCompressedTextureImage3DEXT-glCompressedTextureImage3DEXT = unsafePerformIO $ readIORef glrefCompressedTextureImage3DEXT-{-# INLINE glCompressedTextureImage3DEXT #-}-type FuntypeCompressedTextureImage2DEXT =- GLuint ->- GLenum ->- GLint ->- GLenum ->- GLsizei ->- GLsizei ->- GLint ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTextureImage2DEXT :: FunPtr FuntypeCompressedTextureImage2DEXT -> FuntypeCompressedTextureImage2DEXT-glrefCompressedTextureImage2DEXT :: IORef FuntypeCompressedTextureImage2DEXT-glrefCompressedTextureImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTextureImage2DEXT #-}-glCompressedTextureImage2DEXT :: FuntypeCompressedTextureImage2DEXT-glCompressedTextureImage2DEXT = unsafePerformIO $ readIORef glrefCompressedTextureImage2DEXT-{-# INLINE glCompressedTextureImage2DEXT #-}-type FuntypeCompressedTextureImage1DEXT =- GLuint ->- GLenum ->- GLint ->- GLenum ->- GLsizei ->- GLint ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTextureImage1DEXT :: FunPtr FuntypeCompressedTextureImage1DEXT -> FuntypeCompressedTextureImage1DEXT-glrefCompressedTextureImage1DEXT :: IORef FuntypeCompressedTextureImage1DEXT-glrefCompressedTextureImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTextureImage1DEXT #-}-glCompressedTextureImage1DEXT :: FuntypeCompressedTextureImage1DEXT-glCompressedTextureImage1DEXT = unsafePerformIO $ readIORef glrefCompressedTextureImage1DEXT-{-# INLINE glCompressedTextureImage1DEXT #-}-type FuntypeCompressedTextureSubImage3DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLsizei ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTextureSubImage3DEXT :: FunPtr FuntypeCompressedTextureSubImage3DEXT -> FuntypeCompressedTextureSubImage3DEXT-glrefCompressedTextureSubImage3DEXT :: IORef FuntypeCompressedTextureSubImage3DEXT-glrefCompressedTextureSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTextureSubImage3DEXT #-}-glCompressedTextureSubImage3DEXT :: FuntypeCompressedTextureSubImage3DEXT-glCompressedTextureSubImage3DEXT = unsafePerformIO $ readIORef glrefCompressedTextureSubImage3DEXT-{-# INLINE glCompressedTextureSubImage3DEXT #-}-type FuntypeCompressedTextureSubImage2DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTextureSubImage2DEXT :: FunPtr FuntypeCompressedTextureSubImage2DEXT -> FuntypeCompressedTextureSubImage2DEXT-glrefCompressedTextureSubImage2DEXT :: IORef FuntypeCompressedTextureSubImage2DEXT-glrefCompressedTextureSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTextureSubImage2DEXT #-}-glCompressedTextureSubImage2DEXT :: FuntypeCompressedTextureSubImage2DEXT-glCompressedTextureSubImage2DEXT = unsafePerformIO $ readIORef glrefCompressedTextureSubImage2DEXT-{-# INLINE glCompressedTextureSubImage2DEXT #-}-type FuntypeCompressedTextureSubImage1DEXT =- GLuint ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedTextureSubImage1DEXT :: FunPtr FuntypeCompressedTextureSubImage1DEXT -> FuntypeCompressedTextureSubImage1DEXT-glrefCompressedTextureSubImage1DEXT :: IORef FuntypeCompressedTextureSubImage1DEXT-glrefCompressedTextureSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedTextureSubImage1DEXT #-}-glCompressedTextureSubImage1DEXT :: FuntypeCompressedTextureSubImage1DEXT-glCompressedTextureSubImage1DEXT = unsafePerformIO $ readIORef glrefCompressedTextureSubImage1DEXT-{-# INLINE glCompressedTextureSubImage1DEXT #-}-type FuntypeGetCompressedTextureImageEXT =- GLuint ->- GLenum ->- GLint ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetCompressedTextureImageEXT :: FunPtr FuntypeGetCompressedTextureImageEXT -> FuntypeGetCompressedTextureImageEXT-glrefGetCompressedTextureImageEXT :: IORef FuntypeGetCompressedTextureImageEXT-glrefGetCompressedTextureImageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetCompressedTextureImageEXT #-}-glGetCompressedTextureImageEXT :: FuntypeGetCompressedTextureImageEXT-glGetCompressedTextureImageEXT = unsafePerformIO $ readIORef glrefGetCompressedTextureImageEXT-{-# INLINE glGetCompressedTextureImageEXT #-}-type FuntypeCompressedMultiTexImage3DEXT =- GLenum ->- GLenum ->- GLint ->- GLenum ->- GLsizei ->- GLsizei ->- GLsizei ->- GLint ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedMultiTexImage3DEXT :: FunPtr FuntypeCompressedMultiTexImage3DEXT -> FuntypeCompressedMultiTexImage3DEXT-glrefCompressedMultiTexImage3DEXT :: IORef FuntypeCompressedMultiTexImage3DEXT-glrefCompressedMultiTexImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedMultiTexImage3DEXT #-}-glCompressedMultiTexImage3DEXT :: FuntypeCompressedMultiTexImage3DEXT-glCompressedMultiTexImage3DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexImage3DEXT-{-# INLINE glCompressedMultiTexImage3DEXT #-}-type FuntypeCompressedMultiTexImage2DEXT =- GLenum ->- GLenum ->- GLint ->- GLenum ->- GLsizei ->- GLsizei ->- GLint ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedMultiTexImage2DEXT :: FunPtr FuntypeCompressedMultiTexImage2DEXT -> FuntypeCompressedMultiTexImage2DEXT-glrefCompressedMultiTexImage2DEXT :: IORef FuntypeCompressedMultiTexImage2DEXT-glrefCompressedMultiTexImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedMultiTexImage2DEXT #-}-glCompressedMultiTexImage2DEXT :: FuntypeCompressedMultiTexImage2DEXT-glCompressedMultiTexImage2DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexImage2DEXT-{-# INLINE glCompressedMultiTexImage2DEXT #-}-type FuntypeCompressedMultiTexImage1DEXT =- GLenum ->- GLenum ->- GLint ->- GLenum ->- GLsizei ->- GLint ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedMultiTexImage1DEXT :: FunPtr FuntypeCompressedMultiTexImage1DEXT -> FuntypeCompressedMultiTexImage1DEXT-glrefCompressedMultiTexImage1DEXT :: IORef FuntypeCompressedMultiTexImage1DEXT-glrefCompressedMultiTexImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedMultiTexImage1DEXT #-}-glCompressedMultiTexImage1DEXT :: FuntypeCompressedMultiTexImage1DEXT-glCompressedMultiTexImage1DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexImage1DEXT-{-# INLINE glCompressedMultiTexImage1DEXT #-}-type FuntypeCompressedMultiTexSubImage3DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLsizei ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedMultiTexSubImage3DEXT :: FunPtr FuntypeCompressedMultiTexSubImage3DEXT -> FuntypeCompressedMultiTexSubImage3DEXT-glrefCompressedMultiTexSubImage3DEXT :: IORef FuntypeCompressedMultiTexSubImage3DEXT-glrefCompressedMultiTexSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedMultiTexSubImage3DEXT #-}-glCompressedMultiTexSubImage3DEXT :: FuntypeCompressedMultiTexSubImage3DEXT-glCompressedMultiTexSubImage3DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexSubImage3DEXT-{-# INLINE glCompressedMultiTexSubImage3DEXT #-}-type FuntypeCompressedMultiTexSubImage2DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedMultiTexSubImage2DEXT :: FunPtr FuntypeCompressedMultiTexSubImage2DEXT -> FuntypeCompressedMultiTexSubImage2DEXT-glrefCompressedMultiTexSubImage2DEXT :: IORef FuntypeCompressedMultiTexSubImage2DEXT-glrefCompressedMultiTexSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedMultiTexSubImage2DEXT #-}-glCompressedMultiTexSubImage2DEXT :: FuntypeCompressedMultiTexSubImage2DEXT-glCompressedMultiTexSubImage2DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexSubImage2DEXT-{-# INLINE glCompressedMultiTexSubImage2DEXT #-}-type FuntypeCompressedMultiTexSubImage1DEXT =- GLenum ->- GLenum ->- GLint ->- GLint ->- GLsizei ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCompressedMultiTexSubImage1DEXT :: FunPtr FuntypeCompressedMultiTexSubImage1DEXT -> FuntypeCompressedMultiTexSubImage1DEXT-glrefCompressedMultiTexSubImage1DEXT :: IORef FuntypeCompressedMultiTexSubImage1DEXT-glrefCompressedMultiTexSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCompressedMultiTexSubImage1DEXT #-}-glCompressedMultiTexSubImage1DEXT :: FuntypeCompressedMultiTexSubImage1DEXT-glCompressedMultiTexSubImage1DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexSubImage1DEXT-{-# INLINE glCompressedMultiTexSubImage1DEXT #-}-type FuntypeGetCompressedMultiTexImageEXT =- GLenum ->- GLenum ->- GLint ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetCompressedMultiTexImageEXT :: FunPtr FuntypeGetCompressedMultiTexImageEXT -> FuntypeGetCompressedMultiTexImageEXT-glrefGetCompressedMultiTexImageEXT :: IORef FuntypeGetCompressedMultiTexImageEXT-glrefGetCompressedMultiTexImageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetCompressedMultiTexImageEXT #-}-glGetCompressedMultiTexImageEXT :: FuntypeGetCompressedMultiTexImageEXT-glGetCompressedMultiTexImageEXT = unsafePerformIO $ readIORef glrefGetCompressedMultiTexImageEXT-{-# INLINE glGetCompressedMultiTexImageEXT #-}-type FuntypeMatrixLoadTransposefEXT =- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixLoadTransposefEXT :: FunPtr FuntypeMatrixLoadTransposefEXT -> FuntypeMatrixLoadTransposefEXT-glrefMatrixLoadTransposefEXT :: IORef FuntypeMatrixLoadTransposefEXT-glrefMatrixLoadTransposefEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixLoadTransposefEXT #-}-glMatrixLoadTransposefEXT :: FuntypeMatrixLoadTransposefEXT-glMatrixLoadTransposefEXT = unsafePerformIO $ readIORef glrefMatrixLoadTransposefEXT-{-# INLINE glMatrixLoadTransposefEXT #-}-type FuntypeMatrixLoadTransposedEXT =- GLenum ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixLoadTransposedEXT :: FunPtr FuntypeMatrixLoadTransposedEXT -> FuntypeMatrixLoadTransposedEXT-glrefMatrixLoadTransposedEXT :: IORef FuntypeMatrixLoadTransposedEXT-glrefMatrixLoadTransposedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixLoadTransposedEXT #-}-glMatrixLoadTransposedEXT :: FuntypeMatrixLoadTransposedEXT-glMatrixLoadTransposedEXT = unsafePerformIO $ readIORef glrefMatrixLoadTransposedEXT-{-# INLINE glMatrixLoadTransposedEXT #-}-type FuntypeMatrixMultTransposefEXT =- GLenum ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixMultTransposefEXT :: FunPtr FuntypeMatrixMultTransposefEXT -> FuntypeMatrixMultTransposefEXT-glrefMatrixMultTransposefEXT :: IORef FuntypeMatrixMultTransposefEXT-glrefMatrixMultTransposefEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixMultTransposefEXT #-}-glMatrixMultTransposefEXT :: FuntypeMatrixMultTransposefEXT-glMatrixMultTransposefEXT = unsafePerformIO $ readIORef glrefMatrixMultTransposefEXT-{-# INLINE glMatrixMultTransposefEXT #-}-type FuntypeMatrixMultTransposedEXT =- GLenum ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMatrixMultTransposedEXT :: FunPtr FuntypeMatrixMultTransposedEXT -> FuntypeMatrixMultTransposedEXT-glrefMatrixMultTransposedEXT :: IORef FuntypeMatrixMultTransposedEXT-glrefMatrixMultTransposedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMatrixMultTransposedEXT #-}-glMatrixMultTransposedEXT :: FuntypeMatrixMultTransposedEXT-glMatrixMultTransposedEXT = unsafePerformIO $ readIORef glrefMatrixMultTransposedEXT-{-# INLINE glMatrixMultTransposedEXT #-}-type FuntypeNamedBufferDataEXT =- GLuint ->- GLsizeiptr ->- Ptr () ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedBufferDataEXT :: FunPtr FuntypeNamedBufferDataEXT -> FuntypeNamedBufferDataEXT-glrefNamedBufferDataEXT :: IORef FuntypeNamedBufferDataEXT-glrefNamedBufferDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedBufferDataEXT #-}-glNamedBufferDataEXT :: FuntypeNamedBufferDataEXT-glNamedBufferDataEXT = unsafePerformIO $ readIORef glrefNamedBufferDataEXT-{-# INLINE glNamedBufferDataEXT #-}-type FuntypeNamedBufferSubDataEXT =- GLuint ->- GLintptr ->- GLsizeiptr ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedBufferSubDataEXT :: FunPtr FuntypeNamedBufferSubDataEXT -> FuntypeNamedBufferSubDataEXT-glrefNamedBufferSubDataEXT :: IORef FuntypeNamedBufferSubDataEXT-glrefNamedBufferSubDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedBufferSubDataEXT #-}-glNamedBufferSubDataEXT :: FuntypeNamedBufferSubDataEXT-glNamedBufferSubDataEXT = unsafePerformIO $ readIORef glrefNamedBufferSubDataEXT-{-# INLINE glNamedBufferSubDataEXT #-}-type FuntypeMapNamedBufferEXT =- GLuint ->- GLenum ->- IO ( Ptr () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMapNamedBufferEXT :: FunPtr FuntypeMapNamedBufferEXT -> FuntypeMapNamedBufferEXT-glrefMapNamedBufferEXT :: IORef FuntypeMapNamedBufferEXT-glrefMapNamedBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMapNamedBufferEXT #-}-glMapNamedBufferEXT :: FuntypeMapNamedBufferEXT-glMapNamedBufferEXT = unsafePerformIO $ readIORef glrefMapNamedBufferEXT-{-# INLINE glMapNamedBufferEXT #-}-type FuntypeUnmapNamedBufferEXT =- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUnmapNamedBufferEXT :: FunPtr FuntypeUnmapNamedBufferEXT -> FuntypeUnmapNamedBufferEXT-glrefUnmapNamedBufferEXT :: IORef FuntypeUnmapNamedBufferEXT-glrefUnmapNamedBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUnmapNamedBufferEXT #-}-glUnmapNamedBufferEXT :: FuntypeUnmapNamedBufferEXT-glUnmapNamedBufferEXT = unsafePerformIO $ readIORef glrefUnmapNamedBufferEXT-{-# INLINE glUnmapNamedBufferEXT #-}-type FuntypeGetNamedBufferParameterivEXT =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedBufferParameterivEXT :: FunPtr FuntypeGetNamedBufferParameterivEXT -> FuntypeGetNamedBufferParameterivEXT-glrefGetNamedBufferParameterivEXT :: IORef FuntypeGetNamedBufferParameterivEXT-glrefGetNamedBufferParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedBufferParameterivEXT #-}-glGetNamedBufferParameterivEXT :: FuntypeGetNamedBufferParameterivEXT-glGetNamedBufferParameterivEXT = unsafePerformIO $ readIORef glrefGetNamedBufferParameterivEXT-{-# INLINE glGetNamedBufferParameterivEXT #-}-type FuntypeGetNamedBufferPointervEXT =- GLuint ->- GLenum ->- Ptr (Ptr ()) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedBufferPointervEXT :: FunPtr FuntypeGetNamedBufferPointervEXT -> FuntypeGetNamedBufferPointervEXT-glrefGetNamedBufferPointervEXT :: IORef FuntypeGetNamedBufferPointervEXT-glrefGetNamedBufferPointervEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedBufferPointervEXT #-}-glGetNamedBufferPointervEXT :: FuntypeGetNamedBufferPointervEXT-glGetNamedBufferPointervEXT = unsafePerformIO $ readIORef glrefGetNamedBufferPointervEXT-{-# INLINE glGetNamedBufferPointervEXT #-}-type FuntypeGetNamedBufferSubDataEXT =- GLuint ->- GLintptr ->- GLsizeiptr ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedBufferSubDataEXT :: FunPtr FuntypeGetNamedBufferSubDataEXT -> FuntypeGetNamedBufferSubDataEXT-glrefGetNamedBufferSubDataEXT :: IORef FuntypeGetNamedBufferSubDataEXT-glrefGetNamedBufferSubDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedBufferSubDataEXT #-}-glGetNamedBufferSubDataEXT :: FuntypeGetNamedBufferSubDataEXT-glGetNamedBufferSubDataEXT = unsafePerformIO $ readIORef glrefGetNamedBufferSubDataEXT-{-# INLINE glGetNamedBufferSubDataEXT #-}-type FuntypeProgramUniform1fEXT =- GLuint ->- GLint ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1fEXT :: FunPtr FuntypeProgramUniform1fEXT -> FuntypeProgramUniform1fEXT-glrefProgramUniform1fEXT :: IORef FuntypeProgramUniform1fEXT-glrefProgramUniform1fEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1fEXT #-}-glProgramUniform1fEXT :: FuntypeProgramUniform1fEXT-glProgramUniform1fEXT = unsafePerformIO $ readIORef glrefProgramUniform1fEXT-{-# INLINE glProgramUniform1fEXT #-}-type FuntypeProgramUniform2fEXT =- GLuint ->- GLint ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2fEXT :: FunPtr FuntypeProgramUniform2fEXT -> FuntypeProgramUniform2fEXT-glrefProgramUniform2fEXT :: IORef FuntypeProgramUniform2fEXT-glrefProgramUniform2fEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2fEXT #-}-glProgramUniform2fEXT :: FuntypeProgramUniform2fEXT-glProgramUniform2fEXT = unsafePerformIO $ readIORef glrefProgramUniform2fEXT-{-# INLINE glProgramUniform2fEXT #-}-type FuntypeProgramUniform3fEXT =- GLuint ->- GLint ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3fEXT :: FunPtr FuntypeProgramUniform3fEXT -> FuntypeProgramUniform3fEXT-glrefProgramUniform3fEXT :: IORef FuntypeProgramUniform3fEXT-glrefProgramUniform3fEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3fEXT #-}-glProgramUniform3fEXT :: FuntypeProgramUniform3fEXT-glProgramUniform3fEXT = unsafePerformIO $ readIORef glrefProgramUniform3fEXT-{-# INLINE glProgramUniform3fEXT #-}-type FuntypeProgramUniform4fEXT =- GLuint ->- GLint ->- GLfloat ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4fEXT :: FunPtr FuntypeProgramUniform4fEXT -> FuntypeProgramUniform4fEXT-glrefProgramUniform4fEXT :: IORef FuntypeProgramUniform4fEXT-glrefProgramUniform4fEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4fEXT #-}-glProgramUniform4fEXT :: FuntypeProgramUniform4fEXT-glProgramUniform4fEXT = unsafePerformIO $ readIORef glrefProgramUniform4fEXT-{-# INLINE glProgramUniform4fEXT #-}-type FuntypeProgramUniform1iEXT =- GLuint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1iEXT :: FunPtr FuntypeProgramUniform1iEXT -> FuntypeProgramUniform1iEXT-glrefProgramUniform1iEXT :: IORef FuntypeProgramUniform1iEXT-glrefProgramUniform1iEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1iEXT #-}-glProgramUniform1iEXT :: FuntypeProgramUniform1iEXT-glProgramUniform1iEXT = unsafePerformIO $ readIORef glrefProgramUniform1iEXT-{-# INLINE glProgramUniform1iEXT #-}-type FuntypeProgramUniform2iEXT =- GLuint ->- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2iEXT :: FunPtr FuntypeProgramUniform2iEXT -> FuntypeProgramUniform2iEXT-glrefProgramUniform2iEXT :: IORef FuntypeProgramUniform2iEXT-glrefProgramUniform2iEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2iEXT #-}-glProgramUniform2iEXT :: FuntypeProgramUniform2iEXT-glProgramUniform2iEXT = unsafePerformIO $ readIORef glrefProgramUniform2iEXT-{-# INLINE glProgramUniform2iEXT #-}-type FuntypeProgramUniform3iEXT =- GLuint ->- GLint ->- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3iEXT :: FunPtr FuntypeProgramUniform3iEXT -> FuntypeProgramUniform3iEXT-glrefProgramUniform3iEXT :: IORef FuntypeProgramUniform3iEXT-glrefProgramUniform3iEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3iEXT #-}-glProgramUniform3iEXT :: FuntypeProgramUniform3iEXT-glProgramUniform3iEXT = unsafePerformIO $ readIORef glrefProgramUniform3iEXT-{-# INLINE glProgramUniform3iEXT #-}-type FuntypeProgramUniform4iEXT =- GLuint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4iEXT :: FunPtr FuntypeProgramUniform4iEXT -> FuntypeProgramUniform4iEXT-glrefProgramUniform4iEXT :: IORef FuntypeProgramUniform4iEXT-glrefProgramUniform4iEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4iEXT #-}-glProgramUniform4iEXT :: FuntypeProgramUniform4iEXT-glProgramUniform4iEXT = unsafePerformIO $ readIORef glrefProgramUniform4iEXT-{-# INLINE glProgramUniform4iEXT #-}-type FuntypeProgramUniform1fvEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1fvEXT :: FunPtr FuntypeProgramUniform1fvEXT -> FuntypeProgramUniform1fvEXT-glrefProgramUniform1fvEXT :: IORef FuntypeProgramUniform1fvEXT-glrefProgramUniform1fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1fvEXT #-}-glProgramUniform1fvEXT :: FuntypeProgramUniform1fvEXT-glProgramUniform1fvEXT = unsafePerformIO $ readIORef glrefProgramUniform1fvEXT-{-# INLINE glProgramUniform1fvEXT #-}-type FuntypeProgramUniform2fvEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2fvEXT :: FunPtr FuntypeProgramUniform2fvEXT -> FuntypeProgramUniform2fvEXT-glrefProgramUniform2fvEXT :: IORef FuntypeProgramUniform2fvEXT-glrefProgramUniform2fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2fvEXT #-}-glProgramUniform2fvEXT :: FuntypeProgramUniform2fvEXT-glProgramUniform2fvEXT = unsafePerformIO $ readIORef glrefProgramUniform2fvEXT-{-# INLINE glProgramUniform2fvEXT #-}-type FuntypeProgramUniform3fvEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3fvEXT :: FunPtr FuntypeProgramUniform3fvEXT -> FuntypeProgramUniform3fvEXT-glrefProgramUniform3fvEXT :: IORef FuntypeProgramUniform3fvEXT-glrefProgramUniform3fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3fvEXT #-}-glProgramUniform3fvEXT :: FuntypeProgramUniform3fvEXT-glProgramUniform3fvEXT = unsafePerformIO $ readIORef glrefProgramUniform3fvEXT-{-# INLINE glProgramUniform3fvEXT #-}-type FuntypeProgramUniform4fvEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4fvEXT :: FunPtr FuntypeProgramUniform4fvEXT -> FuntypeProgramUniform4fvEXT-glrefProgramUniform4fvEXT :: IORef FuntypeProgramUniform4fvEXT-glrefProgramUniform4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4fvEXT #-}-glProgramUniform4fvEXT :: FuntypeProgramUniform4fvEXT-glProgramUniform4fvEXT = unsafePerformIO $ readIORef glrefProgramUniform4fvEXT-{-# INLINE glProgramUniform4fvEXT #-}-type FuntypeProgramUniform1ivEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1ivEXT :: FunPtr FuntypeProgramUniform1ivEXT -> FuntypeProgramUniform1ivEXT-glrefProgramUniform1ivEXT :: IORef FuntypeProgramUniform1ivEXT-glrefProgramUniform1ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1ivEXT #-}-glProgramUniform1ivEXT :: FuntypeProgramUniform1ivEXT-glProgramUniform1ivEXT = unsafePerformIO $ readIORef glrefProgramUniform1ivEXT-{-# INLINE glProgramUniform1ivEXT #-}-type FuntypeProgramUniform2ivEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2ivEXT :: FunPtr FuntypeProgramUniform2ivEXT -> FuntypeProgramUniform2ivEXT-glrefProgramUniform2ivEXT :: IORef FuntypeProgramUniform2ivEXT-glrefProgramUniform2ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2ivEXT #-}-glProgramUniform2ivEXT :: FuntypeProgramUniform2ivEXT-glProgramUniform2ivEXT = unsafePerformIO $ readIORef glrefProgramUniform2ivEXT-{-# INLINE glProgramUniform2ivEXT #-}-type FuntypeProgramUniform3ivEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3ivEXT :: FunPtr FuntypeProgramUniform3ivEXT -> FuntypeProgramUniform3ivEXT-glrefProgramUniform3ivEXT :: IORef FuntypeProgramUniform3ivEXT-glrefProgramUniform3ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3ivEXT #-}-glProgramUniform3ivEXT :: FuntypeProgramUniform3ivEXT-glProgramUniform3ivEXT = unsafePerformIO $ readIORef glrefProgramUniform3ivEXT-{-# INLINE glProgramUniform3ivEXT #-}-type FuntypeProgramUniform4ivEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4ivEXT :: FunPtr FuntypeProgramUniform4ivEXT -> FuntypeProgramUniform4ivEXT-glrefProgramUniform4ivEXT :: IORef FuntypeProgramUniform4ivEXT-glrefProgramUniform4ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4ivEXT #-}-glProgramUniform4ivEXT :: FuntypeProgramUniform4ivEXT-glProgramUniform4ivEXT = unsafePerformIO $ readIORef glrefProgramUniform4ivEXT-{-# INLINE glProgramUniform4ivEXT #-}-type FuntypeProgramUniformMatrix2fvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2fvEXT :: FunPtr FuntypeProgramUniformMatrix2fvEXT -> FuntypeProgramUniformMatrix2fvEXT-glrefProgramUniformMatrix2fvEXT :: IORef FuntypeProgramUniformMatrix2fvEXT-glrefProgramUniformMatrix2fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2fvEXT #-}-glProgramUniformMatrix2fvEXT :: FuntypeProgramUniformMatrix2fvEXT-glProgramUniformMatrix2fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2fvEXT-{-# INLINE glProgramUniformMatrix2fvEXT #-}-type FuntypeProgramUniformMatrix3fvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3fvEXT :: FunPtr FuntypeProgramUniformMatrix3fvEXT -> FuntypeProgramUniformMatrix3fvEXT-glrefProgramUniformMatrix3fvEXT :: IORef FuntypeProgramUniformMatrix3fvEXT-glrefProgramUniformMatrix3fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3fvEXT #-}-glProgramUniformMatrix3fvEXT :: FuntypeProgramUniformMatrix3fvEXT-glProgramUniformMatrix3fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3fvEXT-{-# INLINE glProgramUniformMatrix3fvEXT #-}-type FuntypeProgramUniformMatrix4fvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4fvEXT :: FunPtr FuntypeProgramUniformMatrix4fvEXT -> FuntypeProgramUniformMatrix4fvEXT-glrefProgramUniformMatrix4fvEXT :: IORef FuntypeProgramUniformMatrix4fvEXT-glrefProgramUniformMatrix4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4fvEXT #-}-glProgramUniformMatrix4fvEXT :: FuntypeProgramUniformMatrix4fvEXT-glProgramUniformMatrix4fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4fvEXT-{-# INLINE glProgramUniformMatrix4fvEXT #-}-type FuntypeProgramUniformMatrix2x3fvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2x3fvEXT :: FunPtr FuntypeProgramUniformMatrix2x3fvEXT -> FuntypeProgramUniformMatrix2x3fvEXT-glrefProgramUniformMatrix2x3fvEXT :: IORef FuntypeProgramUniformMatrix2x3fvEXT-glrefProgramUniformMatrix2x3fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2x3fvEXT #-}-glProgramUniformMatrix2x3fvEXT :: FuntypeProgramUniformMatrix2x3fvEXT-glProgramUniformMatrix2x3fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x3fvEXT-{-# INLINE glProgramUniformMatrix2x3fvEXT #-}-type FuntypeProgramUniformMatrix3x2fvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3x2fvEXT :: FunPtr FuntypeProgramUniformMatrix3x2fvEXT -> FuntypeProgramUniformMatrix3x2fvEXT-glrefProgramUniformMatrix3x2fvEXT :: IORef FuntypeProgramUniformMatrix3x2fvEXT-glrefProgramUniformMatrix3x2fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3x2fvEXT #-}-glProgramUniformMatrix3x2fvEXT :: FuntypeProgramUniformMatrix3x2fvEXT-glProgramUniformMatrix3x2fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x2fvEXT-{-# INLINE glProgramUniformMatrix3x2fvEXT #-}-type FuntypeProgramUniformMatrix2x4fvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2x4fvEXT :: FunPtr FuntypeProgramUniformMatrix2x4fvEXT -> FuntypeProgramUniformMatrix2x4fvEXT-glrefProgramUniformMatrix2x4fvEXT :: IORef FuntypeProgramUniformMatrix2x4fvEXT-glrefProgramUniformMatrix2x4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2x4fvEXT #-}-glProgramUniformMatrix2x4fvEXT :: FuntypeProgramUniformMatrix2x4fvEXT-glProgramUniformMatrix2x4fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x4fvEXT-{-# INLINE glProgramUniformMatrix2x4fvEXT #-}-type FuntypeProgramUniformMatrix4x2fvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4x2fvEXT :: FunPtr FuntypeProgramUniformMatrix4x2fvEXT -> FuntypeProgramUniformMatrix4x2fvEXT-glrefProgramUniformMatrix4x2fvEXT :: IORef FuntypeProgramUniformMatrix4x2fvEXT-glrefProgramUniformMatrix4x2fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4x2fvEXT #-}-glProgramUniformMatrix4x2fvEXT :: FuntypeProgramUniformMatrix4x2fvEXT-glProgramUniformMatrix4x2fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x2fvEXT-{-# INLINE glProgramUniformMatrix4x2fvEXT #-}-type FuntypeProgramUniformMatrix3x4fvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3x4fvEXT :: FunPtr FuntypeProgramUniformMatrix3x4fvEXT -> FuntypeProgramUniformMatrix3x4fvEXT-glrefProgramUniformMatrix3x4fvEXT :: IORef FuntypeProgramUniformMatrix3x4fvEXT-glrefProgramUniformMatrix3x4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3x4fvEXT #-}-glProgramUniformMatrix3x4fvEXT :: FuntypeProgramUniformMatrix3x4fvEXT-glProgramUniformMatrix3x4fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x4fvEXT-{-# INLINE glProgramUniformMatrix3x4fvEXT #-}-type FuntypeProgramUniformMatrix4x3fvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4x3fvEXT :: FunPtr FuntypeProgramUniformMatrix4x3fvEXT -> FuntypeProgramUniformMatrix4x3fvEXT-glrefProgramUniformMatrix4x3fvEXT :: IORef FuntypeProgramUniformMatrix4x3fvEXT-glrefProgramUniformMatrix4x3fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4x3fvEXT #-}-glProgramUniformMatrix4x3fvEXT :: FuntypeProgramUniformMatrix4x3fvEXT-glProgramUniformMatrix4x3fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x3fvEXT-{-# INLINE glProgramUniformMatrix4x3fvEXT #-}-type FuntypeTextureBufferEXT =- GLuint ->- GLenum ->- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureBufferEXT :: FunPtr FuntypeTextureBufferEXT -> FuntypeTextureBufferEXT-glrefTextureBufferEXT :: IORef FuntypeTextureBufferEXT-glrefTextureBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureBufferEXT #-}-glTextureBufferEXT :: FuntypeTextureBufferEXT-glTextureBufferEXT = unsafePerformIO $ readIORef glrefTextureBufferEXT-{-# INLINE glTextureBufferEXT #-}-type FuntypeMultiTexBufferEXT =- GLenum ->- GLenum ->- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexBufferEXT :: FunPtr FuntypeMultiTexBufferEXT -> FuntypeMultiTexBufferEXT-glrefMultiTexBufferEXT :: IORef FuntypeMultiTexBufferEXT-glrefMultiTexBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexBufferEXT #-}-glMultiTexBufferEXT :: FuntypeMultiTexBufferEXT-glMultiTexBufferEXT = unsafePerformIO $ readIORef glrefMultiTexBufferEXT-{-# INLINE glMultiTexBufferEXT #-}-type FuntypeTextureParameterIivEXT =- GLuint ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureParameterIivEXT :: FunPtr FuntypeTextureParameterIivEXT -> FuntypeTextureParameterIivEXT-glrefTextureParameterIivEXT :: IORef FuntypeTextureParameterIivEXT-glrefTextureParameterIivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureParameterIivEXT #-}-glTextureParameterIivEXT :: FuntypeTextureParameterIivEXT-glTextureParameterIivEXT = unsafePerformIO $ readIORef glrefTextureParameterIivEXT-{-# INLINE glTextureParameterIivEXT #-}-type FuntypeTextureParameterIuivEXT =- GLuint ->- GLenum ->- GLenum ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureParameterIuivEXT :: FunPtr FuntypeTextureParameterIuivEXT -> FuntypeTextureParameterIuivEXT-glrefTextureParameterIuivEXT :: IORef FuntypeTextureParameterIuivEXT-glrefTextureParameterIuivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureParameterIuivEXT #-}-glTextureParameterIuivEXT :: FuntypeTextureParameterIuivEXT-glTextureParameterIuivEXT = unsafePerformIO $ readIORef glrefTextureParameterIuivEXT-{-# INLINE glTextureParameterIuivEXT #-}-type FuntypeGetTextureParameterIivEXT =- GLuint ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTextureParameterIivEXT :: FunPtr FuntypeGetTextureParameterIivEXT -> FuntypeGetTextureParameterIivEXT-glrefGetTextureParameterIivEXT :: IORef FuntypeGetTextureParameterIivEXT-glrefGetTextureParameterIivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTextureParameterIivEXT #-}-glGetTextureParameterIivEXT :: FuntypeGetTextureParameterIivEXT-glGetTextureParameterIivEXT = unsafePerformIO $ readIORef glrefGetTextureParameterIivEXT-{-# INLINE glGetTextureParameterIivEXT #-}-type FuntypeGetTextureParameterIuivEXT =- GLuint ->- GLenum ->- GLenum ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetTextureParameterIuivEXT :: FunPtr FuntypeGetTextureParameterIuivEXT -> FuntypeGetTextureParameterIuivEXT-glrefGetTextureParameterIuivEXT :: IORef FuntypeGetTextureParameterIuivEXT-glrefGetTextureParameterIuivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetTextureParameterIuivEXT #-}-glGetTextureParameterIuivEXT :: FuntypeGetTextureParameterIuivEXT-glGetTextureParameterIuivEXT = unsafePerformIO $ readIORef glrefGetTextureParameterIuivEXT-{-# INLINE glGetTextureParameterIuivEXT #-}-type FuntypeMultiTexParameterIivEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexParameterIivEXT :: FunPtr FuntypeMultiTexParameterIivEXT -> FuntypeMultiTexParameterIivEXT-glrefMultiTexParameterIivEXT :: IORef FuntypeMultiTexParameterIivEXT-glrefMultiTexParameterIivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexParameterIivEXT #-}-glMultiTexParameterIivEXT :: FuntypeMultiTexParameterIivEXT-glMultiTexParameterIivEXT = unsafePerformIO $ readIORef glrefMultiTexParameterIivEXT-{-# INLINE glMultiTexParameterIivEXT #-}-type FuntypeMultiTexParameterIuivEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexParameterIuivEXT :: FunPtr FuntypeMultiTexParameterIuivEXT -> FuntypeMultiTexParameterIuivEXT-glrefMultiTexParameterIuivEXT :: IORef FuntypeMultiTexParameterIuivEXT-glrefMultiTexParameterIuivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexParameterIuivEXT #-}-glMultiTexParameterIuivEXT :: FuntypeMultiTexParameterIuivEXT-glMultiTexParameterIuivEXT = unsafePerformIO $ readIORef glrefMultiTexParameterIuivEXT-{-# INLINE glMultiTexParameterIuivEXT #-}-type FuntypeGetMultiTexParameterIivEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexParameterIivEXT :: FunPtr FuntypeGetMultiTexParameterIivEXT -> FuntypeGetMultiTexParameterIivEXT-glrefGetMultiTexParameterIivEXT :: IORef FuntypeGetMultiTexParameterIivEXT-glrefGetMultiTexParameterIivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexParameterIivEXT #-}-glGetMultiTexParameterIivEXT :: FuntypeGetMultiTexParameterIivEXT-glGetMultiTexParameterIivEXT = unsafePerformIO $ readIORef glrefGetMultiTexParameterIivEXT-{-# INLINE glGetMultiTexParameterIivEXT #-}-type FuntypeGetMultiTexParameterIuivEXT =- GLenum ->- GLenum ->- GLenum ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetMultiTexParameterIuivEXT :: FunPtr FuntypeGetMultiTexParameterIuivEXT -> FuntypeGetMultiTexParameterIuivEXT-glrefGetMultiTexParameterIuivEXT :: IORef FuntypeGetMultiTexParameterIuivEXT-glrefGetMultiTexParameterIuivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetMultiTexParameterIuivEXT #-}-glGetMultiTexParameterIuivEXT :: FuntypeGetMultiTexParameterIuivEXT-glGetMultiTexParameterIuivEXT = unsafePerformIO $ readIORef glrefGetMultiTexParameterIuivEXT-{-# INLINE glGetMultiTexParameterIuivEXT #-}-type FuntypeProgramUniform1uiEXT =- GLuint ->- GLint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1uiEXT :: FunPtr FuntypeProgramUniform1uiEXT -> FuntypeProgramUniform1uiEXT-glrefProgramUniform1uiEXT :: IORef FuntypeProgramUniform1uiEXT-glrefProgramUniform1uiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1uiEXT #-}-glProgramUniform1uiEXT :: FuntypeProgramUniform1uiEXT-glProgramUniform1uiEXT = unsafePerformIO $ readIORef glrefProgramUniform1uiEXT-{-# INLINE glProgramUniform1uiEXT #-}-type FuntypeProgramUniform2uiEXT =- GLuint ->- GLint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2uiEXT :: FunPtr FuntypeProgramUniform2uiEXT -> FuntypeProgramUniform2uiEXT-glrefProgramUniform2uiEXT :: IORef FuntypeProgramUniform2uiEXT-glrefProgramUniform2uiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2uiEXT #-}-glProgramUniform2uiEXT :: FuntypeProgramUniform2uiEXT-glProgramUniform2uiEXT = unsafePerformIO $ readIORef glrefProgramUniform2uiEXT-{-# INLINE glProgramUniform2uiEXT #-}-type FuntypeProgramUniform3uiEXT =- GLuint ->- GLint ->- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3uiEXT :: FunPtr FuntypeProgramUniform3uiEXT -> FuntypeProgramUniform3uiEXT-glrefProgramUniform3uiEXT :: IORef FuntypeProgramUniform3uiEXT-glrefProgramUniform3uiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3uiEXT #-}-glProgramUniform3uiEXT :: FuntypeProgramUniform3uiEXT-glProgramUniform3uiEXT = unsafePerformIO $ readIORef glrefProgramUniform3uiEXT-{-# INLINE glProgramUniform3uiEXT #-}-type FuntypeProgramUniform4uiEXT =- GLuint ->- GLint ->- GLuint ->- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4uiEXT :: FunPtr FuntypeProgramUniform4uiEXT -> FuntypeProgramUniform4uiEXT-glrefProgramUniform4uiEXT :: IORef FuntypeProgramUniform4uiEXT-glrefProgramUniform4uiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4uiEXT #-}-glProgramUniform4uiEXT :: FuntypeProgramUniform4uiEXT-glProgramUniform4uiEXT = unsafePerformIO $ readIORef glrefProgramUniform4uiEXT-{-# INLINE glProgramUniform4uiEXT #-}-type FuntypeProgramUniform1uivEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1uivEXT :: FunPtr FuntypeProgramUniform1uivEXT -> FuntypeProgramUniform1uivEXT-glrefProgramUniform1uivEXT :: IORef FuntypeProgramUniform1uivEXT-glrefProgramUniform1uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1uivEXT #-}-glProgramUniform1uivEXT :: FuntypeProgramUniform1uivEXT-glProgramUniform1uivEXT = unsafePerformIO $ readIORef glrefProgramUniform1uivEXT-{-# INLINE glProgramUniform1uivEXT #-}-type FuntypeProgramUniform2uivEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2uivEXT :: FunPtr FuntypeProgramUniform2uivEXT -> FuntypeProgramUniform2uivEXT-glrefProgramUniform2uivEXT :: IORef FuntypeProgramUniform2uivEXT-glrefProgramUniform2uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2uivEXT #-}-glProgramUniform2uivEXT :: FuntypeProgramUniform2uivEXT-glProgramUniform2uivEXT = unsafePerformIO $ readIORef glrefProgramUniform2uivEXT-{-# INLINE glProgramUniform2uivEXT #-}-type FuntypeProgramUniform3uivEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3uivEXT :: FunPtr FuntypeProgramUniform3uivEXT -> FuntypeProgramUniform3uivEXT-glrefProgramUniform3uivEXT :: IORef FuntypeProgramUniform3uivEXT-glrefProgramUniform3uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3uivEXT #-}-glProgramUniform3uivEXT :: FuntypeProgramUniform3uivEXT-glProgramUniform3uivEXT = unsafePerformIO $ readIORef glrefProgramUniform3uivEXT-{-# INLINE glProgramUniform3uivEXT #-}-type FuntypeProgramUniform4uivEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4uivEXT :: FunPtr FuntypeProgramUniform4uivEXT -> FuntypeProgramUniform4uivEXT-glrefProgramUniform4uivEXT :: IORef FuntypeProgramUniform4uivEXT-glrefProgramUniform4uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4uivEXT #-}-glProgramUniform4uivEXT :: FuntypeProgramUniform4uivEXT-glProgramUniform4uivEXT = unsafePerformIO $ readIORef glrefProgramUniform4uivEXT-{-# INLINE glProgramUniform4uivEXT #-}-type FuntypeNamedProgramLocalParameters4fvEXT =- GLuint ->- GLenum ->- GLuint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramLocalParameters4fvEXT :: FunPtr FuntypeNamedProgramLocalParameters4fvEXT -> FuntypeNamedProgramLocalParameters4fvEXT-glrefNamedProgramLocalParameters4fvEXT :: IORef FuntypeNamedProgramLocalParameters4fvEXT-glrefNamedProgramLocalParameters4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramLocalParameters4fvEXT #-}-glNamedProgramLocalParameters4fvEXT :: FuntypeNamedProgramLocalParameters4fvEXT-glNamedProgramLocalParameters4fvEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameters4fvEXT-{-# INLINE glNamedProgramLocalParameters4fvEXT #-}-type FuntypeNamedProgramLocalParameterI4iEXT =- GLuint ->- GLenum ->- GLuint ->- GLint ->- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramLocalParameterI4iEXT :: FunPtr FuntypeNamedProgramLocalParameterI4iEXT -> FuntypeNamedProgramLocalParameterI4iEXT-glrefNamedProgramLocalParameterI4iEXT :: IORef FuntypeNamedProgramLocalParameterI4iEXT-glrefNamedProgramLocalParameterI4iEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramLocalParameterI4iEXT #-}-glNamedProgramLocalParameterI4iEXT :: FuntypeNamedProgramLocalParameterI4iEXT-glNamedProgramLocalParameterI4iEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameterI4iEXT-{-# INLINE glNamedProgramLocalParameterI4iEXT #-}-type FuntypeNamedProgramLocalParameterI4ivEXT =- GLuint ->- GLenum ->- GLuint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramLocalParameterI4ivEXT :: FunPtr FuntypeNamedProgramLocalParameterI4ivEXT -> FuntypeNamedProgramLocalParameterI4ivEXT-glrefNamedProgramLocalParameterI4ivEXT :: IORef FuntypeNamedProgramLocalParameterI4ivEXT-glrefNamedProgramLocalParameterI4ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramLocalParameterI4ivEXT #-}-glNamedProgramLocalParameterI4ivEXT :: FuntypeNamedProgramLocalParameterI4ivEXT-glNamedProgramLocalParameterI4ivEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameterI4ivEXT-{-# INLINE glNamedProgramLocalParameterI4ivEXT #-}-type FuntypeNamedProgramLocalParametersI4ivEXT =- GLuint ->- GLenum ->- GLuint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramLocalParametersI4ivEXT :: FunPtr FuntypeNamedProgramLocalParametersI4ivEXT -> FuntypeNamedProgramLocalParametersI4ivEXT-glrefNamedProgramLocalParametersI4ivEXT :: IORef FuntypeNamedProgramLocalParametersI4ivEXT-glrefNamedProgramLocalParametersI4ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramLocalParametersI4ivEXT #-}-glNamedProgramLocalParametersI4ivEXT :: FuntypeNamedProgramLocalParametersI4ivEXT-glNamedProgramLocalParametersI4ivEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParametersI4ivEXT-{-# INLINE glNamedProgramLocalParametersI4ivEXT #-}-type FuntypeNamedProgramLocalParameterI4uiEXT =- GLuint ->- GLenum ->- GLuint ->- GLuint ->- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramLocalParameterI4uiEXT :: FunPtr FuntypeNamedProgramLocalParameterI4uiEXT -> FuntypeNamedProgramLocalParameterI4uiEXT-glrefNamedProgramLocalParameterI4uiEXT :: IORef FuntypeNamedProgramLocalParameterI4uiEXT-glrefNamedProgramLocalParameterI4uiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramLocalParameterI4uiEXT #-}-glNamedProgramLocalParameterI4uiEXT :: FuntypeNamedProgramLocalParameterI4uiEXT-glNamedProgramLocalParameterI4uiEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameterI4uiEXT-{-# INLINE glNamedProgramLocalParameterI4uiEXT #-}-type FuntypeNamedProgramLocalParameterI4uivEXT =- GLuint ->- GLenum ->- GLuint ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramLocalParameterI4uivEXT :: FunPtr FuntypeNamedProgramLocalParameterI4uivEXT -> FuntypeNamedProgramLocalParameterI4uivEXT-glrefNamedProgramLocalParameterI4uivEXT :: IORef FuntypeNamedProgramLocalParameterI4uivEXT-glrefNamedProgramLocalParameterI4uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramLocalParameterI4uivEXT #-}-glNamedProgramLocalParameterI4uivEXT :: FuntypeNamedProgramLocalParameterI4uivEXT-glNamedProgramLocalParameterI4uivEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameterI4uivEXT-{-# INLINE glNamedProgramLocalParameterI4uivEXT #-}-type FuntypeNamedProgramLocalParametersI4uivEXT =- GLuint ->- GLenum ->- GLuint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramLocalParametersI4uivEXT :: FunPtr FuntypeNamedProgramLocalParametersI4uivEXT -> FuntypeNamedProgramLocalParametersI4uivEXT-glrefNamedProgramLocalParametersI4uivEXT :: IORef FuntypeNamedProgramLocalParametersI4uivEXT-glrefNamedProgramLocalParametersI4uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramLocalParametersI4uivEXT #-}-glNamedProgramLocalParametersI4uivEXT :: FuntypeNamedProgramLocalParametersI4uivEXT-glNamedProgramLocalParametersI4uivEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParametersI4uivEXT-{-# INLINE glNamedProgramLocalParametersI4uivEXT #-}-type FuntypeGetNamedProgramLocalParameterIivEXT =- GLuint ->- GLenum ->- GLuint ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedProgramLocalParameterIivEXT :: FunPtr FuntypeGetNamedProgramLocalParameterIivEXT -> FuntypeGetNamedProgramLocalParameterIivEXT-glrefGetNamedProgramLocalParameterIivEXT :: IORef FuntypeGetNamedProgramLocalParameterIivEXT-glrefGetNamedProgramLocalParameterIivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedProgramLocalParameterIivEXT #-}-glGetNamedProgramLocalParameterIivEXT :: FuntypeGetNamedProgramLocalParameterIivEXT-glGetNamedProgramLocalParameterIivEXT = unsafePerformIO $ readIORef glrefGetNamedProgramLocalParameterIivEXT-{-# INLINE glGetNamedProgramLocalParameterIivEXT #-}-type FuntypeGetNamedProgramLocalParameterIuivEXT =- GLuint ->- GLenum ->- GLuint ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedProgramLocalParameterIuivEXT :: FunPtr FuntypeGetNamedProgramLocalParameterIuivEXT -> FuntypeGetNamedProgramLocalParameterIuivEXT-glrefGetNamedProgramLocalParameterIuivEXT :: IORef FuntypeGetNamedProgramLocalParameterIuivEXT-glrefGetNamedProgramLocalParameterIuivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedProgramLocalParameterIuivEXT #-}-glGetNamedProgramLocalParameterIuivEXT :: FuntypeGetNamedProgramLocalParameterIuivEXT-glGetNamedProgramLocalParameterIuivEXT = unsafePerformIO $ readIORef glrefGetNamedProgramLocalParameterIuivEXT-{-# INLINE glGetNamedProgramLocalParameterIuivEXT #-}-type FuntypeEnableClientStateiEXT =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynEnableClientStateiEXT :: FunPtr FuntypeEnableClientStateiEXT -> FuntypeEnableClientStateiEXT-glrefEnableClientStateiEXT :: IORef FuntypeEnableClientStateiEXT-glrefEnableClientStateiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefEnableClientStateiEXT #-}-glEnableClientStateiEXT :: FuntypeEnableClientStateiEXT-glEnableClientStateiEXT = unsafePerformIO $ readIORef glrefEnableClientStateiEXT-{-# INLINE glEnableClientStateiEXT #-}-type FuntypeDisableClientStateiEXT =- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDisableClientStateiEXT :: FunPtr FuntypeDisableClientStateiEXT -> FuntypeDisableClientStateiEXT-glrefDisableClientStateiEXT :: IORef FuntypeDisableClientStateiEXT-glrefDisableClientStateiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDisableClientStateiEXT #-}-glDisableClientStateiEXT :: FuntypeDisableClientStateiEXT-glDisableClientStateiEXT = unsafePerformIO $ readIORef glrefDisableClientStateiEXT-{-# INLINE glDisableClientStateiEXT #-}-type FuntypeGetFloati_vEXT =- GLenum ->- GLuint ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetFloati_vEXT :: FunPtr FuntypeGetFloati_vEXT -> FuntypeGetFloati_vEXT-glrefGetFloati_vEXT :: IORef FuntypeGetFloati_vEXT-glrefGetFloati_vEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetFloati_vEXT #-}-glGetFloati_vEXT :: FuntypeGetFloati_vEXT-glGetFloati_vEXT = unsafePerformIO $ readIORef glrefGetFloati_vEXT-{-# INLINE glGetFloati_vEXT #-}-type FuntypeGetDoublei_vEXT =- GLenum ->- GLuint ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetDoublei_vEXT :: FunPtr FuntypeGetDoublei_vEXT -> FuntypeGetDoublei_vEXT-glrefGetDoublei_vEXT :: IORef FuntypeGetDoublei_vEXT-glrefGetDoublei_vEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetDoublei_vEXT #-}-glGetDoublei_vEXT :: FuntypeGetDoublei_vEXT-glGetDoublei_vEXT = unsafePerformIO $ readIORef glrefGetDoublei_vEXT-{-# INLINE glGetDoublei_vEXT #-}-type FuntypeGetPointeri_vEXT =- GLenum ->- GLuint ->- Ptr (Ptr ()) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetPointeri_vEXT :: FunPtr FuntypeGetPointeri_vEXT -> FuntypeGetPointeri_vEXT-glrefGetPointeri_vEXT :: IORef FuntypeGetPointeri_vEXT-glrefGetPointeri_vEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetPointeri_vEXT #-}-glGetPointeri_vEXT :: FuntypeGetPointeri_vEXT-glGetPointeri_vEXT = unsafePerformIO $ readIORef glrefGetPointeri_vEXT-{-# INLINE glGetPointeri_vEXT #-}-type FuntypeNamedProgramStringEXT =- GLuint ->- GLenum ->- GLenum ->- GLsizei ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramStringEXT :: FunPtr FuntypeNamedProgramStringEXT -> FuntypeNamedProgramStringEXT-glrefNamedProgramStringEXT :: IORef FuntypeNamedProgramStringEXT-glrefNamedProgramStringEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramStringEXT #-}-glNamedProgramStringEXT :: FuntypeNamedProgramStringEXT-glNamedProgramStringEXT = unsafePerformIO $ readIORef glrefNamedProgramStringEXT-{-# INLINE glNamedProgramStringEXT #-}-type FuntypeNamedProgramLocalParameter4dEXT =- GLuint ->- GLenum ->- GLuint ->- GLdouble ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramLocalParameter4dEXT :: FunPtr FuntypeNamedProgramLocalParameter4dEXT -> FuntypeNamedProgramLocalParameter4dEXT-glrefNamedProgramLocalParameter4dEXT :: IORef FuntypeNamedProgramLocalParameter4dEXT-glrefNamedProgramLocalParameter4dEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramLocalParameter4dEXT #-}-glNamedProgramLocalParameter4dEXT :: FuntypeNamedProgramLocalParameter4dEXT-glNamedProgramLocalParameter4dEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameter4dEXT-{-# INLINE glNamedProgramLocalParameter4dEXT #-}-type FuntypeNamedProgramLocalParameter4dvEXT =- GLuint ->- GLenum ->- GLuint ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramLocalParameter4dvEXT :: FunPtr FuntypeNamedProgramLocalParameter4dvEXT -> FuntypeNamedProgramLocalParameter4dvEXT-glrefNamedProgramLocalParameter4dvEXT :: IORef FuntypeNamedProgramLocalParameter4dvEXT-glrefNamedProgramLocalParameter4dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramLocalParameter4dvEXT #-}-glNamedProgramLocalParameter4dvEXT :: FuntypeNamedProgramLocalParameter4dvEXT-glNamedProgramLocalParameter4dvEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameter4dvEXT-{-# INLINE glNamedProgramLocalParameter4dvEXT #-}-type FuntypeNamedProgramLocalParameter4fEXT =- GLuint ->- GLenum ->- GLuint ->- GLfloat ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramLocalParameter4fEXT :: FunPtr FuntypeNamedProgramLocalParameter4fEXT -> FuntypeNamedProgramLocalParameter4fEXT-glrefNamedProgramLocalParameter4fEXT :: IORef FuntypeNamedProgramLocalParameter4fEXT-glrefNamedProgramLocalParameter4fEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramLocalParameter4fEXT #-}-glNamedProgramLocalParameter4fEXT :: FuntypeNamedProgramLocalParameter4fEXT-glNamedProgramLocalParameter4fEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameter4fEXT-{-# INLINE glNamedProgramLocalParameter4fEXT #-}-type FuntypeNamedProgramLocalParameter4fvEXT =- GLuint ->- GLenum ->- GLuint ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedProgramLocalParameter4fvEXT :: FunPtr FuntypeNamedProgramLocalParameter4fvEXT -> FuntypeNamedProgramLocalParameter4fvEXT-glrefNamedProgramLocalParameter4fvEXT :: IORef FuntypeNamedProgramLocalParameter4fvEXT-glrefNamedProgramLocalParameter4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedProgramLocalParameter4fvEXT #-}-glNamedProgramLocalParameter4fvEXT :: FuntypeNamedProgramLocalParameter4fvEXT-glNamedProgramLocalParameter4fvEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameter4fvEXT-{-# INLINE glNamedProgramLocalParameter4fvEXT #-}-type FuntypeGetNamedProgramLocalParameterdvEXT =- GLuint ->- GLenum ->- GLuint ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedProgramLocalParameterdvEXT :: FunPtr FuntypeGetNamedProgramLocalParameterdvEXT -> FuntypeGetNamedProgramLocalParameterdvEXT-glrefGetNamedProgramLocalParameterdvEXT :: IORef FuntypeGetNamedProgramLocalParameterdvEXT-glrefGetNamedProgramLocalParameterdvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedProgramLocalParameterdvEXT #-}-glGetNamedProgramLocalParameterdvEXT :: FuntypeGetNamedProgramLocalParameterdvEXT-glGetNamedProgramLocalParameterdvEXT = unsafePerformIO $ readIORef glrefGetNamedProgramLocalParameterdvEXT-{-# INLINE glGetNamedProgramLocalParameterdvEXT #-}-type FuntypeGetNamedProgramLocalParameterfvEXT =- GLuint ->- GLenum ->- GLuint ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedProgramLocalParameterfvEXT :: FunPtr FuntypeGetNamedProgramLocalParameterfvEXT -> FuntypeGetNamedProgramLocalParameterfvEXT-glrefGetNamedProgramLocalParameterfvEXT :: IORef FuntypeGetNamedProgramLocalParameterfvEXT-glrefGetNamedProgramLocalParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedProgramLocalParameterfvEXT #-}-glGetNamedProgramLocalParameterfvEXT :: FuntypeGetNamedProgramLocalParameterfvEXT-glGetNamedProgramLocalParameterfvEXT = unsafePerformIO $ readIORef glrefGetNamedProgramLocalParameterfvEXT-{-# INLINE glGetNamedProgramLocalParameterfvEXT #-}-type FuntypeGetNamedProgramivEXT =- GLuint ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedProgramivEXT :: FunPtr FuntypeGetNamedProgramivEXT -> FuntypeGetNamedProgramivEXT-glrefGetNamedProgramivEXT :: IORef FuntypeGetNamedProgramivEXT-glrefGetNamedProgramivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedProgramivEXT #-}-glGetNamedProgramivEXT :: FuntypeGetNamedProgramivEXT-glGetNamedProgramivEXT = unsafePerformIO $ readIORef glrefGetNamedProgramivEXT-{-# INLINE glGetNamedProgramivEXT #-}-type FuntypeGetNamedProgramStringEXT =- GLuint ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedProgramStringEXT :: FunPtr FuntypeGetNamedProgramStringEXT -> FuntypeGetNamedProgramStringEXT-glrefGetNamedProgramStringEXT :: IORef FuntypeGetNamedProgramStringEXT-glrefGetNamedProgramStringEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedProgramStringEXT #-}-glGetNamedProgramStringEXT :: FuntypeGetNamedProgramStringEXT-glGetNamedProgramStringEXT = unsafePerformIO $ readIORef glrefGetNamedProgramStringEXT-{-# INLINE glGetNamedProgramStringEXT #-}-type FuntypeNamedRenderbufferStorageEXT =- GLuint ->- GLenum ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedRenderbufferStorageEXT :: FunPtr FuntypeNamedRenderbufferStorageEXT -> FuntypeNamedRenderbufferStorageEXT-glrefNamedRenderbufferStorageEXT :: IORef FuntypeNamedRenderbufferStorageEXT-glrefNamedRenderbufferStorageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedRenderbufferStorageEXT #-}-glNamedRenderbufferStorageEXT :: FuntypeNamedRenderbufferStorageEXT-glNamedRenderbufferStorageEXT = unsafePerformIO $ readIORef glrefNamedRenderbufferStorageEXT-{-# INLINE glNamedRenderbufferStorageEXT #-}-type FuntypeGetNamedRenderbufferParameterivEXT =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedRenderbufferParameterivEXT :: FunPtr FuntypeGetNamedRenderbufferParameterivEXT -> FuntypeGetNamedRenderbufferParameterivEXT-glrefGetNamedRenderbufferParameterivEXT :: IORef FuntypeGetNamedRenderbufferParameterivEXT-glrefGetNamedRenderbufferParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedRenderbufferParameterivEXT #-}-glGetNamedRenderbufferParameterivEXT :: FuntypeGetNamedRenderbufferParameterivEXT-glGetNamedRenderbufferParameterivEXT = unsafePerformIO $ readIORef glrefGetNamedRenderbufferParameterivEXT-{-# INLINE glGetNamedRenderbufferParameterivEXT #-}-type FuntypeNamedRenderbufferStorageMultisampleEXT =- GLuint ->- GLsizei ->- GLenum ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedRenderbufferStorageMultisampleEXT :: FunPtr FuntypeNamedRenderbufferStorageMultisampleEXT -> FuntypeNamedRenderbufferStorageMultisampleEXT-glrefNamedRenderbufferStorageMultisampleEXT :: IORef FuntypeNamedRenderbufferStorageMultisampleEXT-glrefNamedRenderbufferStorageMultisampleEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedRenderbufferStorageMultisampleEXT #-}-glNamedRenderbufferStorageMultisampleEXT :: FuntypeNamedRenderbufferStorageMultisampleEXT-glNamedRenderbufferStorageMultisampleEXT = unsafePerformIO $ readIORef glrefNamedRenderbufferStorageMultisampleEXT-{-# INLINE glNamedRenderbufferStorageMultisampleEXT #-}-type FuntypeNamedRenderbufferStorageMultisampleCoverageEXT =- GLuint ->- GLsizei ->- GLsizei ->- GLenum ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedRenderbufferStorageMultisampleCoverageEXT :: FunPtr FuntypeNamedRenderbufferStorageMultisampleCoverageEXT -> FuntypeNamedRenderbufferStorageMultisampleCoverageEXT-glrefNamedRenderbufferStorageMultisampleCoverageEXT :: IORef FuntypeNamedRenderbufferStorageMultisampleCoverageEXT-glrefNamedRenderbufferStorageMultisampleCoverageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedRenderbufferStorageMultisampleCoverageEXT #-}-glNamedRenderbufferStorageMultisampleCoverageEXT :: FuntypeNamedRenderbufferStorageMultisampleCoverageEXT-glNamedRenderbufferStorageMultisampleCoverageEXT = unsafePerformIO $ readIORef glrefNamedRenderbufferStorageMultisampleCoverageEXT-{-# INLINE glNamedRenderbufferStorageMultisampleCoverageEXT #-}-type FuntypeCheckNamedFramebufferStatusEXT =- GLuint ->- GLenum ->- IO ( GLenum )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCheckNamedFramebufferStatusEXT :: FunPtr FuntypeCheckNamedFramebufferStatusEXT -> FuntypeCheckNamedFramebufferStatusEXT-glrefCheckNamedFramebufferStatusEXT :: IORef FuntypeCheckNamedFramebufferStatusEXT-glrefCheckNamedFramebufferStatusEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCheckNamedFramebufferStatusEXT #-}-glCheckNamedFramebufferStatusEXT :: FuntypeCheckNamedFramebufferStatusEXT-glCheckNamedFramebufferStatusEXT = unsafePerformIO $ readIORef glrefCheckNamedFramebufferStatusEXT-{-# INLINE glCheckNamedFramebufferStatusEXT #-}-type FuntypeNamedFramebufferTexture1DEXT =- GLuint ->- GLenum ->- GLenum ->- GLuint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedFramebufferTexture1DEXT :: FunPtr FuntypeNamedFramebufferTexture1DEXT -> FuntypeNamedFramebufferTexture1DEXT-glrefNamedFramebufferTexture1DEXT :: IORef FuntypeNamedFramebufferTexture1DEXT-glrefNamedFramebufferTexture1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedFramebufferTexture1DEXT #-}-glNamedFramebufferTexture1DEXT :: FuntypeNamedFramebufferTexture1DEXT-glNamedFramebufferTexture1DEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTexture1DEXT-{-# INLINE glNamedFramebufferTexture1DEXT #-}-type FuntypeNamedFramebufferTexture2DEXT =- GLuint ->- GLenum ->- GLenum ->- GLuint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedFramebufferTexture2DEXT :: FunPtr FuntypeNamedFramebufferTexture2DEXT -> FuntypeNamedFramebufferTexture2DEXT-glrefNamedFramebufferTexture2DEXT :: IORef FuntypeNamedFramebufferTexture2DEXT-glrefNamedFramebufferTexture2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedFramebufferTexture2DEXT #-}-glNamedFramebufferTexture2DEXT :: FuntypeNamedFramebufferTexture2DEXT-glNamedFramebufferTexture2DEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTexture2DEXT-{-# INLINE glNamedFramebufferTexture2DEXT #-}-type FuntypeNamedFramebufferTexture3DEXT =- GLuint ->- GLenum ->- GLenum ->- GLuint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedFramebufferTexture3DEXT :: FunPtr FuntypeNamedFramebufferTexture3DEXT -> FuntypeNamedFramebufferTexture3DEXT-glrefNamedFramebufferTexture3DEXT :: IORef FuntypeNamedFramebufferTexture3DEXT-glrefNamedFramebufferTexture3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedFramebufferTexture3DEXT #-}-glNamedFramebufferTexture3DEXT :: FuntypeNamedFramebufferTexture3DEXT-glNamedFramebufferTexture3DEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTexture3DEXT-{-# INLINE glNamedFramebufferTexture3DEXT #-}-type FuntypeNamedFramebufferRenderbufferEXT =- GLuint ->- GLenum ->- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedFramebufferRenderbufferEXT :: FunPtr FuntypeNamedFramebufferRenderbufferEXT -> FuntypeNamedFramebufferRenderbufferEXT-glrefNamedFramebufferRenderbufferEXT :: IORef FuntypeNamedFramebufferRenderbufferEXT-glrefNamedFramebufferRenderbufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedFramebufferRenderbufferEXT #-}-glNamedFramebufferRenderbufferEXT :: FuntypeNamedFramebufferRenderbufferEXT-glNamedFramebufferRenderbufferEXT = unsafePerformIO $ readIORef glrefNamedFramebufferRenderbufferEXT-{-# INLINE glNamedFramebufferRenderbufferEXT #-}-type FuntypeGetNamedFramebufferAttachmentParameterivEXT =- GLuint ->- GLenum ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedFramebufferAttachmentParameterivEXT :: FunPtr FuntypeGetNamedFramebufferAttachmentParameterivEXT -> FuntypeGetNamedFramebufferAttachmentParameterivEXT-glrefGetNamedFramebufferAttachmentParameterivEXT :: IORef FuntypeGetNamedFramebufferAttachmentParameterivEXT-glrefGetNamedFramebufferAttachmentParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedFramebufferAttachmentParameterivEXT #-}-glGetNamedFramebufferAttachmentParameterivEXT :: FuntypeGetNamedFramebufferAttachmentParameterivEXT-glGetNamedFramebufferAttachmentParameterivEXT = unsafePerformIO $ readIORef glrefGetNamedFramebufferAttachmentParameterivEXT-{-# INLINE glGetNamedFramebufferAttachmentParameterivEXT #-}-type FuntypeGenerateTextureMipmapEXT =- GLuint ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGenerateTextureMipmapEXT :: FunPtr FuntypeGenerateTextureMipmapEXT -> FuntypeGenerateTextureMipmapEXT-glrefGenerateTextureMipmapEXT :: IORef FuntypeGenerateTextureMipmapEXT-glrefGenerateTextureMipmapEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGenerateTextureMipmapEXT #-}-glGenerateTextureMipmapEXT :: FuntypeGenerateTextureMipmapEXT-glGenerateTextureMipmapEXT = unsafePerformIO $ readIORef glrefGenerateTextureMipmapEXT-{-# INLINE glGenerateTextureMipmapEXT #-}-type FuntypeGenerateMultiTexMipmapEXT =- GLenum ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGenerateMultiTexMipmapEXT :: FunPtr FuntypeGenerateMultiTexMipmapEXT -> FuntypeGenerateMultiTexMipmapEXT-glrefGenerateMultiTexMipmapEXT :: IORef FuntypeGenerateMultiTexMipmapEXT-glrefGenerateMultiTexMipmapEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGenerateMultiTexMipmapEXT #-}-glGenerateMultiTexMipmapEXT :: FuntypeGenerateMultiTexMipmapEXT-glGenerateMultiTexMipmapEXT = unsafePerformIO $ readIORef glrefGenerateMultiTexMipmapEXT-{-# INLINE glGenerateMultiTexMipmapEXT #-}-type FuntypeFramebufferDrawBufferEXT =- GLuint ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFramebufferDrawBufferEXT :: FunPtr FuntypeFramebufferDrawBufferEXT -> FuntypeFramebufferDrawBufferEXT-glrefFramebufferDrawBufferEXT :: IORef FuntypeFramebufferDrawBufferEXT-glrefFramebufferDrawBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFramebufferDrawBufferEXT #-}-glFramebufferDrawBufferEXT :: FuntypeFramebufferDrawBufferEXT-glFramebufferDrawBufferEXT = unsafePerformIO $ readIORef glrefFramebufferDrawBufferEXT-{-# INLINE glFramebufferDrawBufferEXT #-}-type FuntypeFramebufferDrawBuffersEXT =- GLuint ->- GLsizei ->- Ptr (GLenum) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFramebufferDrawBuffersEXT :: FunPtr FuntypeFramebufferDrawBuffersEXT -> FuntypeFramebufferDrawBuffersEXT-glrefFramebufferDrawBuffersEXT :: IORef FuntypeFramebufferDrawBuffersEXT-glrefFramebufferDrawBuffersEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFramebufferDrawBuffersEXT #-}-glFramebufferDrawBuffersEXT :: FuntypeFramebufferDrawBuffersEXT-glFramebufferDrawBuffersEXT = unsafePerformIO $ readIORef glrefFramebufferDrawBuffersEXT-{-# INLINE glFramebufferDrawBuffersEXT #-}-type FuntypeFramebufferReadBufferEXT =- GLuint ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFramebufferReadBufferEXT :: FunPtr FuntypeFramebufferReadBufferEXT -> FuntypeFramebufferReadBufferEXT-glrefFramebufferReadBufferEXT :: IORef FuntypeFramebufferReadBufferEXT-glrefFramebufferReadBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFramebufferReadBufferEXT #-}-glFramebufferReadBufferEXT :: FuntypeFramebufferReadBufferEXT-glFramebufferReadBufferEXT = unsafePerformIO $ readIORef glrefFramebufferReadBufferEXT-{-# INLINE glFramebufferReadBufferEXT #-}-type FuntypeGetFramebufferParameterivEXT =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetFramebufferParameterivEXT :: FunPtr FuntypeGetFramebufferParameterivEXT -> FuntypeGetFramebufferParameterivEXT-glrefGetFramebufferParameterivEXT :: IORef FuntypeGetFramebufferParameterivEXT-glrefGetFramebufferParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetFramebufferParameterivEXT #-}-glGetFramebufferParameterivEXT :: FuntypeGetFramebufferParameterivEXT-glGetFramebufferParameterivEXT = unsafePerformIO $ readIORef glrefGetFramebufferParameterivEXT-{-# INLINE glGetFramebufferParameterivEXT #-}-type FuntypeNamedCopyBufferSubDataEXT =- GLuint ->- GLuint ->- GLintptr ->- GLintptr ->- GLsizeiptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedCopyBufferSubDataEXT :: FunPtr FuntypeNamedCopyBufferSubDataEXT -> FuntypeNamedCopyBufferSubDataEXT-glrefNamedCopyBufferSubDataEXT :: IORef FuntypeNamedCopyBufferSubDataEXT-glrefNamedCopyBufferSubDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedCopyBufferSubDataEXT #-}-glNamedCopyBufferSubDataEXT :: FuntypeNamedCopyBufferSubDataEXT-glNamedCopyBufferSubDataEXT = unsafePerformIO $ readIORef glrefNamedCopyBufferSubDataEXT-{-# INLINE glNamedCopyBufferSubDataEXT #-}-type FuntypeNamedFramebufferTextureEXT =- GLuint ->- GLenum ->- GLuint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedFramebufferTextureEXT :: FunPtr FuntypeNamedFramebufferTextureEXT -> FuntypeNamedFramebufferTextureEXT-glrefNamedFramebufferTextureEXT :: IORef FuntypeNamedFramebufferTextureEXT-glrefNamedFramebufferTextureEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedFramebufferTextureEXT #-}-glNamedFramebufferTextureEXT :: FuntypeNamedFramebufferTextureEXT-glNamedFramebufferTextureEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTextureEXT-{-# INLINE glNamedFramebufferTextureEXT #-}-type FuntypeNamedFramebufferTextureLayerEXT =- GLuint ->- GLenum ->- GLuint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedFramebufferTextureLayerEXT :: FunPtr FuntypeNamedFramebufferTextureLayerEXT -> FuntypeNamedFramebufferTextureLayerEXT-glrefNamedFramebufferTextureLayerEXT :: IORef FuntypeNamedFramebufferTextureLayerEXT-glrefNamedFramebufferTextureLayerEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedFramebufferTextureLayerEXT #-}-glNamedFramebufferTextureLayerEXT :: FuntypeNamedFramebufferTextureLayerEXT-glNamedFramebufferTextureLayerEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTextureLayerEXT-{-# INLINE glNamedFramebufferTextureLayerEXT #-}-type FuntypeNamedFramebufferTextureFaceEXT =- GLuint ->- GLenum ->- GLuint ->- GLint ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedFramebufferTextureFaceEXT :: FunPtr FuntypeNamedFramebufferTextureFaceEXT -> FuntypeNamedFramebufferTextureFaceEXT-glrefNamedFramebufferTextureFaceEXT :: IORef FuntypeNamedFramebufferTextureFaceEXT-glrefNamedFramebufferTextureFaceEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedFramebufferTextureFaceEXT #-}-glNamedFramebufferTextureFaceEXT :: FuntypeNamedFramebufferTextureFaceEXT-glNamedFramebufferTextureFaceEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTextureFaceEXT-{-# INLINE glNamedFramebufferTextureFaceEXT #-}-type FuntypeTextureRenderbufferEXT =- GLuint ->- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureRenderbufferEXT :: FunPtr FuntypeTextureRenderbufferEXT -> FuntypeTextureRenderbufferEXT-glrefTextureRenderbufferEXT :: IORef FuntypeTextureRenderbufferEXT-glrefTextureRenderbufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureRenderbufferEXT #-}-glTextureRenderbufferEXT :: FuntypeTextureRenderbufferEXT-glTextureRenderbufferEXT = unsafePerformIO $ readIORef glrefTextureRenderbufferEXT-{-# INLINE glTextureRenderbufferEXT #-}-type FuntypeMultiTexRenderbufferEXT =- GLenum ->- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMultiTexRenderbufferEXT :: FunPtr FuntypeMultiTexRenderbufferEXT -> FuntypeMultiTexRenderbufferEXT-glrefMultiTexRenderbufferEXT :: IORef FuntypeMultiTexRenderbufferEXT-glrefMultiTexRenderbufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMultiTexRenderbufferEXT #-}-glMultiTexRenderbufferEXT :: FuntypeMultiTexRenderbufferEXT-glMultiTexRenderbufferEXT = unsafePerformIO $ readIORef glrefMultiTexRenderbufferEXT-{-# INLINE glMultiTexRenderbufferEXT #-}-type FuntypeVertexArrayVertexOffsetEXT =- GLuint ->- GLuint ->- GLint ->- GLenum ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayVertexOffsetEXT :: FunPtr FuntypeVertexArrayVertexOffsetEXT -> FuntypeVertexArrayVertexOffsetEXT-glrefVertexArrayVertexOffsetEXT :: IORef FuntypeVertexArrayVertexOffsetEXT-glrefVertexArrayVertexOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayVertexOffsetEXT #-}-glVertexArrayVertexOffsetEXT :: FuntypeVertexArrayVertexOffsetEXT-glVertexArrayVertexOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexOffsetEXT-{-# INLINE glVertexArrayVertexOffsetEXT #-}-type FuntypeVertexArrayColorOffsetEXT =- GLuint ->- GLuint ->- GLint ->- GLenum ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayColorOffsetEXT :: FunPtr FuntypeVertexArrayColorOffsetEXT -> FuntypeVertexArrayColorOffsetEXT-glrefVertexArrayColorOffsetEXT :: IORef FuntypeVertexArrayColorOffsetEXT-glrefVertexArrayColorOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayColorOffsetEXT #-}-glVertexArrayColorOffsetEXT :: FuntypeVertexArrayColorOffsetEXT-glVertexArrayColorOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayColorOffsetEXT-{-# INLINE glVertexArrayColorOffsetEXT #-}-type FuntypeVertexArrayEdgeFlagOffsetEXT =- GLuint ->- GLuint ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayEdgeFlagOffsetEXT :: FunPtr FuntypeVertexArrayEdgeFlagOffsetEXT -> FuntypeVertexArrayEdgeFlagOffsetEXT-glrefVertexArrayEdgeFlagOffsetEXT :: IORef FuntypeVertexArrayEdgeFlagOffsetEXT-glrefVertexArrayEdgeFlagOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayEdgeFlagOffsetEXT #-}-glVertexArrayEdgeFlagOffsetEXT :: FuntypeVertexArrayEdgeFlagOffsetEXT-glVertexArrayEdgeFlagOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayEdgeFlagOffsetEXT-{-# INLINE glVertexArrayEdgeFlagOffsetEXT #-}-type FuntypeVertexArrayIndexOffsetEXT =- GLuint ->- GLuint ->- GLenum ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayIndexOffsetEXT :: FunPtr FuntypeVertexArrayIndexOffsetEXT -> FuntypeVertexArrayIndexOffsetEXT-glrefVertexArrayIndexOffsetEXT :: IORef FuntypeVertexArrayIndexOffsetEXT-glrefVertexArrayIndexOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayIndexOffsetEXT #-}-glVertexArrayIndexOffsetEXT :: FuntypeVertexArrayIndexOffsetEXT-glVertexArrayIndexOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayIndexOffsetEXT-{-# INLINE glVertexArrayIndexOffsetEXT #-}-type FuntypeVertexArrayNormalOffsetEXT =- GLuint ->- GLuint ->- GLenum ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayNormalOffsetEXT :: FunPtr FuntypeVertexArrayNormalOffsetEXT -> FuntypeVertexArrayNormalOffsetEXT-glrefVertexArrayNormalOffsetEXT :: IORef FuntypeVertexArrayNormalOffsetEXT-glrefVertexArrayNormalOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayNormalOffsetEXT #-}-glVertexArrayNormalOffsetEXT :: FuntypeVertexArrayNormalOffsetEXT-glVertexArrayNormalOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayNormalOffsetEXT-{-# INLINE glVertexArrayNormalOffsetEXT #-}-type FuntypeVertexArrayTexCoordOffsetEXT =- GLuint ->- GLuint ->- GLint ->- GLenum ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayTexCoordOffsetEXT :: FunPtr FuntypeVertexArrayTexCoordOffsetEXT -> FuntypeVertexArrayTexCoordOffsetEXT-glrefVertexArrayTexCoordOffsetEXT :: IORef FuntypeVertexArrayTexCoordOffsetEXT-glrefVertexArrayTexCoordOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayTexCoordOffsetEXT #-}-glVertexArrayTexCoordOffsetEXT :: FuntypeVertexArrayTexCoordOffsetEXT-glVertexArrayTexCoordOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayTexCoordOffsetEXT-{-# INLINE glVertexArrayTexCoordOffsetEXT #-}-type FuntypeVertexArrayMultiTexCoordOffsetEXT =- GLuint ->- GLuint ->- GLenum ->- GLint ->- GLenum ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayMultiTexCoordOffsetEXT :: FunPtr FuntypeVertexArrayMultiTexCoordOffsetEXT -> FuntypeVertexArrayMultiTexCoordOffsetEXT-glrefVertexArrayMultiTexCoordOffsetEXT :: IORef FuntypeVertexArrayMultiTexCoordOffsetEXT-glrefVertexArrayMultiTexCoordOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayMultiTexCoordOffsetEXT #-}-glVertexArrayMultiTexCoordOffsetEXT :: FuntypeVertexArrayMultiTexCoordOffsetEXT-glVertexArrayMultiTexCoordOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayMultiTexCoordOffsetEXT-{-# INLINE glVertexArrayMultiTexCoordOffsetEXT #-}-type FuntypeVertexArrayFogCoordOffsetEXT =- GLuint ->- GLuint ->- GLenum ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayFogCoordOffsetEXT :: FunPtr FuntypeVertexArrayFogCoordOffsetEXT -> FuntypeVertexArrayFogCoordOffsetEXT-glrefVertexArrayFogCoordOffsetEXT :: IORef FuntypeVertexArrayFogCoordOffsetEXT-glrefVertexArrayFogCoordOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayFogCoordOffsetEXT #-}-glVertexArrayFogCoordOffsetEXT :: FuntypeVertexArrayFogCoordOffsetEXT-glVertexArrayFogCoordOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayFogCoordOffsetEXT-{-# INLINE glVertexArrayFogCoordOffsetEXT #-}-type FuntypeVertexArraySecondaryColorOffsetEXT =- GLuint ->- GLuint ->- GLint ->- GLenum ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArraySecondaryColorOffsetEXT :: FunPtr FuntypeVertexArraySecondaryColorOffsetEXT -> FuntypeVertexArraySecondaryColorOffsetEXT-glrefVertexArraySecondaryColorOffsetEXT :: IORef FuntypeVertexArraySecondaryColorOffsetEXT-glrefVertexArraySecondaryColorOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArraySecondaryColorOffsetEXT #-}-glVertexArraySecondaryColorOffsetEXT :: FuntypeVertexArraySecondaryColorOffsetEXT-glVertexArraySecondaryColorOffsetEXT = unsafePerformIO $ readIORef glrefVertexArraySecondaryColorOffsetEXT-{-# INLINE glVertexArraySecondaryColorOffsetEXT #-}-type FuntypeVertexArrayVertexAttribOffsetEXT =- GLuint ->- GLuint ->- GLuint ->- GLint ->- GLenum ->- GLboolean ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayVertexAttribOffsetEXT :: FunPtr FuntypeVertexArrayVertexAttribOffsetEXT -> FuntypeVertexArrayVertexAttribOffsetEXT-glrefVertexArrayVertexAttribOffsetEXT :: IORef FuntypeVertexArrayVertexAttribOffsetEXT-glrefVertexArrayVertexAttribOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayVertexAttribOffsetEXT #-}-glVertexArrayVertexAttribOffsetEXT :: FuntypeVertexArrayVertexAttribOffsetEXT-glVertexArrayVertexAttribOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribOffsetEXT-{-# INLINE glVertexArrayVertexAttribOffsetEXT #-}-type FuntypeVertexArrayVertexAttribIOffsetEXT =- GLuint ->- GLuint ->- GLuint ->- GLint ->- GLenum ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayVertexAttribIOffsetEXT :: FunPtr FuntypeVertexArrayVertexAttribIOffsetEXT -> FuntypeVertexArrayVertexAttribIOffsetEXT-glrefVertexArrayVertexAttribIOffsetEXT :: IORef FuntypeVertexArrayVertexAttribIOffsetEXT-glrefVertexArrayVertexAttribIOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayVertexAttribIOffsetEXT #-}-glVertexArrayVertexAttribIOffsetEXT :: FuntypeVertexArrayVertexAttribIOffsetEXT-glVertexArrayVertexAttribIOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribIOffsetEXT-{-# INLINE glVertexArrayVertexAttribIOffsetEXT #-}-type FuntypeEnableVertexArrayEXT =- GLuint ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynEnableVertexArrayEXT :: FunPtr FuntypeEnableVertexArrayEXT -> FuntypeEnableVertexArrayEXT-glrefEnableVertexArrayEXT :: IORef FuntypeEnableVertexArrayEXT-glrefEnableVertexArrayEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefEnableVertexArrayEXT #-}-glEnableVertexArrayEXT :: FuntypeEnableVertexArrayEXT-glEnableVertexArrayEXT = unsafePerformIO $ readIORef glrefEnableVertexArrayEXT-{-# INLINE glEnableVertexArrayEXT #-}-type FuntypeDisableVertexArrayEXT =- GLuint ->- GLenum ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDisableVertexArrayEXT :: FunPtr FuntypeDisableVertexArrayEXT -> FuntypeDisableVertexArrayEXT-glrefDisableVertexArrayEXT :: IORef FuntypeDisableVertexArrayEXT-glrefDisableVertexArrayEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDisableVertexArrayEXT #-}-glDisableVertexArrayEXT :: FuntypeDisableVertexArrayEXT-glDisableVertexArrayEXT = unsafePerformIO $ readIORef glrefDisableVertexArrayEXT-{-# INLINE glDisableVertexArrayEXT #-}-type FuntypeEnableVertexArrayAttribEXT =- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynEnableVertexArrayAttribEXT :: FunPtr FuntypeEnableVertexArrayAttribEXT -> FuntypeEnableVertexArrayAttribEXT-glrefEnableVertexArrayAttribEXT :: IORef FuntypeEnableVertexArrayAttribEXT-glrefEnableVertexArrayAttribEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefEnableVertexArrayAttribEXT #-}-glEnableVertexArrayAttribEXT :: FuntypeEnableVertexArrayAttribEXT-glEnableVertexArrayAttribEXT = unsafePerformIO $ readIORef glrefEnableVertexArrayAttribEXT-{-# INLINE glEnableVertexArrayAttribEXT #-}-type FuntypeDisableVertexArrayAttribEXT =- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDisableVertexArrayAttribEXT :: FunPtr FuntypeDisableVertexArrayAttribEXT -> FuntypeDisableVertexArrayAttribEXT-glrefDisableVertexArrayAttribEXT :: IORef FuntypeDisableVertexArrayAttribEXT-glrefDisableVertexArrayAttribEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDisableVertexArrayAttribEXT #-}-glDisableVertexArrayAttribEXT :: FuntypeDisableVertexArrayAttribEXT-glDisableVertexArrayAttribEXT = unsafePerformIO $ readIORef glrefDisableVertexArrayAttribEXT-{-# INLINE glDisableVertexArrayAttribEXT #-}-type FuntypeGetVertexArrayIntegervEXT =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetVertexArrayIntegervEXT :: FunPtr FuntypeGetVertexArrayIntegervEXT -> FuntypeGetVertexArrayIntegervEXT-glrefGetVertexArrayIntegervEXT :: IORef FuntypeGetVertexArrayIntegervEXT-glrefGetVertexArrayIntegervEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetVertexArrayIntegervEXT #-}-glGetVertexArrayIntegervEXT :: FuntypeGetVertexArrayIntegervEXT-glGetVertexArrayIntegervEXT = unsafePerformIO $ readIORef glrefGetVertexArrayIntegervEXT-{-# INLINE glGetVertexArrayIntegervEXT #-}-type FuntypeGetVertexArrayPointervEXT =- GLuint ->- GLenum ->- Ptr (Ptr ()) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetVertexArrayPointervEXT :: FunPtr FuntypeGetVertexArrayPointervEXT -> FuntypeGetVertexArrayPointervEXT-glrefGetVertexArrayPointervEXT :: IORef FuntypeGetVertexArrayPointervEXT-glrefGetVertexArrayPointervEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetVertexArrayPointervEXT #-}-glGetVertexArrayPointervEXT :: FuntypeGetVertexArrayPointervEXT-glGetVertexArrayPointervEXT = unsafePerformIO $ readIORef glrefGetVertexArrayPointervEXT-{-# INLINE glGetVertexArrayPointervEXT #-}-type FuntypeGetVertexArrayIntegeri_vEXT =- GLuint ->- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetVertexArrayIntegeri_vEXT :: FunPtr FuntypeGetVertexArrayIntegeri_vEXT -> FuntypeGetVertexArrayIntegeri_vEXT-glrefGetVertexArrayIntegeri_vEXT :: IORef FuntypeGetVertexArrayIntegeri_vEXT-glrefGetVertexArrayIntegeri_vEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetVertexArrayIntegeri_vEXT #-}-glGetVertexArrayIntegeri_vEXT :: FuntypeGetVertexArrayIntegeri_vEXT-glGetVertexArrayIntegeri_vEXT = unsafePerformIO $ readIORef glrefGetVertexArrayIntegeri_vEXT-{-# INLINE glGetVertexArrayIntegeri_vEXT #-}-type FuntypeGetVertexArrayPointeri_vEXT =- GLuint ->- GLuint ->- GLenum ->- Ptr (Ptr ()) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetVertexArrayPointeri_vEXT :: FunPtr FuntypeGetVertexArrayPointeri_vEXT -> FuntypeGetVertexArrayPointeri_vEXT-glrefGetVertexArrayPointeri_vEXT :: IORef FuntypeGetVertexArrayPointeri_vEXT-glrefGetVertexArrayPointeri_vEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetVertexArrayPointeri_vEXT #-}-glGetVertexArrayPointeri_vEXT :: FuntypeGetVertexArrayPointeri_vEXT-glGetVertexArrayPointeri_vEXT = unsafePerformIO $ readIORef glrefGetVertexArrayPointeri_vEXT-{-# INLINE glGetVertexArrayPointeri_vEXT #-}-type FuntypeMapNamedBufferRangeEXT =- GLuint ->- GLintptr ->- GLsizeiptr ->- GLbitfield ->- IO ( Ptr () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynMapNamedBufferRangeEXT :: FunPtr FuntypeMapNamedBufferRangeEXT -> FuntypeMapNamedBufferRangeEXT-glrefMapNamedBufferRangeEXT :: IORef FuntypeMapNamedBufferRangeEXT-glrefMapNamedBufferRangeEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefMapNamedBufferRangeEXT #-}-glMapNamedBufferRangeEXT :: FuntypeMapNamedBufferRangeEXT-glMapNamedBufferRangeEXT = unsafePerformIO $ readIORef glrefMapNamedBufferRangeEXT-{-# INLINE glMapNamedBufferRangeEXT #-}-type FuntypeFlushMappedNamedBufferRangeEXT =- GLuint ->- GLintptr ->- GLsizeiptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynFlushMappedNamedBufferRangeEXT :: FunPtr FuntypeFlushMappedNamedBufferRangeEXT -> FuntypeFlushMappedNamedBufferRangeEXT-glrefFlushMappedNamedBufferRangeEXT :: IORef FuntypeFlushMappedNamedBufferRangeEXT-glrefFlushMappedNamedBufferRangeEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefFlushMappedNamedBufferRangeEXT #-}-glFlushMappedNamedBufferRangeEXT :: FuntypeFlushMappedNamedBufferRangeEXT-glFlushMappedNamedBufferRangeEXT = unsafePerformIO $ readIORef glrefFlushMappedNamedBufferRangeEXT-{-# INLINE glFlushMappedNamedBufferRangeEXT #-}-type FuntypeNamedBufferStorageEXT =- GLuint ->- GLsizeiptr ->- Ptr () ->- GLbitfield ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedBufferStorageEXT :: FunPtr FuntypeNamedBufferStorageEXT -> FuntypeNamedBufferStorageEXT-glrefNamedBufferStorageEXT :: IORef FuntypeNamedBufferStorageEXT-glrefNamedBufferStorageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedBufferStorageEXT #-}-glNamedBufferStorageEXT :: FuntypeNamedBufferStorageEXT-glNamedBufferStorageEXT = unsafePerformIO $ readIORef glrefNamedBufferStorageEXT-{-# INLINE glNamedBufferStorageEXT #-}-type FuntypeClearNamedBufferDataEXT =- GLuint ->- GLenum ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClearNamedBufferDataEXT :: FunPtr FuntypeClearNamedBufferDataEXT -> FuntypeClearNamedBufferDataEXT-glrefClearNamedBufferDataEXT :: IORef FuntypeClearNamedBufferDataEXT-glrefClearNamedBufferDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClearNamedBufferDataEXT #-}-glClearNamedBufferDataEXT :: FuntypeClearNamedBufferDataEXT-glClearNamedBufferDataEXT = unsafePerformIO $ readIORef glrefClearNamedBufferDataEXT-{-# INLINE glClearNamedBufferDataEXT #-}-type FuntypeClearNamedBufferSubDataEXT =- GLuint ->- GLenum ->- GLsizeiptr ->- GLsizeiptr ->- GLenum ->- GLenum ->- Ptr () ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynClearNamedBufferSubDataEXT :: FunPtr FuntypeClearNamedBufferSubDataEXT -> FuntypeClearNamedBufferSubDataEXT-glrefClearNamedBufferSubDataEXT :: IORef FuntypeClearNamedBufferSubDataEXT-glrefClearNamedBufferSubDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefClearNamedBufferSubDataEXT #-}-glClearNamedBufferSubDataEXT :: FuntypeClearNamedBufferSubDataEXT-glClearNamedBufferSubDataEXT = unsafePerformIO $ readIORef glrefClearNamedBufferSubDataEXT-{-# INLINE glClearNamedBufferSubDataEXT #-}-type FuntypeNamedFramebufferParameteriEXT =- GLuint ->- GLenum ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynNamedFramebufferParameteriEXT :: FunPtr FuntypeNamedFramebufferParameteriEXT -> FuntypeNamedFramebufferParameteriEXT-glrefNamedFramebufferParameteriEXT :: IORef FuntypeNamedFramebufferParameteriEXT-glrefNamedFramebufferParameteriEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefNamedFramebufferParameteriEXT #-}-glNamedFramebufferParameteriEXT :: FuntypeNamedFramebufferParameteriEXT-glNamedFramebufferParameteriEXT = unsafePerformIO $ readIORef glrefNamedFramebufferParameteriEXT-{-# INLINE glNamedFramebufferParameteriEXT #-}-type FuntypeGetNamedFramebufferParameterivEXT =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetNamedFramebufferParameterivEXT :: FunPtr FuntypeGetNamedFramebufferParameterivEXT -> FuntypeGetNamedFramebufferParameterivEXT-glrefGetNamedFramebufferParameterivEXT :: IORef FuntypeGetNamedFramebufferParameterivEXT-glrefGetNamedFramebufferParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetNamedFramebufferParameterivEXT #-}-glGetNamedFramebufferParameterivEXT :: FuntypeGetNamedFramebufferParameterivEXT-glGetNamedFramebufferParameterivEXT = unsafePerformIO $ readIORef glrefGetNamedFramebufferParameterivEXT-{-# INLINE glGetNamedFramebufferParameterivEXT #-}-type FuntypeProgramUniform1dEXT =- GLuint ->- GLint ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1dEXT :: FunPtr FuntypeProgramUniform1dEXT -> FuntypeProgramUniform1dEXT-glrefProgramUniform1dEXT :: IORef FuntypeProgramUniform1dEXT-glrefProgramUniform1dEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1dEXT #-}-glProgramUniform1dEXT :: FuntypeProgramUniform1dEXT-glProgramUniform1dEXT = unsafePerformIO $ readIORef glrefProgramUniform1dEXT-{-# INLINE glProgramUniform1dEXT #-}-type FuntypeProgramUniform2dEXT =- GLuint ->- GLint ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2dEXT :: FunPtr FuntypeProgramUniform2dEXT -> FuntypeProgramUniform2dEXT-glrefProgramUniform2dEXT :: IORef FuntypeProgramUniform2dEXT-glrefProgramUniform2dEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2dEXT #-}-glProgramUniform2dEXT :: FuntypeProgramUniform2dEXT-glProgramUniform2dEXT = unsafePerformIO $ readIORef glrefProgramUniform2dEXT-{-# INLINE glProgramUniform2dEXT #-}-type FuntypeProgramUniform3dEXT =- GLuint ->- GLint ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3dEXT :: FunPtr FuntypeProgramUniform3dEXT -> FuntypeProgramUniform3dEXT-glrefProgramUniform3dEXT :: IORef FuntypeProgramUniform3dEXT-glrefProgramUniform3dEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3dEXT #-}-glProgramUniform3dEXT :: FuntypeProgramUniform3dEXT-glProgramUniform3dEXT = unsafePerformIO $ readIORef glrefProgramUniform3dEXT-{-# INLINE glProgramUniform3dEXT #-}-type FuntypeProgramUniform4dEXT =- GLuint ->- GLint ->- GLdouble ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4dEXT :: FunPtr FuntypeProgramUniform4dEXT -> FuntypeProgramUniform4dEXT-glrefProgramUniform4dEXT :: IORef FuntypeProgramUniform4dEXT-glrefProgramUniform4dEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4dEXT #-}-glProgramUniform4dEXT :: FuntypeProgramUniform4dEXT-glProgramUniform4dEXT = unsafePerformIO $ readIORef glrefProgramUniform4dEXT-{-# INLINE glProgramUniform4dEXT #-}-type FuntypeProgramUniform1dvEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1dvEXT :: FunPtr FuntypeProgramUniform1dvEXT -> FuntypeProgramUniform1dvEXT-glrefProgramUniform1dvEXT :: IORef FuntypeProgramUniform1dvEXT-glrefProgramUniform1dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1dvEXT #-}-glProgramUniform1dvEXT :: FuntypeProgramUniform1dvEXT-glProgramUniform1dvEXT = unsafePerformIO $ readIORef glrefProgramUniform1dvEXT-{-# INLINE glProgramUniform1dvEXT #-}-type FuntypeProgramUniform2dvEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2dvEXT :: FunPtr FuntypeProgramUniform2dvEXT -> FuntypeProgramUniform2dvEXT-glrefProgramUniform2dvEXT :: IORef FuntypeProgramUniform2dvEXT-glrefProgramUniform2dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2dvEXT #-}-glProgramUniform2dvEXT :: FuntypeProgramUniform2dvEXT-glProgramUniform2dvEXT = unsafePerformIO $ readIORef glrefProgramUniform2dvEXT-{-# INLINE glProgramUniform2dvEXT #-}-type FuntypeProgramUniform3dvEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3dvEXT :: FunPtr FuntypeProgramUniform3dvEXT -> FuntypeProgramUniform3dvEXT-glrefProgramUniform3dvEXT :: IORef FuntypeProgramUniform3dvEXT-glrefProgramUniform3dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3dvEXT #-}-glProgramUniform3dvEXT :: FuntypeProgramUniform3dvEXT-glProgramUniform3dvEXT = unsafePerformIO $ readIORef glrefProgramUniform3dvEXT-{-# INLINE glProgramUniform3dvEXT #-}-type FuntypeProgramUniform4dvEXT =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4dvEXT :: FunPtr FuntypeProgramUniform4dvEXT -> FuntypeProgramUniform4dvEXT-glrefProgramUniform4dvEXT :: IORef FuntypeProgramUniform4dvEXT-glrefProgramUniform4dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4dvEXT #-}-glProgramUniform4dvEXT :: FuntypeProgramUniform4dvEXT-glProgramUniform4dvEXT = unsafePerformIO $ readIORef glrefProgramUniform4dvEXT-{-# INLINE glProgramUniform4dvEXT #-}-type FuntypeProgramUniformMatrix2dvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2dvEXT :: FunPtr FuntypeProgramUniformMatrix2dvEXT -> FuntypeProgramUniformMatrix2dvEXT-glrefProgramUniformMatrix2dvEXT :: IORef FuntypeProgramUniformMatrix2dvEXT-glrefProgramUniformMatrix2dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2dvEXT #-}-glProgramUniformMatrix2dvEXT :: FuntypeProgramUniformMatrix2dvEXT-glProgramUniformMatrix2dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2dvEXT-{-# INLINE glProgramUniformMatrix2dvEXT #-}-type FuntypeProgramUniformMatrix3dvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3dvEXT :: FunPtr FuntypeProgramUniformMatrix3dvEXT -> FuntypeProgramUniformMatrix3dvEXT-glrefProgramUniformMatrix3dvEXT :: IORef FuntypeProgramUniformMatrix3dvEXT-glrefProgramUniformMatrix3dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3dvEXT #-}-glProgramUniformMatrix3dvEXT :: FuntypeProgramUniformMatrix3dvEXT-glProgramUniformMatrix3dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3dvEXT-{-# INLINE glProgramUniformMatrix3dvEXT #-}-type FuntypeProgramUniformMatrix4dvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4dvEXT :: FunPtr FuntypeProgramUniformMatrix4dvEXT -> FuntypeProgramUniformMatrix4dvEXT-glrefProgramUniformMatrix4dvEXT :: IORef FuntypeProgramUniformMatrix4dvEXT-glrefProgramUniformMatrix4dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4dvEXT #-}-glProgramUniformMatrix4dvEXT :: FuntypeProgramUniformMatrix4dvEXT-glProgramUniformMatrix4dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4dvEXT-{-# INLINE glProgramUniformMatrix4dvEXT #-}-type FuntypeProgramUniformMatrix2x3dvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2x3dvEXT :: FunPtr FuntypeProgramUniformMatrix2x3dvEXT -> FuntypeProgramUniformMatrix2x3dvEXT-glrefProgramUniformMatrix2x3dvEXT :: IORef FuntypeProgramUniformMatrix2x3dvEXT-glrefProgramUniformMatrix2x3dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2x3dvEXT #-}-glProgramUniformMatrix2x3dvEXT :: FuntypeProgramUniformMatrix2x3dvEXT-glProgramUniformMatrix2x3dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x3dvEXT-{-# INLINE glProgramUniformMatrix2x3dvEXT #-}-type FuntypeProgramUniformMatrix2x4dvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2x4dvEXT :: FunPtr FuntypeProgramUniformMatrix2x4dvEXT -> FuntypeProgramUniformMatrix2x4dvEXT-glrefProgramUniformMatrix2x4dvEXT :: IORef FuntypeProgramUniformMatrix2x4dvEXT-glrefProgramUniformMatrix2x4dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2x4dvEXT #-}-glProgramUniformMatrix2x4dvEXT :: FuntypeProgramUniformMatrix2x4dvEXT-glProgramUniformMatrix2x4dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x4dvEXT-{-# INLINE glProgramUniformMatrix2x4dvEXT #-}-type FuntypeProgramUniformMatrix3x2dvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3x2dvEXT :: FunPtr FuntypeProgramUniformMatrix3x2dvEXT -> FuntypeProgramUniformMatrix3x2dvEXT-glrefProgramUniformMatrix3x2dvEXT :: IORef FuntypeProgramUniformMatrix3x2dvEXT-glrefProgramUniformMatrix3x2dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3x2dvEXT #-}-glProgramUniformMatrix3x2dvEXT :: FuntypeProgramUniformMatrix3x2dvEXT-glProgramUniformMatrix3x2dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x2dvEXT-{-# INLINE glProgramUniformMatrix3x2dvEXT #-}-type FuntypeProgramUniformMatrix3x4dvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3x4dvEXT :: FunPtr FuntypeProgramUniformMatrix3x4dvEXT -> FuntypeProgramUniformMatrix3x4dvEXT-glrefProgramUniformMatrix3x4dvEXT :: IORef FuntypeProgramUniformMatrix3x4dvEXT-glrefProgramUniformMatrix3x4dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3x4dvEXT #-}-glProgramUniformMatrix3x4dvEXT :: FuntypeProgramUniformMatrix3x4dvEXT-glProgramUniformMatrix3x4dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x4dvEXT-{-# INLINE glProgramUniformMatrix3x4dvEXT #-}-type FuntypeProgramUniformMatrix4x2dvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4x2dvEXT :: FunPtr FuntypeProgramUniformMatrix4x2dvEXT -> FuntypeProgramUniformMatrix4x2dvEXT-glrefProgramUniformMatrix4x2dvEXT :: IORef FuntypeProgramUniformMatrix4x2dvEXT-glrefProgramUniformMatrix4x2dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4x2dvEXT #-}-glProgramUniformMatrix4x2dvEXT :: FuntypeProgramUniformMatrix4x2dvEXT-glProgramUniformMatrix4x2dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x2dvEXT-{-# INLINE glProgramUniformMatrix4x2dvEXT #-}-type FuntypeProgramUniformMatrix4x3dvEXT =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4x3dvEXT :: FunPtr FuntypeProgramUniformMatrix4x3dvEXT -> FuntypeProgramUniformMatrix4x3dvEXT-glrefProgramUniformMatrix4x3dvEXT :: IORef FuntypeProgramUniformMatrix4x3dvEXT-glrefProgramUniformMatrix4x3dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4x3dvEXT #-}-glProgramUniformMatrix4x3dvEXT :: FuntypeProgramUniformMatrix4x3dvEXT-glProgramUniformMatrix4x3dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x3dvEXT-{-# INLINE glProgramUniformMatrix4x3dvEXT #-}-type FuntypeTextureBufferRangeEXT =- GLuint ->- GLenum ->- GLenum ->- GLuint ->- GLintptr ->- GLsizeiptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureBufferRangeEXT :: FunPtr FuntypeTextureBufferRangeEXT -> FuntypeTextureBufferRangeEXT-glrefTextureBufferRangeEXT :: IORef FuntypeTextureBufferRangeEXT-glrefTextureBufferRangeEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureBufferRangeEXT #-}-glTextureBufferRangeEXT :: FuntypeTextureBufferRangeEXT-glTextureBufferRangeEXT = unsafePerformIO $ readIORef glrefTextureBufferRangeEXT-{-# INLINE glTextureBufferRangeEXT #-}-type FuntypeTextureStorage1DEXT =- GLuint ->- GLenum ->- GLsizei ->- GLenum ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureStorage1DEXT :: FunPtr FuntypeTextureStorage1DEXT -> FuntypeTextureStorage1DEXT-glrefTextureStorage1DEXT :: IORef FuntypeTextureStorage1DEXT-glrefTextureStorage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureStorage1DEXT #-}-glTextureStorage1DEXT :: FuntypeTextureStorage1DEXT-glTextureStorage1DEXT = unsafePerformIO $ readIORef glrefTextureStorage1DEXT-{-# INLINE glTextureStorage1DEXT #-}-type FuntypeTextureStorage2DEXT =- GLuint ->- GLenum ->- GLsizei ->- GLenum ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureStorage2DEXT :: FunPtr FuntypeTextureStorage2DEXT -> FuntypeTextureStorage2DEXT-glrefTextureStorage2DEXT :: IORef FuntypeTextureStorage2DEXT-glrefTextureStorage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureStorage2DEXT #-}-glTextureStorage2DEXT :: FuntypeTextureStorage2DEXT-glTextureStorage2DEXT = unsafePerformIO $ readIORef glrefTextureStorage2DEXT-{-# INLINE glTextureStorage2DEXT #-}-type FuntypeTextureStorage3DEXT =- GLuint ->- GLenum ->- GLsizei ->- GLenum ->- GLsizei ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureStorage3DEXT :: FunPtr FuntypeTextureStorage3DEXT -> FuntypeTextureStorage3DEXT-glrefTextureStorage3DEXT :: IORef FuntypeTextureStorage3DEXT-glrefTextureStorage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureStorage3DEXT #-}-glTextureStorage3DEXT :: FuntypeTextureStorage3DEXT-glTextureStorage3DEXT = unsafePerformIO $ readIORef glrefTextureStorage3DEXT-{-# INLINE glTextureStorage3DEXT #-}-type FuntypeTextureStorage2DMultisampleEXT =- GLuint ->- GLenum ->- GLsizei ->- GLenum ->- GLsizei ->- GLsizei ->- GLboolean ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureStorage2DMultisampleEXT :: FunPtr FuntypeTextureStorage2DMultisampleEXT -> FuntypeTextureStorage2DMultisampleEXT-glrefTextureStorage2DMultisampleEXT :: IORef FuntypeTextureStorage2DMultisampleEXT-glrefTextureStorage2DMultisampleEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureStorage2DMultisampleEXT #-}-glTextureStorage2DMultisampleEXT :: FuntypeTextureStorage2DMultisampleEXT-glTextureStorage2DMultisampleEXT = unsafePerformIO $ readIORef glrefTextureStorage2DMultisampleEXT-{-# INLINE glTextureStorage2DMultisampleEXT #-}-type FuntypeTextureStorage3DMultisampleEXT =- GLuint ->- GLenum ->- GLsizei ->- GLenum ->- GLsizei ->- GLsizei ->- GLsizei ->- GLboolean ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTextureStorage3DMultisampleEXT :: FunPtr FuntypeTextureStorage3DMultisampleEXT -> FuntypeTextureStorage3DMultisampleEXT-glrefTextureStorage3DMultisampleEXT :: IORef FuntypeTextureStorage3DMultisampleEXT-glrefTextureStorage3DMultisampleEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTextureStorage3DMultisampleEXT #-}-glTextureStorage3DMultisampleEXT :: FuntypeTextureStorage3DMultisampleEXT-glTextureStorage3DMultisampleEXT = unsafePerformIO $ readIORef glrefTextureStorage3DMultisampleEXT-{-# INLINE glTextureStorage3DMultisampleEXT #-}-type FuntypeVertexArrayBindVertexBufferEXT =- GLuint ->- GLuint ->- GLuint ->- GLintptr ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayBindVertexBufferEXT :: FunPtr FuntypeVertexArrayBindVertexBufferEXT -> FuntypeVertexArrayBindVertexBufferEXT-glrefVertexArrayBindVertexBufferEXT :: IORef FuntypeVertexArrayBindVertexBufferEXT-glrefVertexArrayBindVertexBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayBindVertexBufferEXT #-}-glVertexArrayBindVertexBufferEXT :: FuntypeVertexArrayBindVertexBufferEXT-glVertexArrayBindVertexBufferEXT = unsafePerformIO $ readIORef glrefVertexArrayBindVertexBufferEXT-{-# INLINE glVertexArrayBindVertexBufferEXT #-}-type FuntypeVertexArrayVertexAttribFormatEXT =- GLuint ->- GLuint ->- GLint ->- GLenum ->- GLboolean ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayVertexAttribFormatEXT :: FunPtr FuntypeVertexArrayVertexAttribFormatEXT -> FuntypeVertexArrayVertexAttribFormatEXT-glrefVertexArrayVertexAttribFormatEXT :: IORef FuntypeVertexArrayVertexAttribFormatEXT-glrefVertexArrayVertexAttribFormatEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayVertexAttribFormatEXT #-}-glVertexArrayVertexAttribFormatEXT :: FuntypeVertexArrayVertexAttribFormatEXT-glVertexArrayVertexAttribFormatEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribFormatEXT-{-# INLINE glVertexArrayVertexAttribFormatEXT #-}-type FuntypeVertexArrayVertexAttribIFormatEXT =- GLuint ->- GLuint ->- GLint ->- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayVertexAttribIFormatEXT :: FunPtr FuntypeVertexArrayVertexAttribIFormatEXT -> FuntypeVertexArrayVertexAttribIFormatEXT-glrefVertexArrayVertexAttribIFormatEXT :: IORef FuntypeVertexArrayVertexAttribIFormatEXT-glrefVertexArrayVertexAttribIFormatEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayVertexAttribIFormatEXT #-}-glVertexArrayVertexAttribIFormatEXT :: FuntypeVertexArrayVertexAttribIFormatEXT-glVertexArrayVertexAttribIFormatEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribIFormatEXT-{-# INLINE glVertexArrayVertexAttribIFormatEXT #-}-type FuntypeVertexArrayVertexAttribLFormatEXT =- GLuint ->- GLuint ->- GLint ->- GLenum ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayVertexAttribLFormatEXT :: FunPtr FuntypeVertexArrayVertexAttribLFormatEXT -> FuntypeVertexArrayVertexAttribLFormatEXT-glrefVertexArrayVertexAttribLFormatEXT :: IORef FuntypeVertexArrayVertexAttribLFormatEXT-glrefVertexArrayVertexAttribLFormatEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayVertexAttribLFormatEXT #-}-glVertexArrayVertexAttribLFormatEXT :: FuntypeVertexArrayVertexAttribLFormatEXT-glVertexArrayVertexAttribLFormatEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribLFormatEXT-{-# INLINE glVertexArrayVertexAttribLFormatEXT #-}-type FuntypeVertexArrayVertexAttribBindingEXT =- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayVertexAttribBindingEXT :: FunPtr FuntypeVertexArrayVertexAttribBindingEXT -> FuntypeVertexArrayVertexAttribBindingEXT-glrefVertexArrayVertexAttribBindingEXT :: IORef FuntypeVertexArrayVertexAttribBindingEXT-glrefVertexArrayVertexAttribBindingEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayVertexAttribBindingEXT #-}-glVertexArrayVertexAttribBindingEXT :: FuntypeVertexArrayVertexAttribBindingEXT-glVertexArrayVertexAttribBindingEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribBindingEXT-{-# INLINE glVertexArrayVertexAttribBindingEXT #-}-type FuntypeVertexArrayVertexBindingDivisorEXT =- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayVertexBindingDivisorEXT :: FunPtr FuntypeVertexArrayVertexBindingDivisorEXT -> FuntypeVertexArrayVertexBindingDivisorEXT-glrefVertexArrayVertexBindingDivisorEXT :: IORef FuntypeVertexArrayVertexBindingDivisorEXT-glrefVertexArrayVertexBindingDivisorEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayVertexBindingDivisorEXT #-}-glVertexArrayVertexBindingDivisorEXT :: FuntypeVertexArrayVertexBindingDivisorEXT-glVertexArrayVertexBindingDivisorEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexBindingDivisorEXT-{-# INLINE glVertexArrayVertexBindingDivisorEXT #-}-type FuntypeVertexArrayVertexAttribLOffsetEXT =- GLuint ->- GLuint ->- GLuint ->- GLint ->- GLenum ->- GLsizei ->- GLintptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayVertexAttribLOffsetEXT :: FunPtr FuntypeVertexArrayVertexAttribLOffsetEXT -> FuntypeVertexArrayVertexAttribLOffsetEXT-glrefVertexArrayVertexAttribLOffsetEXT :: IORef FuntypeVertexArrayVertexAttribLOffsetEXT-glrefVertexArrayVertexAttribLOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayVertexAttribLOffsetEXT #-}-glVertexArrayVertexAttribLOffsetEXT :: FuntypeVertexArrayVertexAttribLOffsetEXT-glVertexArrayVertexAttribLOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribLOffsetEXT-{-# INLINE glVertexArrayVertexAttribLOffsetEXT #-}-type FuntypeTexturePageCommitmentEXT =- GLuint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLsizei ->- GLboolean ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynTexturePageCommitmentEXT :: FunPtr FuntypeTexturePageCommitmentEXT -> FuntypeTexturePageCommitmentEXT-glrefTexturePageCommitmentEXT :: IORef FuntypeTexturePageCommitmentEXT-glrefTexturePageCommitmentEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefTexturePageCommitmentEXT #-}-glTexturePageCommitmentEXT :: FuntypeTexturePageCommitmentEXT-glTexturePageCommitmentEXT = unsafePerformIO $ readIORef glrefTexturePageCommitmentEXT-{-# INLINE glTexturePageCommitmentEXT #-}-type FuntypeVertexArrayVertexAttribDivisorEXT =- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynVertexArrayVertexAttribDivisorEXT :: FunPtr FuntypeVertexArrayVertexAttribDivisorEXT -> FuntypeVertexArrayVertexAttribDivisorEXT-glrefVertexArrayVertexAttribDivisorEXT :: IORef FuntypeVertexArrayVertexAttribDivisorEXT-glrefVertexArrayVertexAttribDivisorEXT = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefVertexArrayVertexAttribDivisorEXT #-}-glVertexArrayVertexAttribDivisorEXT :: FuntypeVertexArrayVertexAttribDivisorEXT-glVertexArrayVertexAttribDivisorEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribDivisorEXT-{-# INLINE glVertexArrayVertexAttribDivisorEXT #-}---- GL_ARB_buffer_storage--type FuntypeBufferStorage =- GLenum ->- GLsizeiptr ->- Ptr () ->- GLbitfield ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBufferStorage :: FunPtr FuntypeBufferStorage -> FuntypeBufferStorage-glrefBufferStorage :: IORef FuntypeBufferStorage-glrefBufferStorage = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBufferStorage #-}-glBufferStorage :: FuntypeBufferStorage-glBufferStorage = unsafePerformIO $ readIORef glrefBufferStorage-{-# INLINE glBufferStorage #-}---- GL_ARB_separate_shader_objects--type FuntypeUseProgramStages =- GLuint ->- GLbitfield ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynUseProgramStages :: FunPtr FuntypeUseProgramStages -> FuntypeUseProgramStages-glrefUseProgramStages :: IORef FuntypeUseProgramStages-glrefUseProgramStages = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefUseProgramStages #-}-glUseProgramStages :: FuntypeUseProgramStages-glUseProgramStages = unsafePerformIO $ readIORef glrefUseProgramStages-{-# INLINE glUseProgramStages #-}-type FuntypeActiveShaderProgram =- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynActiveShaderProgram :: FunPtr FuntypeActiveShaderProgram -> FuntypeActiveShaderProgram-glrefActiveShaderProgram :: IORef FuntypeActiveShaderProgram-glrefActiveShaderProgram = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefActiveShaderProgram #-}-glActiveShaderProgram :: FuntypeActiveShaderProgram-glActiveShaderProgram = unsafePerformIO $ readIORef glrefActiveShaderProgram-{-# INLINE glActiveShaderProgram #-}-type FuntypeCreateShaderProgramv =- GLenum ->- GLsizei ->- Ptr (Ptr (GLchar)) ->- IO ( GLuint )-foreign import ccall APIENTRY unsafe "dynamic"- gldynCreateShaderProgramv :: FunPtr FuntypeCreateShaderProgramv -> FuntypeCreateShaderProgramv-glrefCreateShaderProgramv :: IORef FuntypeCreateShaderProgramv-glrefCreateShaderProgramv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefCreateShaderProgramv #-}-glCreateShaderProgramv :: FuntypeCreateShaderProgramv-glCreateShaderProgramv = unsafePerformIO $ readIORef glrefCreateShaderProgramv-{-# INLINE glCreateShaderProgramv #-}-type FuntypeBindProgramPipeline =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynBindProgramPipeline :: FunPtr FuntypeBindProgramPipeline -> FuntypeBindProgramPipeline-glrefBindProgramPipeline :: IORef FuntypeBindProgramPipeline-glrefBindProgramPipeline = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefBindProgramPipeline #-}-glBindProgramPipeline :: FuntypeBindProgramPipeline-glBindProgramPipeline = unsafePerformIO $ readIORef glrefBindProgramPipeline-{-# INLINE glBindProgramPipeline #-}-type FuntypeDeleteProgramPipelines =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynDeleteProgramPipelines :: FunPtr FuntypeDeleteProgramPipelines -> FuntypeDeleteProgramPipelines-glrefDeleteProgramPipelines :: IORef FuntypeDeleteProgramPipelines-glrefDeleteProgramPipelines = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefDeleteProgramPipelines #-}-glDeleteProgramPipelines :: FuntypeDeleteProgramPipelines-glDeleteProgramPipelines = unsafePerformIO $ readIORef glrefDeleteProgramPipelines-{-# INLINE glDeleteProgramPipelines #-}-type FuntypeGenProgramPipelines =- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGenProgramPipelines :: FunPtr FuntypeGenProgramPipelines -> FuntypeGenProgramPipelines-glrefGenProgramPipelines :: IORef FuntypeGenProgramPipelines-glrefGenProgramPipelines = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGenProgramPipelines #-}-glGenProgramPipelines :: FuntypeGenProgramPipelines-glGenProgramPipelines = unsafePerformIO $ readIORef glrefGenProgramPipelines-{-# INLINE glGenProgramPipelines #-}-type FuntypeIsProgramPipeline =- GLuint ->- IO ( GLboolean )-foreign import ccall APIENTRY unsafe "dynamic"- gldynIsProgramPipeline :: FunPtr FuntypeIsProgramPipeline -> FuntypeIsProgramPipeline-glrefIsProgramPipeline :: IORef FuntypeIsProgramPipeline-glrefIsProgramPipeline = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefIsProgramPipeline #-}-glIsProgramPipeline :: FuntypeIsProgramPipeline-glIsProgramPipeline = unsafePerformIO $ readIORef glrefIsProgramPipeline-{-# INLINE glIsProgramPipeline #-}-type FuntypeGetProgramPipelineiv =- GLuint ->- GLenum ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetProgramPipelineiv :: FunPtr FuntypeGetProgramPipelineiv -> FuntypeGetProgramPipelineiv-glrefGetProgramPipelineiv :: IORef FuntypeGetProgramPipelineiv-glrefGetProgramPipelineiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetProgramPipelineiv #-}-glGetProgramPipelineiv :: FuntypeGetProgramPipelineiv-glGetProgramPipelineiv = unsafePerformIO $ readIORef glrefGetProgramPipelineiv-{-# INLINE glGetProgramPipelineiv #-}-type FuntypeProgramUniform1i =- GLuint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1i :: FunPtr FuntypeProgramUniform1i -> FuntypeProgramUniform1i-glrefProgramUniform1i :: IORef FuntypeProgramUniform1i-glrefProgramUniform1i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1i #-}-glProgramUniform1i :: FuntypeProgramUniform1i-glProgramUniform1i = unsafePerformIO $ readIORef glrefProgramUniform1i-{-# INLINE glProgramUniform1i #-}-type FuntypeProgramUniform1iv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1iv :: FunPtr FuntypeProgramUniform1iv -> FuntypeProgramUniform1iv-glrefProgramUniform1iv :: IORef FuntypeProgramUniform1iv-glrefProgramUniform1iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1iv #-}-glProgramUniform1iv :: FuntypeProgramUniform1iv-glProgramUniform1iv = unsafePerformIO $ readIORef glrefProgramUniform1iv-{-# INLINE glProgramUniform1iv #-}-type FuntypeProgramUniform1f =- GLuint ->- GLint ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1f :: FunPtr FuntypeProgramUniform1f -> FuntypeProgramUniform1f-glrefProgramUniform1f :: IORef FuntypeProgramUniform1f-glrefProgramUniform1f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1f #-}-glProgramUniform1f :: FuntypeProgramUniform1f-glProgramUniform1f = unsafePerformIO $ readIORef glrefProgramUniform1f-{-# INLINE glProgramUniform1f #-}-type FuntypeProgramUniform1fv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1fv :: FunPtr FuntypeProgramUniform1fv -> FuntypeProgramUniform1fv-glrefProgramUniform1fv :: IORef FuntypeProgramUniform1fv-glrefProgramUniform1fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1fv #-}-glProgramUniform1fv :: FuntypeProgramUniform1fv-glProgramUniform1fv = unsafePerformIO $ readIORef glrefProgramUniform1fv-{-# INLINE glProgramUniform1fv #-}-type FuntypeProgramUniform1d =- GLuint ->- GLint ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1d :: FunPtr FuntypeProgramUniform1d -> FuntypeProgramUniform1d-glrefProgramUniform1d :: IORef FuntypeProgramUniform1d-glrefProgramUniform1d = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1d #-}-glProgramUniform1d :: FuntypeProgramUniform1d-glProgramUniform1d = unsafePerformIO $ readIORef glrefProgramUniform1d-{-# INLINE glProgramUniform1d #-}-type FuntypeProgramUniform1dv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1dv :: FunPtr FuntypeProgramUniform1dv -> FuntypeProgramUniform1dv-glrefProgramUniform1dv :: IORef FuntypeProgramUniform1dv-glrefProgramUniform1dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1dv #-}-glProgramUniform1dv :: FuntypeProgramUniform1dv-glProgramUniform1dv = unsafePerformIO $ readIORef glrefProgramUniform1dv-{-# INLINE glProgramUniform1dv #-}-type FuntypeProgramUniform1ui =- GLuint ->- GLint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1ui :: FunPtr FuntypeProgramUniform1ui -> FuntypeProgramUniform1ui-glrefProgramUniform1ui :: IORef FuntypeProgramUniform1ui-glrefProgramUniform1ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1ui #-}-glProgramUniform1ui :: FuntypeProgramUniform1ui-glProgramUniform1ui = unsafePerformIO $ readIORef glrefProgramUniform1ui-{-# INLINE glProgramUniform1ui #-}-type FuntypeProgramUniform1uiv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform1uiv :: FunPtr FuntypeProgramUniform1uiv -> FuntypeProgramUniform1uiv-glrefProgramUniform1uiv :: IORef FuntypeProgramUniform1uiv-glrefProgramUniform1uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform1uiv #-}-glProgramUniform1uiv :: FuntypeProgramUniform1uiv-glProgramUniform1uiv = unsafePerformIO $ readIORef glrefProgramUniform1uiv-{-# INLINE glProgramUniform1uiv #-}-type FuntypeProgramUniform2i =- GLuint ->- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2i :: FunPtr FuntypeProgramUniform2i -> FuntypeProgramUniform2i-glrefProgramUniform2i :: IORef FuntypeProgramUniform2i-glrefProgramUniform2i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2i #-}-glProgramUniform2i :: FuntypeProgramUniform2i-glProgramUniform2i = unsafePerformIO $ readIORef glrefProgramUniform2i-{-# INLINE glProgramUniform2i #-}-type FuntypeProgramUniform2iv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2iv :: FunPtr FuntypeProgramUniform2iv -> FuntypeProgramUniform2iv-glrefProgramUniform2iv :: IORef FuntypeProgramUniform2iv-glrefProgramUniform2iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2iv #-}-glProgramUniform2iv :: FuntypeProgramUniform2iv-glProgramUniform2iv = unsafePerformIO $ readIORef glrefProgramUniform2iv-{-# INLINE glProgramUniform2iv #-}-type FuntypeProgramUniform2f =- GLuint ->- GLint ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2f :: FunPtr FuntypeProgramUniform2f -> FuntypeProgramUniform2f-glrefProgramUniform2f :: IORef FuntypeProgramUniform2f-glrefProgramUniform2f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2f #-}-glProgramUniform2f :: FuntypeProgramUniform2f-glProgramUniform2f = unsafePerformIO $ readIORef glrefProgramUniform2f-{-# INLINE glProgramUniform2f #-}-type FuntypeProgramUniform2fv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2fv :: FunPtr FuntypeProgramUniform2fv -> FuntypeProgramUniform2fv-glrefProgramUniform2fv :: IORef FuntypeProgramUniform2fv-glrefProgramUniform2fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2fv #-}-glProgramUniform2fv :: FuntypeProgramUniform2fv-glProgramUniform2fv = unsafePerformIO $ readIORef glrefProgramUniform2fv-{-# INLINE glProgramUniform2fv #-}-type FuntypeProgramUniform2d =- GLuint ->- GLint ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2d :: FunPtr FuntypeProgramUniform2d -> FuntypeProgramUniform2d-glrefProgramUniform2d :: IORef FuntypeProgramUniform2d-glrefProgramUniform2d = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2d #-}-glProgramUniform2d :: FuntypeProgramUniform2d-glProgramUniform2d = unsafePerformIO $ readIORef glrefProgramUniform2d-{-# INLINE glProgramUniform2d #-}-type FuntypeProgramUniform2dv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2dv :: FunPtr FuntypeProgramUniform2dv -> FuntypeProgramUniform2dv-glrefProgramUniform2dv :: IORef FuntypeProgramUniform2dv-glrefProgramUniform2dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2dv #-}-glProgramUniform2dv :: FuntypeProgramUniform2dv-glProgramUniform2dv = unsafePerformIO $ readIORef glrefProgramUniform2dv-{-# INLINE glProgramUniform2dv #-}-type FuntypeProgramUniform2ui =- GLuint ->- GLint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2ui :: FunPtr FuntypeProgramUniform2ui -> FuntypeProgramUniform2ui-glrefProgramUniform2ui :: IORef FuntypeProgramUniform2ui-glrefProgramUniform2ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2ui #-}-glProgramUniform2ui :: FuntypeProgramUniform2ui-glProgramUniform2ui = unsafePerformIO $ readIORef glrefProgramUniform2ui-{-# INLINE glProgramUniform2ui #-}-type FuntypeProgramUniform2uiv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform2uiv :: FunPtr FuntypeProgramUniform2uiv -> FuntypeProgramUniform2uiv-glrefProgramUniform2uiv :: IORef FuntypeProgramUniform2uiv-glrefProgramUniform2uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform2uiv #-}-glProgramUniform2uiv :: FuntypeProgramUniform2uiv-glProgramUniform2uiv = unsafePerformIO $ readIORef glrefProgramUniform2uiv-{-# INLINE glProgramUniform2uiv #-}-type FuntypeProgramUniform3i =- GLuint ->- GLint ->- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3i :: FunPtr FuntypeProgramUniform3i -> FuntypeProgramUniform3i-glrefProgramUniform3i :: IORef FuntypeProgramUniform3i-glrefProgramUniform3i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3i #-}-glProgramUniform3i :: FuntypeProgramUniform3i-glProgramUniform3i = unsafePerformIO $ readIORef glrefProgramUniform3i-{-# INLINE glProgramUniform3i #-}-type FuntypeProgramUniform3iv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3iv :: FunPtr FuntypeProgramUniform3iv -> FuntypeProgramUniform3iv-glrefProgramUniform3iv :: IORef FuntypeProgramUniform3iv-glrefProgramUniform3iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3iv #-}-glProgramUniform3iv :: FuntypeProgramUniform3iv-glProgramUniform3iv = unsafePerformIO $ readIORef glrefProgramUniform3iv-{-# INLINE glProgramUniform3iv #-}-type FuntypeProgramUniform3f =- GLuint ->- GLint ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3f :: FunPtr FuntypeProgramUniform3f -> FuntypeProgramUniform3f-glrefProgramUniform3f :: IORef FuntypeProgramUniform3f-glrefProgramUniform3f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3f #-}-glProgramUniform3f :: FuntypeProgramUniform3f-glProgramUniform3f = unsafePerformIO $ readIORef glrefProgramUniform3f-{-# INLINE glProgramUniform3f #-}-type FuntypeProgramUniform3fv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3fv :: FunPtr FuntypeProgramUniform3fv -> FuntypeProgramUniform3fv-glrefProgramUniform3fv :: IORef FuntypeProgramUniform3fv-glrefProgramUniform3fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3fv #-}-glProgramUniform3fv :: FuntypeProgramUniform3fv-glProgramUniform3fv = unsafePerformIO $ readIORef glrefProgramUniform3fv-{-# INLINE glProgramUniform3fv #-}-type FuntypeProgramUniform3d =- GLuint ->- GLint ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3d :: FunPtr FuntypeProgramUniform3d -> FuntypeProgramUniform3d-glrefProgramUniform3d :: IORef FuntypeProgramUniform3d-glrefProgramUniform3d = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3d #-}-glProgramUniform3d :: FuntypeProgramUniform3d-glProgramUniform3d = unsafePerformIO $ readIORef glrefProgramUniform3d-{-# INLINE glProgramUniform3d #-}-type FuntypeProgramUniform3dv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3dv :: FunPtr FuntypeProgramUniform3dv -> FuntypeProgramUniform3dv-glrefProgramUniform3dv :: IORef FuntypeProgramUniform3dv-glrefProgramUniform3dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3dv #-}-glProgramUniform3dv :: FuntypeProgramUniform3dv-glProgramUniform3dv = unsafePerformIO $ readIORef glrefProgramUniform3dv-{-# INLINE glProgramUniform3dv #-}-type FuntypeProgramUniform3ui =- GLuint ->- GLint ->- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3ui :: FunPtr FuntypeProgramUniform3ui -> FuntypeProgramUniform3ui-glrefProgramUniform3ui :: IORef FuntypeProgramUniform3ui-glrefProgramUniform3ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3ui #-}-glProgramUniform3ui :: FuntypeProgramUniform3ui-glProgramUniform3ui = unsafePerformIO $ readIORef glrefProgramUniform3ui-{-# INLINE glProgramUniform3ui #-}-type FuntypeProgramUniform3uiv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform3uiv :: FunPtr FuntypeProgramUniform3uiv -> FuntypeProgramUniform3uiv-glrefProgramUniform3uiv :: IORef FuntypeProgramUniform3uiv-glrefProgramUniform3uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform3uiv #-}-glProgramUniform3uiv :: FuntypeProgramUniform3uiv-glProgramUniform3uiv = unsafePerformIO $ readIORef glrefProgramUniform3uiv-{-# INLINE glProgramUniform3uiv #-}-type FuntypeProgramUniform4i =- GLuint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4i :: FunPtr FuntypeProgramUniform4i -> FuntypeProgramUniform4i-glrefProgramUniform4i :: IORef FuntypeProgramUniform4i-glrefProgramUniform4i = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4i #-}-glProgramUniform4i :: FuntypeProgramUniform4i-glProgramUniform4i = unsafePerformIO $ readIORef glrefProgramUniform4i-{-# INLINE glProgramUniform4i #-}-type FuntypeProgramUniform4iv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4iv :: FunPtr FuntypeProgramUniform4iv -> FuntypeProgramUniform4iv-glrefProgramUniform4iv :: IORef FuntypeProgramUniform4iv-glrefProgramUniform4iv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4iv #-}-glProgramUniform4iv :: FuntypeProgramUniform4iv-glProgramUniform4iv = unsafePerformIO $ readIORef glrefProgramUniform4iv-{-# INLINE glProgramUniform4iv #-}-type FuntypeProgramUniform4f =- GLuint ->- GLint ->- GLfloat ->- GLfloat ->- GLfloat ->- GLfloat ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4f :: FunPtr FuntypeProgramUniform4f -> FuntypeProgramUniform4f-glrefProgramUniform4f :: IORef FuntypeProgramUniform4f-glrefProgramUniform4f = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4f #-}-glProgramUniform4f :: FuntypeProgramUniform4f-glProgramUniform4f = unsafePerformIO $ readIORef glrefProgramUniform4f-{-# INLINE glProgramUniform4f #-}-type FuntypeProgramUniform4fv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4fv :: FunPtr FuntypeProgramUniform4fv -> FuntypeProgramUniform4fv-glrefProgramUniform4fv :: IORef FuntypeProgramUniform4fv-glrefProgramUniform4fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4fv #-}-glProgramUniform4fv :: FuntypeProgramUniform4fv-glProgramUniform4fv = unsafePerformIO $ readIORef glrefProgramUniform4fv-{-# INLINE glProgramUniform4fv #-}-type FuntypeProgramUniform4d =- GLuint ->- GLint ->- GLdouble ->- GLdouble ->- GLdouble ->- GLdouble ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4d :: FunPtr FuntypeProgramUniform4d -> FuntypeProgramUniform4d-glrefProgramUniform4d :: IORef FuntypeProgramUniform4d-glrefProgramUniform4d = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4d #-}-glProgramUniform4d :: FuntypeProgramUniform4d-glProgramUniform4d = unsafePerformIO $ readIORef glrefProgramUniform4d-{-# INLINE glProgramUniform4d #-}-type FuntypeProgramUniform4dv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4dv :: FunPtr FuntypeProgramUniform4dv -> FuntypeProgramUniform4dv-glrefProgramUniform4dv :: IORef FuntypeProgramUniform4dv-glrefProgramUniform4dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4dv #-}-glProgramUniform4dv :: FuntypeProgramUniform4dv-glProgramUniform4dv = unsafePerformIO $ readIORef glrefProgramUniform4dv-{-# INLINE glProgramUniform4dv #-}-type FuntypeProgramUniform4ui =- GLuint ->- GLint ->- GLuint ->- GLuint ->- GLuint ->- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4ui :: FunPtr FuntypeProgramUniform4ui -> FuntypeProgramUniform4ui-glrefProgramUniform4ui :: IORef FuntypeProgramUniform4ui-glrefProgramUniform4ui = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4ui #-}-glProgramUniform4ui :: FuntypeProgramUniform4ui-glProgramUniform4ui = unsafePerformIO $ readIORef glrefProgramUniform4ui-{-# INLINE glProgramUniform4ui #-}-type FuntypeProgramUniform4uiv =- GLuint ->- GLint ->- GLsizei ->- Ptr (GLuint) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniform4uiv :: FunPtr FuntypeProgramUniform4uiv -> FuntypeProgramUniform4uiv-glrefProgramUniform4uiv :: IORef FuntypeProgramUniform4uiv-glrefProgramUniform4uiv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniform4uiv #-}-glProgramUniform4uiv :: FuntypeProgramUniform4uiv-glProgramUniform4uiv = unsafePerformIO $ readIORef glrefProgramUniform4uiv-{-# INLINE glProgramUniform4uiv #-}-type FuntypeProgramUniformMatrix2fv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2fv :: FunPtr FuntypeProgramUniformMatrix2fv -> FuntypeProgramUniformMatrix2fv-glrefProgramUniformMatrix2fv :: IORef FuntypeProgramUniformMatrix2fv-glrefProgramUniformMatrix2fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2fv #-}-glProgramUniformMatrix2fv :: FuntypeProgramUniformMatrix2fv-glProgramUniformMatrix2fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2fv-{-# INLINE glProgramUniformMatrix2fv #-}-type FuntypeProgramUniformMatrix3fv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3fv :: FunPtr FuntypeProgramUniformMatrix3fv -> FuntypeProgramUniformMatrix3fv-glrefProgramUniformMatrix3fv :: IORef FuntypeProgramUniformMatrix3fv-glrefProgramUniformMatrix3fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3fv #-}-glProgramUniformMatrix3fv :: FuntypeProgramUniformMatrix3fv-glProgramUniformMatrix3fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3fv-{-# INLINE glProgramUniformMatrix3fv #-}-type FuntypeProgramUniformMatrix4fv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4fv :: FunPtr FuntypeProgramUniformMatrix4fv -> FuntypeProgramUniformMatrix4fv-glrefProgramUniformMatrix4fv :: IORef FuntypeProgramUniformMatrix4fv-glrefProgramUniformMatrix4fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4fv #-}-glProgramUniformMatrix4fv :: FuntypeProgramUniformMatrix4fv-glProgramUniformMatrix4fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4fv-{-# INLINE glProgramUniformMatrix4fv #-}-type FuntypeProgramUniformMatrix2dv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2dv :: FunPtr FuntypeProgramUniformMatrix2dv -> FuntypeProgramUniformMatrix2dv-glrefProgramUniformMatrix2dv :: IORef FuntypeProgramUniformMatrix2dv-glrefProgramUniformMatrix2dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2dv #-}-glProgramUniformMatrix2dv :: FuntypeProgramUniformMatrix2dv-glProgramUniformMatrix2dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2dv-{-# INLINE glProgramUniformMatrix2dv #-}-type FuntypeProgramUniformMatrix3dv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3dv :: FunPtr FuntypeProgramUniformMatrix3dv -> FuntypeProgramUniformMatrix3dv-glrefProgramUniformMatrix3dv :: IORef FuntypeProgramUniformMatrix3dv-glrefProgramUniformMatrix3dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3dv #-}-glProgramUniformMatrix3dv :: FuntypeProgramUniformMatrix3dv-glProgramUniformMatrix3dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3dv-{-# INLINE glProgramUniformMatrix3dv #-}-type FuntypeProgramUniformMatrix4dv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4dv :: FunPtr FuntypeProgramUniformMatrix4dv -> FuntypeProgramUniformMatrix4dv-glrefProgramUniformMatrix4dv :: IORef FuntypeProgramUniformMatrix4dv-glrefProgramUniformMatrix4dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4dv #-}-glProgramUniformMatrix4dv :: FuntypeProgramUniformMatrix4dv-glProgramUniformMatrix4dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4dv-{-# INLINE glProgramUniformMatrix4dv #-}-type FuntypeProgramUniformMatrix2x3fv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2x3fv :: FunPtr FuntypeProgramUniformMatrix2x3fv -> FuntypeProgramUniformMatrix2x3fv-glrefProgramUniformMatrix2x3fv :: IORef FuntypeProgramUniformMatrix2x3fv-glrefProgramUniformMatrix2x3fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2x3fv #-}-glProgramUniformMatrix2x3fv :: FuntypeProgramUniformMatrix2x3fv-glProgramUniformMatrix2x3fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x3fv-{-# INLINE glProgramUniformMatrix2x3fv #-}-type FuntypeProgramUniformMatrix3x2fv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3x2fv :: FunPtr FuntypeProgramUniformMatrix3x2fv -> FuntypeProgramUniformMatrix3x2fv-glrefProgramUniformMatrix3x2fv :: IORef FuntypeProgramUniformMatrix3x2fv-glrefProgramUniformMatrix3x2fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3x2fv #-}-glProgramUniformMatrix3x2fv :: FuntypeProgramUniformMatrix3x2fv-glProgramUniformMatrix3x2fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x2fv-{-# INLINE glProgramUniformMatrix3x2fv #-}-type FuntypeProgramUniformMatrix2x4fv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2x4fv :: FunPtr FuntypeProgramUniformMatrix2x4fv -> FuntypeProgramUniformMatrix2x4fv-glrefProgramUniformMatrix2x4fv :: IORef FuntypeProgramUniformMatrix2x4fv-glrefProgramUniformMatrix2x4fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2x4fv #-}-glProgramUniformMatrix2x4fv :: FuntypeProgramUniformMatrix2x4fv-glProgramUniformMatrix2x4fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x4fv-{-# INLINE glProgramUniformMatrix2x4fv #-}-type FuntypeProgramUniformMatrix4x2fv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4x2fv :: FunPtr FuntypeProgramUniformMatrix4x2fv -> FuntypeProgramUniformMatrix4x2fv-glrefProgramUniformMatrix4x2fv :: IORef FuntypeProgramUniformMatrix4x2fv-glrefProgramUniformMatrix4x2fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4x2fv #-}-glProgramUniformMatrix4x2fv :: FuntypeProgramUniformMatrix4x2fv-glProgramUniformMatrix4x2fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x2fv-{-# INLINE glProgramUniformMatrix4x2fv #-}-type FuntypeProgramUniformMatrix3x4fv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3x4fv :: FunPtr FuntypeProgramUniformMatrix3x4fv -> FuntypeProgramUniformMatrix3x4fv-glrefProgramUniformMatrix3x4fv :: IORef FuntypeProgramUniformMatrix3x4fv-glrefProgramUniformMatrix3x4fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3x4fv #-}-glProgramUniformMatrix3x4fv :: FuntypeProgramUniformMatrix3x4fv-glProgramUniformMatrix3x4fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x4fv-{-# INLINE glProgramUniformMatrix3x4fv #-}-type FuntypeProgramUniformMatrix4x3fv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLfloat) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4x3fv :: FunPtr FuntypeProgramUniformMatrix4x3fv -> FuntypeProgramUniformMatrix4x3fv-glrefProgramUniformMatrix4x3fv :: IORef FuntypeProgramUniformMatrix4x3fv-glrefProgramUniformMatrix4x3fv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4x3fv #-}-glProgramUniformMatrix4x3fv :: FuntypeProgramUniformMatrix4x3fv-glProgramUniformMatrix4x3fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x3fv-{-# INLINE glProgramUniformMatrix4x3fv #-}-type FuntypeProgramUniformMatrix2x3dv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2x3dv :: FunPtr FuntypeProgramUniformMatrix2x3dv -> FuntypeProgramUniformMatrix2x3dv-glrefProgramUniformMatrix2x3dv :: IORef FuntypeProgramUniformMatrix2x3dv-glrefProgramUniformMatrix2x3dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2x3dv #-}-glProgramUniformMatrix2x3dv :: FuntypeProgramUniformMatrix2x3dv-glProgramUniformMatrix2x3dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x3dv-{-# INLINE glProgramUniformMatrix2x3dv #-}-type FuntypeProgramUniformMatrix3x2dv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3x2dv :: FunPtr FuntypeProgramUniformMatrix3x2dv -> FuntypeProgramUniformMatrix3x2dv-glrefProgramUniformMatrix3x2dv :: IORef FuntypeProgramUniformMatrix3x2dv-glrefProgramUniformMatrix3x2dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3x2dv #-}-glProgramUniformMatrix3x2dv :: FuntypeProgramUniformMatrix3x2dv-glProgramUniformMatrix3x2dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x2dv-{-# INLINE glProgramUniformMatrix3x2dv #-}-type FuntypeProgramUniformMatrix2x4dv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix2x4dv :: FunPtr FuntypeProgramUniformMatrix2x4dv -> FuntypeProgramUniformMatrix2x4dv-glrefProgramUniformMatrix2x4dv :: IORef FuntypeProgramUniformMatrix2x4dv-glrefProgramUniformMatrix2x4dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix2x4dv #-}-glProgramUniformMatrix2x4dv :: FuntypeProgramUniformMatrix2x4dv-glProgramUniformMatrix2x4dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x4dv-{-# INLINE glProgramUniformMatrix2x4dv #-}-type FuntypeProgramUniformMatrix4x2dv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4x2dv :: FunPtr FuntypeProgramUniformMatrix4x2dv -> FuntypeProgramUniformMatrix4x2dv-glrefProgramUniformMatrix4x2dv :: IORef FuntypeProgramUniformMatrix4x2dv-glrefProgramUniformMatrix4x2dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4x2dv #-}-glProgramUniformMatrix4x2dv :: FuntypeProgramUniformMatrix4x2dv-glProgramUniformMatrix4x2dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x2dv-{-# INLINE glProgramUniformMatrix4x2dv #-}-type FuntypeProgramUniformMatrix3x4dv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix3x4dv :: FunPtr FuntypeProgramUniformMatrix3x4dv -> FuntypeProgramUniformMatrix3x4dv-glrefProgramUniformMatrix3x4dv :: IORef FuntypeProgramUniformMatrix3x4dv-glrefProgramUniformMatrix3x4dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix3x4dv #-}-glProgramUniformMatrix3x4dv :: FuntypeProgramUniformMatrix3x4dv-glProgramUniformMatrix3x4dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x4dv-{-# INLINE glProgramUniformMatrix3x4dv #-}-type FuntypeProgramUniformMatrix4x3dv =- GLuint ->- GLint ->- GLsizei ->- GLboolean ->- Ptr (GLdouble) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynProgramUniformMatrix4x3dv :: FunPtr FuntypeProgramUniformMatrix4x3dv -> FuntypeProgramUniformMatrix4x3dv-glrefProgramUniformMatrix4x3dv :: IORef FuntypeProgramUniformMatrix4x3dv-glrefProgramUniformMatrix4x3dv = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefProgramUniformMatrix4x3dv #-}-glProgramUniformMatrix4x3dv :: FuntypeProgramUniformMatrix4x3dv-glProgramUniformMatrix4x3dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x3dv-{-# INLINE glProgramUniformMatrix4x3dv #-}-type FuntypeValidateProgramPipeline =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynValidateProgramPipeline :: FunPtr FuntypeValidateProgramPipeline -> FuntypeValidateProgramPipeline-glrefValidateProgramPipeline :: IORef FuntypeValidateProgramPipeline-glrefValidateProgramPipeline = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefValidateProgramPipeline #-}-glValidateProgramPipeline :: FuntypeValidateProgramPipeline-glValidateProgramPipeline = unsafePerformIO $ readIORef glrefValidateProgramPipeline-{-# INLINE glValidateProgramPipeline #-}-type FuntypeGetProgramPipelineInfoLog =- GLuint ->- GLsizei ->- Ptr (GLsizei) ->- Ptr (GLchar) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynGetProgramPipelineInfoLog :: FunPtr FuntypeGetProgramPipelineInfoLog -> FuntypeGetProgramPipelineInfoLog-glrefGetProgramPipelineInfoLog :: IORef FuntypeGetProgramPipelineInfoLog-glrefGetProgramPipelineInfoLog = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefGetProgramPipelineInfoLog #-}-glGetProgramPipelineInfoLog :: FuntypeGetProgramPipelineInfoLog-glGetProgramPipelineInfoLog = unsafePerformIO $ readIORef glrefGetProgramPipelineInfoLog-{-# INLINE glGetProgramPipelineInfoLog #-}---- GL_ATI_meminfo----- GL_NVX_gpu_memory_info----- GL_ARB_invalidate_subdata--type FuntypeInvalidateTexSubImage =- GLuint ->- GLint ->- GLint ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynInvalidateTexSubImage :: FunPtr FuntypeInvalidateTexSubImage -> FuntypeInvalidateTexSubImage-glrefInvalidateTexSubImage :: IORef FuntypeInvalidateTexSubImage-glrefInvalidateTexSubImage = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefInvalidateTexSubImage #-}-glInvalidateTexSubImage :: FuntypeInvalidateTexSubImage-glInvalidateTexSubImage = unsafePerformIO $ readIORef glrefInvalidateTexSubImage-{-# INLINE glInvalidateTexSubImage #-}-type FuntypeInvalidateTexImage =- GLuint ->- GLint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynInvalidateTexImage :: FunPtr FuntypeInvalidateTexImage -> FuntypeInvalidateTexImage-glrefInvalidateTexImage :: IORef FuntypeInvalidateTexImage-glrefInvalidateTexImage = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefInvalidateTexImage #-}-glInvalidateTexImage :: FuntypeInvalidateTexImage-glInvalidateTexImage = unsafePerformIO $ readIORef glrefInvalidateTexImage-{-# INLINE glInvalidateTexImage #-}-type FuntypeInvalidateBufferSubData =- GLuint ->- GLintptr ->- GLsizeiptr ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynInvalidateBufferSubData :: FunPtr FuntypeInvalidateBufferSubData -> FuntypeInvalidateBufferSubData-glrefInvalidateBufferSubData :: IORef FuntypeInvalidateBufferSubData-glrefInvalidateBufferSubData = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefInvalidateBufferSubData #-}-glInvalidateBufferSubData :: FuntypeInvalidateBufferSubData-glInvalidateBufferSubData = unsafePerformIO $ readIORef glrefInvalidateBufferSubData-{-# INLINE glInvalidateBufferSubData #-}-type FuntypeInvalidateBufferData =- GLuint ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynInvalidateBufferData :: FunPtr FuntypeInvalidateBufferData -> FuntypeInvalidateBufferData-glrefInvalidateBufferData :: IORef FuntypeInvalidateBufferData-glrefInvalidateBufferData = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefInvalidateBufferData #-}-glInvalidateBufferData :: FuntypeInvalidateBufferData-glInvalidateBufferData = unsafePerformIO $ readIORef glrefInvalidateBufferData-{-# INLINE glInvalidateBufferData #-}-type FuntypeInvalidateFramebuffer =- GLenum ->- GLsizei ->- Ptr (GLenum) ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynInvalidateFramebuffer :: FunPtr FuntypeInvalidateFramebuffer -> FuntypeInvalidateFramebuffer-glrefInvalidateFramebuffer :: IORef FuntypeInvalidateFramebuffer-glrefInvalidateFramebuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefInvalidateFramebuffer #-}-glInvalidateFramebuffer :: FuntypeInvalidateFramebuffer-glInvalidateFramebuffer = unsafePerformIO $ readIORef glrefInvalidateFramebuffer-{-# INLINE glInvalidateFramebuffer #-}-type FuntypeInvalidateSubFramebuffer =- GLenum ->- GLsizei ->- Ptr (GLenum) ->- GLint ->- GLint ->- GLsizei ->- GLsizei ->- IO ( () )-foreign import ccall APIENTRY unsafe "dynamic"- gldynInvalidateSubFramebuffer :: FunPtr FuntypeInvalidateSubFramebuffer -> FuntypeInvalidateSubFramebuffer-glrefInvalidateSubFramebuffer :: IORef FuntypeInvalidateSubFramebuffer-glrefInvalidateSubFramebuffer = unsafePerformIO $ newIORef $ error "No function retrieved."-{-# NOINLINE glrefInvalidateSubFramebuffer #-}-glInvalidateSubFramebuffer :: FuntypeInvalidateSubFramebuffer-glInvalidateSubFramebuffer = unsafePerformIO $ readIORef glrefInvalidateSubFramebuffer-{-# INLINE glInvalidateSubFramebuffer #-}--gl_UNSIGNED_INT_10_10_10_2_EXT :: GLenum-gl_UNSIGNED_INT_10_10_10_2_EXT = 0x8036-gl_ACTIVE_RESOURCES :: GLenum-gl_ACTIVE_RESOURCES = 0x92F5-gl_MAX_GEOMETRY_SHADER_INVOCATIONS :: GLenum-gl_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A-gl_RESTART_PATH_NV :: GLenum-gl_RESTART_PATH_NV = 0xF0-gl_MAX_DEEP_3D_TEXTURE_DEPTH_NV :: GLenum-gl_MAX_DEEP_3D_TEXTURE_DEPTH_NV = 0x90D1-gl_PACK_SKIP_IMAGES :: GLenum-gl_PACK_SKIP_IMAGES = 0x806B-gl_IMAGE_CLASS_2_X_16 :: GLenum-gl_IMAGE_CLASS_2_X_16 = 0x82BD-gl_FRAMEBUFFER_COMPLETE :: GLenum-gl_FRAMEBUFFER_COMPLETE = 0x8CD5-gl_HSL_LUMINOSITY_NV :: GLenum-gl_HSL_LUMINOSITY_NV = 0x92B0-gl_IMAGE_BINDING_LAYERED_EXT :: GLenum-gl_IMAGE_BINDING_LAYERED_EXT = 0x8F3C-gl_ZOOM_Y :: GLenum-gl_ZOOM_Y = 0x0D17-gl_TEXTURE_LUMINANCE_TYPE_ARB :: GLenum-gl_TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14-gl_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB :: GLenum-gl_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B-gl_TEXTURE_HEIGHT :: GLenum-gl_TEXTURE_HEIGHT = 0x1001-gl_OUTPUT_TEXTURE_COORD0_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD0_EXT = 0x879D-gl_FLOAT_CLEAR_COLOR_VALUE_NV :: GLenum-gl_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D-gl_LIGHT_MODEL_AMBIENT :: GLenum-gl_LIGHT_MODEL_AMBIENT = 0x0B53-gl_INT16_VEC3_NV :: GLenum-gl_INT16_VEC3_NV = 0x8FE6-gl_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV :: GLenum-gl_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = 0x8C74-gl_MATRIX6_NV :: GLenum-gl_MATRIX6_NV = 0x8636-gl_COMPUTE_PROGRAM_NV :: GLenum-gl_COMPUTE_PROGRAM_NV = 0x90FB-gl_SCALED_RESOLVE_FASTEST_EXT :: GLenum-gl_SCALED_RESOLVE_FASTEST_EXT = 0x90BA-gl_REPLACEMENT_CODE_ARRAY_SUN :: GLenum-gl_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0-gl_TEXTURE_DT_SIZE_NV :: GLenum-gl_TEXTURE_DT_SIZE_NV = 0x871E-gl_NUM_SPARSE_LEVELS_ARB :: GLenum-gl_NUM_SPARSE_LEVELS_ARB = 0x91AA-gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR :: GLenum-gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243-gl_NO_ERROR :: GLenum-gl_NO_ERROR = 0-gl_INTERNALFORMAT_ALPHA_TYPE :: GLenum-gl_INTERNALFORMAT_ALPHA_TYPE = 0x827B-gl_FONT_HEIGHT_BIT_NV :: GLenum-gl_FONT_HEIGHT_BIT_NV = 0x00800000-gl_TANGENT_ARRAY_POINTER_EXT :: GLenum-gl_TANGENT_ARRAY_POINTER_EXT = 0x8442-gl_LOCAL_CONSTANT_VALUE_EXT :: GLenum-gl_LOCAL_CONSTANT_VALUE_EXT = 0x87EC-gl_READ_WRITE :: GLenum-gl_READ_WRITE = 0x88BA-gl_TEXTURE_2D :: GLenum-gl_TEXTURE_2D = 0x0DE1-gl_UNSIGNED_INT_2_10_10_10_REV_EXT :: GLenum-gl_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368-gl_TEXTURE_WRAP_R :: GLenum-gl_TEXTURE_WRAP_R = 0x8072-gl_FLOAT_MAT4x2 :: GLenum-gl_FLOAT_MAT4x2 = 0x8B69-gl_MAX_COMPUTE_WORK_GROUP_SIZE :: GLenum-gl_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF-gl_POLYGON_OFFSET_CLAMP_EXT :: GLenum-gl_POLYGON_OFFSET_CLAMP_EXT = 0x8E1B-gl_SYNC_FLUSH_COMMANDS_BIT :: GLenum-gl_SYNC_FLUSH_COMMANDS_BIT = 0x00000001-gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB :: GLenum-gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809-gl_INT_IMAGE_BUFFER :: GLenum-gl_INT_IMAGE_BUFFER = 0x905C-gl_VERTEX_ATTRIB_ARRAY_TYPE :: GLenum-gl_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625-gl_ONE :: GLenum-gl_ONE = 1-gl_COLOR_CLEAR_UNCLAMPED_VALUE_ATI :: GLenum-gl_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835-gl_TRANSLATE_X_NV :: GLenum-gl_TRANSLATE_X_NV = 0x908E-gl_HI_SCALE_NV :: GLenum-gl_HI_SCALE_NV = 0x870E-gl_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT :: GLenum-gl_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308-gl_HILO_NV :: GLenum-gl_HILO_NV = 0x86F4-gl_TRIANGLES :: GLenum-gl_TRIANGLES = 0x0004-gl_LINEARLIGHT_NV :: GLenum-gl_LINEARLIGHT_NV = 0x92A7-gl_MAX_3D_TEXTURE_SIZE_OES :: GLenum-gl_MAX_3D_TEXTURE_SIZE_OES = 0x8073-gl_ANY_SAMPLES_PASSED_CONSERVATIVE :: GLenum-gl_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A-gl_UNIFORM_BLOCK_BINDING :: GLenum-gl_UNIFORM_BLOCK_BINDING = 0x8A3F-gl_MAX_TESS_CONTROL_INPUT_COMPONENTS :: GLenum-gl_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C-gl_TEXTURE_ALPHA_TYPE_ARB :: GLenum-gl_TEXTURE_ALPHA_TYPE_ARB = 0x8C13-gl_MAX_CONVOLUTION_HEIGHT :: GLenum-gl_MAX_CONVOLUTION_HEIGHT = 0x801B-gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9-gl_DEPTH_BUFFER_BIT5_QCOM :: GLenum-gl_DEPTH_BUFFER_BIT5_QCOM = 0x00002000-gl_PROGRAM_TEX_INDIRECTIONS_ARB :: GLenum-gl_PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807-gl_BLUE :: GLenum-gl_BLUE = 0x1905-gl_RGBA_S3TC :: GLenum-gl_RGBA_S3TC = 0x83A2-gl_DECR :: GLenum-gl_DECR = 0x1E03-gl_MAJOR_VERSION :: GLenum-gl_MAJOR_VERSION = 0x821B-gl_ARRAY_STRIDE :: GLenum-gl_ARRAY_STRIDE = 0x92FE-gl_CONSTANT_COLOR1_NV :: GLenum-gl_CONSTANT_COLOR1_NV = 0x852B-gl_SAMPLES_EXT :: GLenum-gl_SAMPLES_EXT = 0x80A9-gl_MAX_SAMPLES_APPLE :: GLenum-gl_MAX_SAMPLES_APPLE = 0x8D57-gl_COLOR_ARRAY_SIZE :: GLenum-gl_COLOR_ARRAY_SIZE = 0x8081-gl_SAMPLE_ALPHA_TO_MASK_SGIS :: GLenum-gl_SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E-gl_DUP_LAST_CUBIC_CURVE_TO_NV :: GLenum-gl_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4-gl_TEXTURE10 :: GLenum-gl_TEXTURE10 = 0x84CA-gl_R1UI_T2F_C4F_N3F_V3F_SUN :: GLenum-gl_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB-gl_MAX_VARYING_COMPONENTS :: GLenum-gl_MAX_VARYING_COMPONENTS = 0x8B4B-gl_DRAW_BUFFER7_EXT :: GLenum-gl_DRAW_BUFFER7_EXT = 0x882C-gl_MAX_COMBINED_ATOMIC_COUNTERS :: GLenum-gl_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7-gl_PROGRAM_ERROR_STRING_ARB :: GLenum-gl_PROGRAM_ERROR_STRING_ARB = 0x8874-gl_TRACE_ALL_BITS_MESA :: GLenum-gl_TRACE_ALL_BITS_MESA = 0xFFFF-gl_DEPTH_CLAMP_NV :: GLenum-gl_DEPTH_CLAMP_NV = 0x864F-gl_REDUCE :: GLenum-gl_REDUCE = 0x8016-gl_UNSIGNED_SHORT_4_4_4_4 :: GLenum-gl_UNSIGNED_SHORT_4_4_4_4 = 0x8033-gl_SKIP_COMPONENTS1_NV :: GLenum-gl_SKIP_COMPONENTS1_NV = -6-gl_PIXEL_TILE_CACHE_INCREMENT_SGIX :: GLenum-gl_PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F-gl_COLOR_ARRAY :: GLenum-gl_COLOR_ARRAY = 0x8076-gl_STATIC_VERTEX_ARRAY_IBM :: GLenum-gl_STATIC_VERTEX_ARRAY_IBM = 103061-gl_INDEX_BIT_PGI :: GLenum-gl_INDEX_BIT_PGI = 0x00080000-gl_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519-gl_ETC1_SRGB8_NV :: GLenum-gl_ETC1_SRGB8_NV = 0x88EE-gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS :: GLenum-gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81-gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT :: GLenum-gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = 0x00000001-gl_LIGHT_MODEL_COLOR_CONTROL_EXT :: GLenum-gl_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8-gl_PATCH_DEFAULT_OUTER_LEVEL_EXT :: GLenum-gl_PATCH_DEFAULT_OUTER_LEVEL_EXT = 0x8E74-gl_SAMPLER_CUBE_ARB :: GLenum-gl_SAMPLER_CUBE_ARB = 0x8B60-gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT :: GLenum-gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1-gl_STORAGE_PRIVATE_APPLE :: GLenum-gl_STORAGE_PRIVATE_APPLE = 0x85BD-gl_MAP1_TEXTURE_COORD_2 :: GLenum-gl_MAP1_TEXTURE_COORD_2 = 0x0D94-gl_REPLACEMENT_CODE_ARRAY_STRIDE_SUN :: GLenum-gl_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2-gl_VERTEX_ATTRIB_ARRAY8_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY8_NV = 0x8658-gl_LUMINANCE16F_ARB :: GLenum-gl_LUMINANCE16F_ARB = 0x881E-gl_DEPTH_COMPONENT32F_NV :: GLenum-gl_DEPTH_COMPONENT32F_NV = 0x8DAB-gl_MAX_VERTEX_BINDABLE_UNIFORMS_EXT :: GLenum-gl_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2-gl_MATRIX28_ARB :: GLenum-gl_MATRIX28_ARB = 0x88DC-gl_SYNC_FLUSH_COMMANDS_BIT_APPLE :: GLenum-gl_SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x00000001-gl_READ_FRAMEBUFFER_BINDING_ANGLE :: GLenum-gl_READ_FRAMEBUFFER_BINDING_ANGLE = 0x8CAA-gl_FOG_COORDINATE_ARRAY_TYPE :: GLenum-gl_FOG_COORDINATE_ARRAY_TYPE = 0x8454-gl_RGBA32UI_EXT :: GLenum-gl_RGBA32UI_EXT = 0x8D70-gl_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG :: GLenum-gl_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02-gl_2_BYTES_NV :: GLenum-gl_2_BYTES_NV = 0x1407-gl_TEXTURE_HI_SIZE_NV :: GLenum-gl_TEXTURE_HI_SIZE_NV = 0x871B-gl_PACK_SWAP_BYTES :: GLenum-gl_PACK_SWAP_BYTES = 0x0D00-gl_EVAL_FRACTIONAL_TESSELLATION_NV :: GLenum-gl_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5-gl_RG16 :: GLenum-gl_RG16 = 0x822C-gl_SWIZZLE_STR_ATI :: GLenum-gl_SWIZZLE_STR_ATI = 0x8976-gl_CON_6_ATI :: GLenum-gl_CON_6_ATI = 0x8947-gl_PATH_FOG_GEN_MODE_NV :: GLenum-gl_PATH_FOG_GEN_MODE_NV = 0x90AC-gl_SRGB8_ALPHA8_EXT :: GLenum-gl_SRGB8_ALPHA8_EXT = 0x8C43-gl_COMPRESSED_SLUMINANCE_ALPHA_EXT :: GLenum-gl_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B-gl_TEXTURE_COMPARE_FUNC_EXT :: GLenum-gl_TEXTURE_COMPARE_FUNC_EXT = 0x884D-gl_UNIFORM_MATRIX_STRIDE :: GLenum-gl_UNIFORM_MATRIX_STRIDE = 0x8A3D-gl_INVALID_OPERATION :: GLenum-gl_INVALID_OPERATION = 0x0502-gl_DRAW_BUFFER4_ATI :: GLenum-gl_DRAW_BUFFER4_ATI = 0x8829-gl_BYTE :: GLenum-gl_BYTE = 0x1400-gl_SECONDARY_COLOR_ARRAY_POINTER :: GLenum-gl_SECONDARY_COLOR_ARRAY_POINTER = 0x845D-gl_TEXTURE_CUBE_MAP_POSITIVE_X :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515-gl_TEXTURE_2D_ARRAY :: GLenum-gl_TEXTURE_2D_ARRAY = 0x8C1A-gl_OFFSET_TEXTURE_MATRIX_NV :: GLenum-gl_OFFSET_TEXTURE_MATRIX_NV = 0x86E1-gl_FLOAT_MAT2x4 :: GLenum-gl_FLOAT_MAT2x4 = 0x8B66-gl_REG_31_ATI :: GLenum-gl_REG_31_ATI = 0x8940-gl_DEBUG_TYPE_PORTABILITY :: GLenum-gl_DEBUG_TYPE_PORTABILITY = 0x824F-gl_SAMPLER_2D_ARB :: GLenum-gl_SAMPLER_2D_ARB = 0x8B5E-gl_DRAW_BUFFER11 :: GLenum-gl_DRAW_BUFFER11 = 0x8830-gl_MAX_COMPUTE_WORK_GROUP_INVOCATIONS :: GLenum-gl_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB-gl_TEXTURE5_ARB :: GLenum-gl_TEXTURE5_ARB = 0x84C5-gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT :: GLenum-gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = 0x90D7-gl_COLOR_TABLE_SCALE :: GLenum-gl_COLOR_TABLE_SCALE = 0x80D6-gl_POINT_FADE_THRESHOLD_SIZE_SGIS :: GLenum-gl_POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128-gl_MAX_SPARSE_3D_TEXTURE_SIZE_ARB :: GLenum-gl_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = 0x9199-gl_ACCUM_CLEAR_VALUE :: GLenum-gl_ACCUM_CLEAR_VALUE = 0x0B80-gl_OPERAND0_ALPHA_EXT :: GLenum-gl_OPERAND0_ALPHA_EXT = 0x8598-gl_QUERY_NO_WAIT :: GLenum-gl_QUERY_NO_WAIT = 0x8E14-gl_PRIMITIVE_RESTART :: GLenum-gl_PRIMITIVE_RESTART = 0x8F9D-gl_STENCIL_ATTACHMENT_OES :: GLenum-gl_STENCIL_ATTACHMENT_OES = 0x8D20-gl_BUFFER_USAGE :: GLenum-gl_BUFFER_USAGE = 0x8765-gl_COLOR_TABLE_BLUE_SIZE :: GLenum-gl_COLOR_TABLE_BLUE_SIZE = 0x80DC-gl_VERTEX_ARRAY_SIZE_EXT :: GLenum-gl_VERTEX_ARRAY_SIZE_EXT = 0x807A-gl_ALPHA8 :: GLenum-gl_ALPHA8 = 0x803C-gl_PROXY_TEXTURE_2D :: GLenum-gl_PROXY_TEXTURE_2D = 0x8064-gl_HALF_BIT_ATI :: GLenum-gl_HALF_BIT_ATI = 0x00000008-gl_TRANSPOSE_MODELVIEW_MATRIX :: GLenum-gl_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3-gl_DRAW_BUFFER3 :: GLenum-gl_DRAW_BUFFER3 = 0x8828-gl_4PASS_2_SGIS :: GLenum-gl_4PASS_2_SGIS = 0x80A6-gl_MAX_GEOMETRY_OUTPUT_COMPONENTS :: GLenum-gl_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124-gl_SAMPLER_2D_ARRAY_SHADOW_EXT :: GLenum-gl_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4-gl_TEXTURE_FORMAT_QCOM :: GLenum-gl_TEXTURE_FORMAT_QCOM = 0x8BD6-gl_RGB16_SNORM :: GLenum-gl_RGB16_SNORM = 0x8F9A-gl_DRAW_BUFFER8_NV :: GLenum-gl_DRAW_BUFFER8_NV = 0x882D-gl_AUX_BUFFERS :: GLenum-gl_AUX_BUFFERS = 0x0C00-gl_CONVOLUTION_HINT_SGIX :: GLenum-gl_CONVOLUTION_HINT_SGIX = 0x8316-gl_FOG_COLOR :: GLenum-gl_FOG_COLOR = 0x0B66-gl_COLOR_TABLE_RED_SIZE_SGI :: GLenum-gl_COLOR_TABLE_RED_SIZE_SGI = 0x80DA-gl_FUNC_SUBTRACT_OES :: GLenum-gl_FUNC_SUBTRACT_OES = 0x800A-gl_LUMINANCE_ALPHA16F_ARB :: GLenum-gl_LUMINANCE_ALPHA16F_ARB = 0x881F-gl_MODELVIEW10_ARB :: GLenum-gl_MODELVIEW10_ARB = 0x872A-gl_LOGIC_OP :: GLenum-gl_LOGIC_OP = 0x0BF1-gl_PROGRAM_NATIVE_INSTRUCTIONS_ARB :: GLenum-gl_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2-gl_SOURCE0_ALPHA_EXT :: GLenum-gl_SOURCE0_ALPHA_EXT = 0x8588-gl_INDEX_SHIFT :: GLenum-gl_INDEX_SHIFT = 0x0D12-gl_PIXEL_FRAGMENT_RGB_SOURCE_SGIS :: GLenum-gl_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354-gl_RG32F_EXT :: GLenum-gl_RG32F_EXT = 0x8230-gl_GEOMETRY_LINKED_VERTICES_OUT_EXT :: GLenum-gl_GEOMETRY_LINKED_VERTICES_OUT_EXT = 0x8916-gl_STACK_UNDERFLOW_KHR :: GLenum-gl_STACK_UNDERFLOW_KHR = 0x0504-gl_TESS_GEN_POINT_MODE_EXT :: GLenum-gl_TESS_GEN_POINT_MODE_EXT = 0x8E79-gl_BUFFER_ACCESS_ARB :: GLenum-gl_BUFFER_ACCESS_ARB = 0x88BB-gl_DOT_PRODUCT_NV :: GLenum-gl_DOT_PRODUCT_NV = 0x86EC-gl_INVERTED_SCREEN_W_REND :: GLenum-gl_INVERTED_SCREEN_W_REND = 0x8491-gl_REG_11_ATI :: GLenum-gl_REG_11_ATI = 0x892C-gl_MAX_FRAMEZOOM_FACTOR_SGIX :: GLenum-gl_MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D-gl_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD :: GLenum-gl_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD = 0x00000008-gl_MATRIX20_ARB :: GLenum-gl_MATRIX20_ARB = 0x88D4-gl_EVAL_VERTEX_ATTRIB1_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB1_NV = 0x86C7-gl_COLOR_ATTACHMENT10_NV :: GLenum-gl_COLOR_ATTACHMENT10_NV = 0x8CEA-gl_OUTPUT_TEXTURE_COORD28_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9-gl_MAX_TEXTURE_COORDS_ARB :: GLenum-gl_MAX_TEXTURE_COORDS_ARB = 0x8871-gl_COLOR_ARRAY_PARALLEL_POINTERS_INTEL :: GLenum-gl_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7-gl_MAX_COMBINED_SHADER_OUTPUT_RESOURCES :: GLenum-gl_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39-gl_RENDERBUFFER_BLUE_SIZE :: GLenum-gl_RENDERBUFFER_BLUE_SIZE = 0x8D52-gl_MULTISAMPLE_BIT :: GLenum-gl_MULTISAMPLE_BIT = 0x20000000-gl_CURRENT_PROGRAM :: GLenum-gl_CURRENT_PROGRAM = 0x8B8D-gl_AUX_DEPTH_STENCIL_APPLE :: GLenum-gl_AUX_DEPTH_STENCIL_APPLE = 0x8A14-gl_LUMINANCE8_ALPHA8_EXT :: GLenum-gl_LUMINANCE8_ALPHA8_EXT = 0x8045-gl_VIDEO_CAPTURE_SURFACE_ORIGIN_NV :: GLenum-gl_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C-gl_INTERLACE_OML :: GLenum-gl_INTERLACE_OML = 0x8980-gl_REG_27_ATI :: GLenum-gl_REG_27_ATI = 0x893C-gl_UNSIGNED_INT_24_8_OES :: GLenum-gl_UNSIGNED_INT_24_8_OES = 0x84FA-gl_COMBINER_AB_OUTPUT_NV :: GLenum-gl_COMBINER_AB_OUTPUT_NV = 0x854A-gl_CURRENT_RASTER_INDEX :: GLenum-gl_CURRENT_RASTER_INDEX = 0x0B05-gl_SYNC_FENCE_APPLE :: GLenum-gl_SYNC_FENCE_APPLE = 0x9116-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3-gl_MAX_TEXTURE_SIZE :: GLenum-gl_MAX_TEXTURE_SIZE = 0x0D33-gl_TEXTURE24 :: GLenum-gl_TEXTURE24 = 0x84D8-gl_STENCIL_BACK_FUNC :: GLenum-gl_STENCIL_BACK_FUNC = 0x8800-gl_LUMINANCE12 :: GLenum-gl_LUMINANCE12 = 0x8041-gl_PARAMETER_BUFFER_ARB :: GLenum-gl_PARAMETER_BUFFER_ARB = 0x80EE-gl_AUX2 :: GLenum-gl_AUX2 = 0x040B-gl_SLICE_ACCUM_SUN :: GLenum-gl_SLICE_ACCUM_SUN = 0x85CC-gl_COLOR_TABLE_ALPHA_SIZE :: GLenum-gl_COLOR_TABLE_ALPHA_SIZE = 0x80DD-gl_TEXTURE_CUBE_MAP_POSITIVE_X_EXT :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515-gl_DRAW_FRAMEBUFFER_BINDING_ANGLE :: GLenum-gl_DRAW_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER :: GLenum-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9-gl_SUBTRACT :: GLenum-gl_SUBTRACT = 0x84E7-gl_MAX_PROGRAM_IF_DEPTH_NV :: GLenum-gl_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6-gl_T2F_C4F_N3F_V3F :: GLenum-gl_T2F_C4F_N3F_V3F = 0x2A2C-gl_ACTIVE_SUBROUTINE_UNIFORMS :: GLenum-gl_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6-gl_EMBOSS_LIGHT_NV :: GLenum-gl_EMBOSS_LIGHT_NV = 0x855D-gl_POINT_SIZE_RANGE :: GLenum-gl_POINT_SIZE_RANGE = 0x0B12-gl_GEOMETRY_LINKED_OUTPUT_TYPE_EXT :: GLenum-gl_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = 0x8918-gl_CLAMP_TO_BORDER :: GLenum-gl_CLAMP_TO_BORDER = 0x812D-gl_TEXTURE_BUFFER_OFFSET_EXT :: GLenum-gl_TEXTURE_BUFFER_OFFSET_EXT = 0x919D-gl_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV :: GLenum-gl_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV = 0x90FC-gl_COMPRESSED_INTENSITY :: GLenum-gl_COMPRESSED_INTENSITY = 0x84EC-gl_MAX_PROGRAM_OUTPUT_VERTICES_NV :: GLenum-gl_MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = 0x93E6-gl_MAX_PROGRAM_ATTRIBS_ARB :: GLenum-gl_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD-gl_POST_COLOR_MATRIX_GREEN_SCALE_SGI :: GLenum-gl_POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5-gl_TEXTURE_3D_BINDING_EXT :: GLenum-gl_TEXTURE_3D_BINDING_EXT = 0x806A-gl_SHADER_STORAGE_BUFFER_START :: GLenum-gl_SHADER_STORAGE_BUFFER_START = 0x90D4-gl_MAP2_INDEX :: GLenum-gl_MAP2_INDEX = 0x0DB1-gl_CONSTANT_COLOR_EXT :: GLenum-gl_CONSTANT_COLOR_EXT = 0x8001-gl_RG32UI :: GLenum-gl_RG32UI = 0x823C-gl_BGRA :: GLenum-gl_BGRA = 0x80E1-gl_FRAGMENT_DEPTH_EXT :: GLenum-gl_FRAGMENT_DEPTH_EXT = 0x8452-gl_GENERATE_MIPMAP_HINT_SGIS :: GLenum-gl_GENERATE_MIPMAP_HINT_SGIS = 0x8192-gl_DIFFERENCE_NV :: GLenum-gl_DIFFERENCE_NV = 0x929E-gl_UNSIGNED_SHORT_1_15_REV_MESA :: GLenum-gl_UNSIGNED_SHORT_1_15_REV_MESA = 0x8754-gl_PROGRAM_BINARY_RETRIEVABLE_HINT :: GLenum-gl_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257-gl_RGBA32I :: GLenum-gl_RGBA32I = 0x8D82-gl_UNSIGNED_INT_8_8_8_8 :: GLenum-gl_UNSIGNED_INT_8_8_8_8 = 0x8035-gl_DOMAIN :: GLenum-gl_DOMAIN = 0x0A02-gl_COLOR_MATRIX :: GLenum-gl_COLOR_MATRIX = 0x80B1-gl_PROGRAM_NATIVE_ATTRIBS_ARB :: GLenum-gl_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE-gl_OP_ROUND_EXT :: GLenum-gl_OP_ROUND_EXT = 0x8790-gl_VIEW_CLASS_96_BITS :: GLenum-gl_VIEW_CLASS_96_BITS = 0x82C5-gl_TEXTURE_WRAP_R_OES :: GLenum-gl_TEXTURE_WRAP_R_OES = 0x8072-gl_VERTEX_ARRAY_TYPE :: GLenum-gl_VERTEX_ARRAY_TYPE = 0x807B-gl_VIDEO_BUFFER_INTERNAL_FORMAT_NV :: GLenum-gl_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D-gl_PIXEL_MAP_R_TO_R_SIZE :: GLenum-gl_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6-gl_UNSIGNED_NORMALIZED_ARB :: GLenum-gl_UNSIGNED_NORMALIZED_ARB = 0x8C17-gl_UNSIGNED_INT8_VEC3_NV :: GLenum-gl_UNSIGNED_INT8_VEC3_NV = 0x8FEE-gl_COMPRESSED_RGBA8_ETC2_EAC_OES :: GLenum-gl_COMPRESSED_RGBA8_ETC2_EAC_OES = 0x9278-gl_HI_BIAS_NV :: GLenum-gl_HI_BIAS_NV = 0x8714-gl_SECONDARY_COLOR_ARRAY_EXT :: GLenum-gl_SECONDARY_COLOR_ARRAY_EXT = 0x845E-gl_BUFFER_MAP_OFFSET :: GLenum-gl_BUFFER_MAP_OFFSET = 0x9121-gl_LUMINANCE4_ALPHA4_OES :: GLenum-gl_LUMINANCE4_ALPHA4_OES = 0x8043-gl_FORMAT_SUBSAMPLE_244_244_OML :: GLenum-gl_FORMAT_SUBSAMPLE_244_244_OML = 0x8983-gl_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA :: GLenum-gl_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA = 0x8BB2-gl_PLUS_CLAMPED_ALPHA_NV :: GLenum-gl_PLUS_CLAMPED_ALPHA_NV = 0x92B2-gl_COLOR_ATTACHMENT0_NV :: GLenum-gl_COLOR_ATTACHMENT0_NV = 0x8CE0-gl_COMPRESSED_RGB_S3TC_DXT1_EXT :: GLenum-gl_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0-gl_GEOMETRY_OUTPUT_TYPE :: GLenum-gl_GEOMETRY_OUTPUT_TYPE = 0x8918-gl_INTENSITY8_EXT :: GLenum-gl_INTENSITY8_EXT = 0x804B-gl_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517-gl_COMPRESSED_RED_GREEN_RGTC2_EXT :: GLenum-gl_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD-gl_DEBUG_SOURCE_API_KHR :: GLenum-gl_DEBUG_SOURCE_API_KHR = 0x8246-gl_BLEND_PREMULTIPLIED_SRC_NV :: GLenum-gl_BLEND_PREMULTIPLIED_SRC_NV = 0x9280-gl_CLIENT_STORAGE_BIT :: GLenum-gl_CLIENT_STORAGE_BIT = 0x0200-gl_INTENSITY12_EXT :: GLenum-gl_INTENSITY12_EXT = 0x804C-gl_MATRIX_INDEX_ARRAY_STRIDE_OES :: GLenum-gl_MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848-gl_CURRENT_RASTER_SECONDARY_COLOR :: GLenum-gl_CURRENT_RASTER_SECONDARY_COLOR = 0x845F-gl_REPLACE :: GLenum-gl_REPLACE = 0x1E01-gl_LINEAR :: GLenum-gl_LINEAR = 0x2601-gl_COMBINER_INPUT_NV :: GLenum-gl_COMBINER_INPUT_NV = 0x8542-gl_TRANSFORM_FEEDBACK_VARYINGS :: GLenum-gl_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = 0x93E2-gl_IMAGE_BINDING_ACCESS :: GLenum-gl_IMAGE_BINDING_ACCESS = 0x8F3E-gl_NUM_LOOPBACK_COMPONENTS_ATI :: GLenum-gl_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974-gl_ARRAY_ELEMENT_LOCK_COUNT_EXT :: GLenum-gl_ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9-gl_REPLACEMENT_CODE_ARRAY_POINTER_SUN :: GLenum-gl_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3-gl_TEXTURE_4DSIZE_SGIS :: GLenum-gl_TEXTURE_4DSIZE_SGIS = 0x8136-gl_COUNTER_RANGE_AMD :: GLenum-gl_COUNTER_RANGE_AMD = 0x8BC1-gl_RGB8_OES :: GLenum-gl_RGB8_OES = 0x8051-gl_ALPHA16F_EXT :: GLenum-gl_ALPHA16F_EXT = 0x881C-gl_C4F_N3F_V3F :: GLenum-gl_C4F_N3F_V3F = 0x2A26-gl_NEAREST_MIPMAP_LINEAR :: GLenum-gl_NEAREST_MIPMAP_LINEAR = 0x2702-gl_DEBUG_SEVERITY_LOW_KHR :: GLenum-gl_DEBUG_SEVERITY_LOW_KHR = 0x9148-gl_DISCARD_ATI :: GLenum-gl_DISCARD_ATI = 0x8763-gl_LOCAL_CONSTANT_DATATYPE_EXT :: GLenum-gl_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED-gl_MAX_GEOMETRY_INPUT_COMPONENTS_EXT :: GLenum-gl_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = 0x9123-gl_LOWER_LEFT :: GLenum-gl_LOWER_LEFT = 0x8CA1-gl_RENDERBUFFER_HEIGHT_OES :: GLenum-gl_RENDERBUFFER_HEIGHT_OES = 0x8D43-gl_SPRITE_MODE_SGIX :: GLenum-gl_SPRITE_MODE_SGIX = 0x8149-gl_REPLACEMENT_CODE_ARRAY_TYPE_SUN :: GLenum-gl_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1-gl_UNSIGNED_INT8_VEC2_NV :: GLenum-gl_UNSIGNED_INT8_VEC2_NV = 0x8FED-gl_NONE_OES :: GLenum-gl_NONE_OES = 0-gl_POINT_SIZE_MIN_ARB :: GLenum-gl_POINT_SIZE_MIN_ARB = 0x8126-gl_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV :: GLenum-gl_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = 0x8E5D-gl_RENDERBUFFER_DEPTH_SIZE_EXT :: GLenum-gl_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54-gl_BUFFER_MAP_LENGTH :: GLenum-gl_BUFFER_MAP_LENGTH = 0x9120-gl_WRITE_ONLY :: GLenum-gl_WRITE_ONLY = 0x88B9-gl_NEAREST_CLIPMAP_NEAREST_SGIX :: GLenum-gl_NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D-gl_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV :: GLenum-gl_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10-gl_ALREADY_SIGNALED_APPLE :: GLenum-gl_ALREADY_SIGNALED_APPLE = 0x911A-gl_REPLICATE_BORDER :: GLenum-gl_REPLICATE_BORDER = 0x8153-gl_SUBPIXEL_BITS :: GLenum-gl_SUBPIXEL_BITS = 0x0D50-gl_ALPHA_MIN_SGIX :: GLenum-gl_ALPHA_MIN_SGIX = 0x8320-gl_BLUE_BIT_ATI :: GLenum-gl_BLUE_BIT_ATI = 0x00000004-gl_UNSIGNED_INT_IMAGE_2D_EXT :: GLenum-gl_UNSIGNED_INT_IMAGE_2D_EXT = 0x9063-gl_TRANSFORM_FEEDBACK_VARYINGS_EXT :: GLenum-gl_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83-gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT :: GLenum-gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73-gl_PIXEL_COUNTER_BITS_NV :: GLenum-gl_PIXEL_COUNTER_BITS_NV = 0x8864-gl_422_REV_AVERAGE_EXT :: GLenum-gl_422_REV_AVERAGE_EXT = 0x80CF-gl_TEXTURE_RESIDENT_EXT :: GLenum-gl_TEXTURE_RESIDENT_EXT = 0x8067-gl_STENCIL_WRITEMASK :: GLenum-gl_STENCIL_WRITEMASK = 0x0B98-gl_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES :: GLenum-gl_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43-gl_FLOAT_VEC3_ARB :: GLenum-gl_FLOAT_VEC3_ARB = 0x8B51-gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM :: GLenum-gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D-gl_DYNAMIC_STORAGE_BIT :: GLenum-gl_DYNAMIC_STORAGE_BIT = 0x0100-gl_DRAW_FRAMEBUFFER_BINDING_APPLE :: GLenum-gl_DRAW_FRAMEBUFFER_BINDING_APPLE = 0x8CA6-gl_CLIP_PLANE4_IMG :: GLenum-gl_CLIP_PLANE4_IMG = 0x3004-gl_CON_26_ATI :: GLenum-gl_CON_26_ATI = 0x895B-gl_COMPRESSED_SIGNED_R11_EAC_OES :: GLenum-gl_COMPRESSED_SIGNED_R11_EAC_OES = 0x9271-gl_LINES_ADJACENCY_EXT :: GLenum-gl_LINES_ADJACENCY_EXT = 0x000A-gl_AUTO_GENERATE_MIPMAP :: GLenum-gl_AUTO_GENERATE_MIPMAP = 0x8295-gl_OP_EXP_BASE_2_EXT :: GLenum-gl_OP_EXP_BASE_2_EXT = 0x8791-gl_ATTRIB_STACK_DEPTH :: GLenum-gl_ATTRIB_STACK_DEPTH = 0x0BB0-gl_ALPHA32F_EXT :: GLenum-gl_ALPHA32F_EXT = 0x8816-gl_KEEP :: GLenum-gl_KEEP = 0x1E00-gl_TEXTURE_FILTER4_SIZE_SGIS :: GLenum-gl_TEXTURE_FILTER4_SIZE_SGIS = 0x8147-gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT :: GLenum-gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A-gl_INT_VEC3 :: GLenum-gl_INT_VEC3 = 0x8B54-gl_MATRIX_MODE :: GLenum-gl_MATRIX_MODE = 0x0BA0-gl_UNSIGNED_NORMALIZED :: GLenum-gl_UNSIGNED_NORMALIZED = 0x8C17-gl_DEBUG_PRINT_MESA :: GLenum-gl_DEBUG_PRINT_MESA = 0x875A-gl_DST_OUT_NV :: GLenum-gl_DST_OUT_NV = 0x928D-gl_CLEAR_BUFFER :: GLenum-gl_CLEAR_BUFFER = 0x82B4-gl_COMBINER_SCALE_NV :: GLenum-gl_COMBINER_SCALE_NV = 0x8548-gl_WRITE_ONLY_OES :: GLenum-gl_WRITE_ONLY_OES = 0x88B9-gl_422_AVERAGE_EXT :: GLenum-gl_422_AVERAGE_EXT = 0x80CE-gl_COLOR_INDEX12_EXT :: GLenum-gl_COLOR_INDEX12_EXT = 0x80E6-gl_COLOR_BUFFER_BIT0_QCOM :: GLenum-gl_COLOR_BUFFER_BIT0_QCOM = 0x00000001-gl_CAVEAT_SUPPORT :: GLenum-gl_CAVEAT_SUPPORT = 0x82B8-gl_BLUE_INTEGER :: GLenum-gl_BLUE_INTEGER = 0x8D96-gl_IUI_N3F_V2F_EXT :: GLenum-gl_IUI_N3F_V2F_EXT = 0x81AF-gl_VERTEX_DATA_HINT_PGI :: GLenum-gl_VERTEX_DATA_HINT_PGI = 0x1A22A-gl_REG_13_ATI :: GLenum-gl_REG_13_ATI = 0x892E-gl_NEGATIVE_ONE_EXT :: GLenum-gl_NEGATIVE_ONE_EXT = 0x87DF-gl_CON_16_ATI :: GLenum-gl_CON_16_ATI = 0x8951-gl_TEXTURE_EXTERNAL_OES :: GLenum-gl_TEXTURE_EXTERNAL_OES = 0x8D65-gl_SHADER_TYPE :: GLenum-gl_SHADER_TYPE = 0x8B4F-gl_OVERLAY_KHR :: GLenum-gl_OVERLAY_KHR = 0x9296-gl_LUMINANCE6_ALPHA2_EXT :: GLenum-gl_LUMINANCE6_ALPHA2_EXT = 0x8044-gl_COLOR_TABLE_SGI :: GLenum-gl_COLOR_TABLE_SGI = 0x80D0-gl_TEXTURE_STENCIL_SIZE_EXT :: GLenum-gl_TEXTURE_STENCIL_SIZE_EXT = 0x88F1-gl_NEAREST :: GLenum-gl_NEAREST = 0x2600-gl_RGB8I :: GLenum-gl_RGB8I = 0x8D8F-gl_TEXTURE_SPARSE_ARB :: GLenum-gl_TEXTURE_SPARSE_ARB = 0x91A6-gl_MATRIX9_ARB :: GLenum-gl_MATRIX9_ARB = 0x88C9-gl_TEXTURE_TARGET :: GLenum-gl_TEXTURE_TARGET = 0x1006-gl_SECONDARY_COLOR_ARRAY_TYPE_EXT :: GLenum-gl_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B-gl_RENDERER :: GLenum-gl_RENDERER = 0x1F01-gl_TEXTURE_BINDING_BUFFER :: GLenum-gl_TEXTURE_BINDING_BUFFER = 0x8C2C-gl_INT_VEC3_ARB :: GLenum-gl_INT_VEC3_ARB = 0x8B54-gl_MATRIX12_ARB :: GLenum-gl_MATRIX12_ARB = 0x88CC-gl_VERTEX_ATTRIB_ARRAY_ENABLED :: GLenum-gl_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622-gl_RENDERBUFFER_SAMPLES_NV :: GLenum-gl_RENDERBUFFER_SAMPLES_NV = 0x8CAB-gl_COLOR_ATTACHMENT1_EXT :: GLenum-gl_COLOR_ATTACHMENT1_EXT = 0x8CE1-gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211-gl_LINEAR_DETAIL_SGIS :: GLenum-gl_LINEAR_DETAIL_SGIS = 0x8097-gl_CURRENT_RASTER_POSITION_VALID :: GLenum-gl_CURRENT_RASTER_POSITION_VALID = 0x0B08-gl_LINEAR_DETAIL_COLOR_SGIS :: GLenum-gl_LINEAR_DETAIL_COLOR_SGIS = 0x8099-gl_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT :: GLenum-gl_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = 0x8A54-gl_POINT_SIZE_MIN_EXT :: GLenum-gl_POINT_SIZE_MIN_EXT = 0x8126-gl_GPU_DISJOINT_EXT :: GLenum-gl_GPU_DISJOINT_EXT = 0x8FBB-gl_LIGHT_MODEL_COLOR_CONTROL :: GLenum-gl_LIGHT_MODEL_COLOR_CONTROL = 0x81F8-gl_MAX_TESS_PATCH_COMPONENTS :: GLenum-gl_MAX_TESS_PATCH_COMPONENTS = 0x8E84-gl_CURRENT_PALETTE_MATRIX_OES :: GLenum-gl_CURRENT_PALETTE_MATRIX_OES = 0x8843-gl_SAMPLES_SGIS :: GLenum-gl_SAMPLES_SGIS = 0x80A9-gl_FUNC_REVERSE_SUBTRACT_OES :: GLenum-gl_FUNC_REVERSE_SUBTRACT_OES = 0x800B-gl_TEXTURE13_ARB :: GLenum-gl_TEXTURE13_ARB = 0x84CD-gl_SMOOTH_CUBIC_CURVE_TO_NV :: GLenum-gl_SMOOTH_CUBIC_CURVE_TO_NV = 0x10-gl_COMPRESSED_RGBA_ASTC_3x3x3_OES :: GLenum-gl_COMPRESSED_RGBA_ASTC_3x3x3_OES = 0x93C0-gl_MODELVIEW15_ARB :: GLenum-gl_MODELVIEW15_ARB = 0x872F-gl_EYE_PLANE_ABSOLUTE_NV :: GLenum-gl_EYE_PLANE_ABSOLUTE_NV = 0x855C-gl_READ_FRAMEBUFFER_BINDING_NV :: GLenum-gl_READ_FRAMEBUFFER_BINDING_NV = 0x8CAA-gl_RENDERBUFFER_RED_SIZE :: GLenum-gl_RENDERBUFFER_RED_SIZE = 0x8D50-gl_PIXEL_PACK_BUFFER_BINDING_EXT :: GLenum-gl_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED-gl_MAX_RENDERBUFFER_SIZE :: GLenum-gl_MAX_RENDERBUFFER_SIZE = 0x84E8-gl_DOUBLE_MAT4_EXT :: GLenum-gl_DOUBLE_MAT4_EXT = 0x8F48-gl_COMPRESSED_R11_EAC :: GLenum-gl_COMPRESSED_R11_EAC = 0x9270-gl_INT_IMAGE_2D_RECT :: GLenum-gl_INT_IMAGE_2D_RECT = 0x905A-gl_MAD_ATI :: GLenum-gl_MAD_ATI = 0x8968-gl_IMAGE_CLASS_4_X_32 :: GLenum-gl_IMAGE_CLASS_4_X_32 = 0x82B9-gl_VIDEO_COLOR_CONVERSION_OFFSET_NV :: GLenum-gl_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C-gl_BOOL_VEC4 :: GLenum-gl_BOOL_VEC4 = 0x8B59-gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D-gl_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES :: GLenum-gl_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = 0x8E5D-gl_HISTOGRAM_FORMAT_EXT :: GLenum-gl_HISTOGRAM_FORMAT_EXT = 0x8027-gl_UNSIGNED_INT_8_8_8_8_REV_EXT :: GLenum-gl_UNSIGNED_INT_8_8_8_8_REV_EXT = 0x8367-gl_R1UI_C3F_V3F_SUN :: GLenum-gl_R1UI_C3F_V3F_SUN = 0x85C6-gl_SAMPLER_1D_ARRAY_SHADOW_EXT :: GLenum-gl_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3-gl_TEXTURE_BINDING_2D_ARRAY :: GLenum-gl_TEXTURE_BINDING_2D_ARRAY = 0x8C1D-gl_TEXTURE_RANGE_POINTER_APPLE :: GLenum-gl_TEXTURE_RANGE_POINTER_APPLE = 0x85B8-gl_SMALL_CCW_ARC_TO_NV :: GLenum-gl_SMALL_CCW_ARC_TO_NV = 0x12-gl_SHADER_COMPILER :: GLenum-gl_SHADER_COMPILER = 0x8DFA-gl_DEPTH_COMPONENT24_ARB :: GLenum-gl_DEPTH_COMPONENT24_ARB = 0x81A6-gl_COLOR_ATTACHMENT14_NV :: GLenum-gl_COLOR_ATTACHMENT14_NV = 0x8CEE-gl_TIME_ELAPSED :: GLenum-gl_TIME_ELAPSED = 0x88BF-gl_FRAMEBUFFER_DEFAULT_LAYERS_EXT :: GLenum-gl_FRAMEBUFFER_DEFAULT_LAYERS_EXT = 0x9312-gl_MATRIX11_ARB :: GLenum-gl_MATRIX11_ARB = 0x88CB-gl_XOR :: GLenum-gl_XOR = 0x1506-gl_HSL_SATURATION_KHR :: GLenum-gl_HSL_SATURATION_KHR = 0x92AE-gl_R1UI_T2F_V3F_SUN :: GLenum-gl_R1UI_T2F_V3F_SUN = 0x85C9-gl_COMPUTE_WORK_GROUP_SIZE :: GLenum-gl_COMPUTE_WORK_GROUP_SIZE = 0x8267-gl_BLEND_EQUATION_EXT :: GLenum-gl_BLEND_EQUATION_EXT = 0x8009-gl_SAMPLER :: GLenum-gl_SAMPLER = 0x82E6-gl_NUM_FRAGMENT_REGISTERS_ATI :: GLenum-gl_NUM_FRAGMENT_REGISTERS_ATI = 0x896E-gl_REG_5_ATI :: GLenum-gl_REG_5_ATI = 0x8926-gl_DSDT8_MAG8_INTENSITY8_NV :: GLenum-gl_DSDT8_MAG8_INTENSITY8_NV = 0x870B-gl_PIXEL_MAP_S_TO_S_SIZE :: GLenum-gl_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1-gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7-gl_OR_REVERSE :: GLenum-gl_OR_REVERSE = 0x150B-gl_QUERY_BUFFER_BARRIER_BIT :: GLenum-gl_QUERY_BUFFER_BARRIER_BIT = 0x00008000-gl_TRANSFORM_FEEDBACK_BUFFER_BINDING :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F-gl_SAMPLER_1D :: GLenum-gl_SAMPLER_1D = 0x8B5D-gl_COLOR_TABLE_INTENSITY_SIZE :: GLenum-gl_COLOR_TABLE_INTENSITY_SIZE = 0x80DF-gl_TRIANGLE_FAN :: GLenum-gl_TRIANGLE_FAN = 0x0006-gl_POINT_SIZE_MAX_SGIS :: GLenum-gl_POINT_SIZE_MAX_SGIS = 0x8127-gl_ELEMENT_ARRAY_POINTER_ATI :: GLenum-gl_ELEMENT_ARRAY_POINTER_ATI = 0x876A-gl_INT_IMAGE_1D_EXT :: GLenum-gl_INT_IMAGE_1D_EXT = 0x9057-gl_CONVOLUTION_FILTER_SCALE_EXT :: GLenum-gl_CONVOLUTION_FILTER_SCALE_EXT = 0x8014-gl_EVAL_VERTEX_ATTRIB8_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB8_NV = 0x86CE-gl_DYNAMIC_COPY_ARB :: GLenum-gl_DYNAMIC_COPY_ARB = 0x88EA-gl_REG_12_ATI :: GLenum-gl_REG_12_ATI = 0x892D-gl_SIGNED_NORMALIZED :: GLenum-gl_SIGNED_NORMALIZED = 0x8F9C-gl_REG_8_ATI :: GLenum-gl_REG_8_ATI = 0x8929-gl_SAMPLE_COVERAGE_ARB :: GLenum-gl_SAMPLE_COVERAGE_ARB = 0x80A0-gl_ALLOW_DRAW_MEM_HINT_PGI :: GLenum-gl_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211-gl_INTENSITY16F_ARB :: GLenum-gl_INTENSITY16F_ARB = 0x881D-gl_PATH_FORMAT_PS_NV :: GLenum-gl_PATH_FORMAT_PS_NV = 0x9071-gl_TEXTURE_FREE_MEMORY_ATI :: GLenum-gl_TEXTURE_FREE_MEMORY_ATI = 0x87FC-gl_SYNC_FENCE :: GLenum-gl_SYNC_FENCE = 0x9116-gl_WRITE_ONLY_ARB :: GLenum-gl_WRITE_ONLY_ARB = 0x88B9-gl_INVERT :: GLenum-gl_INVERT = 0x150A-gl_TRANSLATE_Y_NV :: GLenum-gl_TRANSLATE_Y_NV = 0x908F-gl_SAMPLER_3D :: GLenum-gl_SAMPLER_3D = 0x8B5F-gl_LINE_STRIP_ADJACENCY :: GLenum-gl_LINE_STRIP_ADJACENCY = 0x000B-gl_OPERAND2_RGB_EXT :: GLenum-gl_OPERAND2_RGB_EXT = 0x8592-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = 0x9134-gl_COLOR_ARRAY_ADDRESS_NV :: GLenum-gl_COLOR_ARRAY_ADDRESS_NV = 0x8F23-gl_POST_CONVOLUTION_BLUE_SCALE_EXT :: GLenum-gl_POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E-gl_HIGH_FLOAT :: GLenum-gl_HIGH_FLOAT = 0x8DF2-gl_TESS_GEN_MODE_EXT :: GLenum-gl_TESS_GEN_MODE_EXT = 0x8E76-gl_DOT_PRODUCT_TEXTURE_RECTANGLE_NV :: GLenum-gl_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E-gl_MAX_LABEL_LENGTH :: GLenum-gl_MAX_LABEL_LENGTH = 0x82E8-gl_QUERY_BY_REGION_NO_WAIT :: GLenum-gl_QUERY_BY_REGION_NO_WAIT = 0x8E16-gl_OP_RECIP_EXT :: GLenum-gl_OP_RECIP_EXT = 0x8794-gl_PROXY_TEXTURE_2D_ARRAY :: GLenum-gl_PROXY_TEXTURE_2D_ARRAY = 0x8C1B-gl_COMPRESSED_RGBA_FXT1_3DFX :: GLenum-gl_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1-gl_PRIMITIVES_GENERATED :: GLenum-gl_PRIMITIVES_GENERATED = 0x8C87-gl_TEXTURE26_ARB :: GLenum-gl_TEXTURE26_ARB = 0x84DA-gl_TESS_EVALUATION_TEXTURE :: GLenum-gl_TESS_EVALUATION_TEXTURE = 0x829D-gl_TEXTURE1 :: GLenum-gl_TEXTURE1 = 0x84C1-gl_TRANSFORM_FEEDBACK_RECORD_NV :: GLenum-gl_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86-gl_DRAW_FRAMEBUFFER_NV :: GLenum-gl_DRAW_FRAMEBUFFER_NV = 0x8CA9-gl_MODELVIEW8_ARB :: GLenum-gl_MODELVIEW8_ARB = 0x8728-gl_UNSIGNED_INT_SAMPLER_BUFFER :: GLenum-gl_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8-gl_CONVOLUTION_1D :: GLenum-gl_CONVOLUTION_1D = 0x8010-gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23-gl_SAMPLER_1D_ARRAY :: GLenum-gl_SAMPLER_1D_ARRAY = 0x8DC0-gl_TRANSFORM_FEEDBACK_BINDING :: GLenum-gl_TRANSFORM_FEEDBACK_BINDING = 0x8E25-gl_LIGHTING_BIT :: GLenum-gl_LIGHTING_BIT = 0x00000040-gl_R1UI_C4F_N3F_V3F_SUN :: GLenum-gl_R1UI_C4F_N3F_V3F_SUN = 0x85C8-gl_TEXTURE_RED_SIZE_EXT :: GLenum-gl_TEXTURE_RED_SIZE_EXT = 0x805C-gl_VERTEX_ARRAY_KHR :: GLenum-gl_VERTEX_ARRAY_KHR = 0x8074-gl_ALPHA_BITS :: GLenum-gl_ALPHA_BITS = 0x0D55-gl_MAX_VERTEX_SHADER_INVARIANTS_EXT :: GLenum-gl_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7-gl_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS :: GLenum-gl_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31-gl_SAMPLE_MASK_INVERT_EXT :: GLenum-gl_SAMPLE_MASK_INVERT_EXT = 0x80AB-gl_TRANSPOSE_PROGRAM_MATRIX_EXT :: GLenum-gl_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E-gl_ABGR_EXT :: GLenum-gl_ABGR_EXT = 0x8000-gl_MULTISAMPLE_BIT_3DFX :: GLenum-gl_MULTISAMPLE_BIT_3DFX = 0x20000000-gl_MATRIX0_NV :: GLenum-gl_MATRIX0_NV = 0x8630-gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210-gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG :: GLenum-gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = 0x93F0-gl_RGB9_E5 :: GLenum-gl_RGB9_E5 = 0x8C3D-gl_IMAGE_2D_MULTISAMPLE_ARRAY :: GLenum-gl_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056-gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212-gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F-gl_GEOMETRY_PROGRAM_NV :: GLenum-gl_GEOMETRY_PROGRAM_NV = 0x8C26-gl_RGB10_EXT :: GLenum-gl_RGB10_EXT = 0x8052-gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT :: GLenum-gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F-gl_ALWAYS_SOFT_HINT_PGI :: GLenum-gl_ALWAYS_SOFT_HINT_PGI = 0x1A20D-gl_WEIGHT_ARRAY_BUFFER_BINDING :: GLenum-gl_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E-gl_BLEND_DST_ALPHA_OES :: GLenum-gl_BLEND_DST_ALPHA_OES = 0x80CA-gl_UNIFORM_BUFFER_BINDING_EXT :: GLenum-gl_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF-gl_CONTINUOUS_AMD :: GLenum-gl_CONTINUOUS_AMD = 0x9007-gl_STENCIL_BUFFER_BIT4_QCOM :: GLenum-gl_STENCIL_BUFFER_BIT4_QCOM = 0x00100000-gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV :: GLenum-gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88-gl_TESS_EVALUATION_SHADER_BIT :: GLenum-gl_TESS_EVALUATION_SHADER_BIT = 0x00000010-gl_TEXTURE_COORD_ARRAY_EXT :: GLenum-gl_TEXTURE_COORD_ARRAY_EXT = 0x8078-gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET :: GLenum-gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F-gl_PROGRAM_INSTRUCTIONS_ARB :: GLenum-gl_PROGRAM_INSTRUCTIONS_ARB = 0x88A0-gl_PROXY_TEXTURE_3D :: GLenum-gl_PROXY_TEXTURE_3D = 0x8070-gl_CLIP_PLANE0 :: GLenum-gl_CLIP_PLANE0 = 0x3000-gl_CURRENT_QUERY_EXT :: GLenum-gl_CURRENT_QUERY_EXT = 0x8865-gl_T4F_C4F_N3F_V4F :: GLenum-gl_T4F_C4F_N3F_V4F = 0x2A2D-gl_ADD :: GLenum-gl_ADD = 0x0104-gl_STENCIL_EXT :: GLenum-gl_STENCIL_EXT = 0x1802-gl_TEXTURE_BLUE_TYPE :: GLenum-gl_TEXTURE_BLUE_TYPE = 0x8C12-gl_OUTPUT_TEXTURE_COORD8_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5-gl_OBJECT_TYPE_ARB :: GLenum-gl_OBJECT_TYPE_ARB = 0x8B4E-gl_RESET_NOTIFICATION_STRATEGY :: GLenum-gl_RESET_NOTIFICATION_STRATEGY = 0x8256-gl_UNSIGNED_INT_VEC2_EXT :: GLenum-gl_UNSIGNED_INT_VEC2_EXT = 0x8DC6-gl_DRAW_BUFFER6_NV :: GLenum-gl_DRAW_BUFFER6_NV = 0x882B-gl_ASYNC_DRAW_PIXELS_SGIX :: GLenum-gl_ASYNC_DRAW_PIXELS_SGIX = 0x835D-gl_INTERNALFORMAT_GREEN_SIZE :: GLenum-gl_INTERNALFORMAT_GREEN_SIZE = 0x8272-gl_TEXTURE_GREEN_SIZE :: GLenum-gl_TEXTURE_GREEN_SIZE = 0x805D-gl_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL :: GLenum-gl_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE-gl_VIRTUAL_PAGE_SIZE_Y_AMD :: GLenum-gl_VIRTUAL_PAGE_SIZE_Y_AMD = 0x9196-gl_OP_MUL_EXT :: GLenum-gl_OP_MUL_EXT = 0x8786-gl_NORMAL_MAP :: GLenum-gl_NORMAL_MAP = 0x8511-gl_ALPHA16_EXT :: GLenum-gl_ALPHA16_EXT = 0x803E-gl_POINT_SIZE :: GLenum-gl_POINT_SIZE = 0x0B11-gl_INTERNALFORMAT_SUPPORTED :: GLenum-gl_INTERNALFORMAT_SUPPORTED = 0x826F-gl_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT :: GLenum-gl_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7-gl_DEBUG_SEVERITY_HIGH_ARB :: GLenum-gl_DEBUG_SEVERITY_HIGH_ARB = 0x9146-gl_TEXTURE_MAX_LEVEL_SGIS :: GLenum-gl_TEXTURE_MAX_LEVEL_SGIS = 0x813D-gl_SHADING_LANGUAGE_VERSION_ARB :: GLenum-gl_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C-gl_STANDARD_FONT_FORMAT_NV :: GLenum-gl_STANDARD_FONT_FORMAT_NV = 0x936C-gl_VERTEX_WEIGHT_ARRAY_SIZE_EXT :: GLenum-gl_VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D-gl_IR_INSTRUMENT1_SGIX :: GLenum-gl_IR_INSTRUMENT1_SGIX = 0x817F-gl_SIGNED_HILO8_NV :: GLenum-gl_SIGNED_HILO8_NV = 0x885F-gl_RENDERBUFFER_GREEN_SIZE_OES :: GLenum-gl_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51-gl_REG_1_ATI :: GLenum-gl_REG_1_ATI = 0x8922-gl_CLAMP_TO_EDGE :: GLenum-gl_CLAMP_TO_EDGE = 0x812F-gl_GEOMETRY_SHADER_BIT :: GLenum-gl_GEOMETRY_SHADER_BIT = 0x00000004-gl_MODELVIEW7_ARB :: GLenum-gl_MODELVIEW7_ARB = 0x8727-gl_BUFFER_MAPPED_ARB :: GLenum-gl_BUFFER_MAPPED_ARB = 0x88BC-gl_DRAW_BUFFER12_EXT :: GLenum-gl_DRAW_BUFFER12_EXT = 0x8831-gl_RGB565_OES :: GLenum-gl_RGB565_OES = 0x8D62-gl_SHORT :: GLenum-gl_SHORT = 0x1402-gl_STENCIL_BACK_FAIL_ATI :: GLenum-gl_STENCIL_BACK_FAIL_ATI = 0x8801-gl_UNSIGNED_INT_IMAGE_2D_RECT_EXT :: GLenum-gl_UNSIGNED_INT_IMAGE_2D_RECT_EXT = 0x9065-gl_PATH_MAX_PROJECTION_STACK_DEPTH_NV :: GLenum-gl_PATH_MAX_PROJECTION_STACK_DEPTH_NV = 0x0D38-gl_CON_31_ATI :: GLenum-gl_CON_31_ATI = 0x8960-gl_RGB5 :: GLenum-gl_RGB5 = 0x8050-gl_SAMPLER_2D_RECT :: GLenum-gl_SAMPLER_2D_RECT = 0x8B63-gl_COMPRESSED_RGBA_ASTC_5x4x4_OES :: GLenum-gl_COMPRESSED_RGBA_ASTC_5x4x4_OES = 0x93C4-gl_PASS_THROUGH_TOKEN :: GLenum-gl_PASS_THROUGH_TOKEN = 0x0700-gl_RGBA_FLOAT32_ATI :: GLenum-gl_RGBA_FLOAT32_ATI = 0x8814-gl_TEXTURE_COLOR_WRITEMASK_SGIS :: GLenum-gl_TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF-gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS :: GLenum-gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F-gl_OUTPUT_TEXTURE_COORD23_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4-gl_YCBYCR8_422_NV :: GLenum-gl_YCBYCR8_422_NV = 0x9031-gl_SRC_NV :: GLenum-gl_SRC_NV = 0x9286-gl_MAX_EXT :: GLenum-gl_MAX_EXT = 0x8008-gl_UNPACK_COMPRESSED_BLOCK_DEPTH :: GLenum-gl_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129-gl_UNSIGNED_SHORT_5_5_5_1_EXT :: GLenum-gl_UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034-gl_IMAGE_3D :: GLenum-gl_IMAGE_3D = 0x904E-gl_DEPTH_BUFFER_BIT0_QCOM :: GLenum-gl_DEPTH_BUFFER_BIT0_QCOM = 0x00000100-gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS :: GLenum-gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A-gl_DECR_WRAP_OES :: GLenum-gl_DECR_WRAP_OES = 0x8508-gl_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV :: GLenum-gl_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A-gl_SPARSE_STORAGE_BIT_ARB :: GLenum-gl_SPARSE_STORAGE_BIT_ARB = 0x0400-gl_LAST_VIDEO_CAPTURE_STATUS_NV :: GLenum-gl_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027-gl_LAST_VERTEX_CONVENTION :: GLenum-gl_LAST_VERTEX_CONVENTION = 0x8E4E-gl_IDENTITY_NV :: GLenum-gl_IDENTITY_NV = 0x862A-gl_RETAINED_APPLE :: GLenum-gl_RETAINED_APPLE = 0x8A1B-gl_FLOAT_RGB32_NV :: GLenum-gl_FLOAT_RGB32_NV = 0x8889-gl_DRAW_BUFFER15_ARB :: GLenum-gl_DRAW_BUFFER15_ARB = 0x8834-gl_COLOR_EXT :: GLenum-gl_COLOR_EXT = 0x1800-gl_WEIGHT_ARRAY_TYPE_OES :: GLenum-gl_WEIGHT_ARRAY_TYPE_OES = 0x86A9-gl_DETAIL_TEXTURE_2D_BINDING_SGIS :: GLenum-gl_DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096-gl_BGRA8_EXT :: GLenum-gl_BGRA8_EXT = 0x93A1-gl_T2F_IUI_V3F_EXT :: GLenum-gl_T2F_IUI_V3F_EXT = 0x81B2-gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS :: GLenum-gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD-gl_VERTEX_ARRAY_LIST_IBM :: GLenum-gl_VERTEX_ARRAY_LIST_IBM = 103070-gl_INDEX_ARRAY_STRIDE_EXT :: GLenum-gl_INDEX_ARRAY_STRIDE_EXT = 0x8086-gl_SCALE_BY_ONE_HALF_NV :: GLenum-gl_SCALE_BY_ONE_HALF_NV = 0x8540-gl_PROXY_TEXTURE_4D_SGIS :: GLenum-gl_PROXY_TEXTURE_4D_SGIS = 0x8135-gl_HALF_FLOAT :: GLenum-gl_HALF_FLOAT = 0x140B-gl_FIELD_UPPER_NV :: GLenum-gl_FIELD_UPPER_NV = 0x9022-gl_OCCLUSION_QUERY_EVENT_MASK_AMD :: GLenum-gl_OCCLUSION_QUERY_EVENT_MASK_AMD = 0x874F-gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV :: GLenum-gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5B-gl_VERTEX_ATTRIB_ARRAY4_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY4_NV = 0x8654-gl_CONVOLUTION_BORDER_COLOR_HP :: GLenum-gl_CONVOLUTION_BORDER_COLOR_HP = 0x8154-gl_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT :: GLenum-gl_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52-gl_MODULATE :: GLenum-gl_MODULATE = 0x2100-gl_NO_RESET_NOTIFICATION_KHR :: GLenum-gl_NO_RESET_NOTIFICATION_KHR = 0x8261-gl_CURRENT_INDEX :: GLenum-gl_CURRENT_INDEX = 0x0B01-gl_RED_MAX_CLAMP_INGR :: GLenum-gl_RED_MAX_CLAMP_INGR = 0x8564-gl_SAMPLE_ALPHA_TO_MASK_EXT :: GLenum-gl_SAMPLE_ALPHA_TO_MASK_EXT = 0x809E-gl_DEBUG_CATEGORY_DEPRECATION_AMD :: GLenum-gl_DEBUG_CATEGORY_DEPRECATION_AMD = 0x914B-gl_EXP2 :: GLenum-gl_EXP2 = 0x0801-gl_HISTOGRAM :: GLenum-gl_HISTOGRAM = 0x8024-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB-gl_VERTEX_WEIGHT_ARRAY_POINTER_EXT :: GLenum-gl_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510-gl_READ_FRAMEBUFFER_BINDING_APPLE :: GLenum-gl_READ_FRAMEBUFFER_BINDING_APPLE = 0x8CAA-gl_COLOR_ATTACHMENT9 :: GLenum-gl_COLOR_ATTACHMENT9 = 0x8CE9-gl_PROXY_TEXTURE_CUBE_MAP_ARB :: GLenum-gl_PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B-gl_SIGNED_RGB8_NV :: GLenum-gl_SIGNED_RGB8_NV = 0x86FF-gl_TEXTURE_INTENSITY_SIZE :: GLenum-gl_TEXTURE_INTENSITY_SIZE = 0x8061-gl_TEXTURE_MAX_CLAMP_S_SGIX :: GLenum-gl_TEXTURE_MAX_CLAMP_S_SGIX = 0x8369-gl_PATH_TRANSPOSE_PROJECTION_MATRIX_NV :: GLenum-gl_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = 0x84E4-gl_BOUNDING_BOX_OF_BOUNDING_BOXES_NV :: GLenum-gl_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C-gl_TEXTURE_MAX_LOD_SGIS :: GLenum-gl_TEXTURE_MAX_LOD_SGIS = 0x813B-gl_LUMINANCE :: GLenum-gl_LUMINANCE = 0x1909-gl_FOG_COORD_ARRAY_BUFFER_BINDING :: GLenum-gl_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D-gl_OFFSET_TEXTURE_2D_BIAS_NV :: GLenum-gl_OFFSET_TEXTURE_2D_BIAS_NV = 0x86E3-gl_FEEDBACK :: GLenum-gl_FEEDBACK = 0x1C01-gl_MAGNITUDE_BIAS_NV :: GLenum-gl_MAGNITUDE_BIAS_NV = 0x8718-gl_POST_CONVOLUTION_ALPHA_SCALE :: GLenum-gl_POST_CONVOLUTION_ALPHA_SCALE = 0x801F-gl_PATH_TERMINAL_END_CAP_NV :: GLenum-gl_PATH_TERMINAL_END_CAP_NV = 0x9078-gl_GLYPH_HEIGHT_BIT_NV :: GLenum-gl_GLYPH_HEIGHT_BIT_NV = 0x02-gl_TEXTURE_STORAGE_HINT_APPLE :: GLenum-gl_TEXTURE_STORAGE_HINT_APPLE = 0x85BC-gl_MATRIX2_NV :: GLenum-gl_MATRIX2_NV = 0x8632-gl_RGB16I :: GLenum-gl_RGB16I = 0x8D89-gl_NUM_SHADER_BINARY_FORMATS :: GLenum-gl_NUM_SHADER_BINARY_FORMATS = 0x8DF9-gl_MULTISAMPLE_BUFFER_BIT7_QCOM :: GLenum-gl_MULTISAMPLE_BUFFER_BIT7_QCOM = 0x80000000-gl_SAMPLE_ALPHA_TO_ONE :: GLenum-gl_SAMPLE_ALPHA_TO_ONE = 0x809F-gl_CON_11_ATI :: GLenum-gl_CON_11_ATI = 0x894C-gl_MAP2_TEXTURE_COORD_1 :: GLenum-gl_MAP2_TEXTURE_COORD_1 = 0x0DB3-gl_DRAW_BUFFER14_ARB :: GLenum-gl_DRAW_BUFFER14_ARB = 0x8833-gl_SHARPEN_TEXTURE_FUNC_POINTS_SGIS :: GLenum-gl_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0-gl_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7-gl_FLOAT_RGBA_MODE_NV :: GLenum-gl_FLOAT_RGBA_MODE_NV = 0x888E-gl_VERTEX_ATTRIB_ARRAY9_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY9_NV = 0x8659-gl_ALPHA4 :: GLenum-gl_ALPHA4 = 0x803B-gl_EVAL_VERTEX_ATTRIB9_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB9_NV = 0x86CF-gl_VARIANT_ARRAY_POINTER_EXT :: GLenum-gl_VARIANT_ARRAY_POINTER_EXT = 0x87E9-gl_INDEX_TEST_EXT :: GLenum-gl_INDEX_TEST_EXT = 0x81B5-gl_MAX_RENDERBUFFER_SIZE_EXT :: GLenum-gl_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8-gl_MAP1_GRID_SEGMENTS :: GLenum-gl_MAP1_GRID_SEGMENTS = 0x0DD1-gl_DETAIL_TEXTURE_MODE_SGIS :: GLenum-gl_DETAIL_TEXTURE_MODE_SGIS = 0x809B-gl_LINEARBURN_NV :: GLenum-gl_LINEARBURN_NV = 0x92A5-gl_SOURCE2_ALPHA :: GLenum-gl_SOURCE2_ALPHA = 0x858A-gl_COLOR_ATTACHMENT9_EXT :: GLenum-gl_COLOR_ATTACHMENT9_EXT = 0x8CE9-gl_RENDERBUFFER_OES :: GLenum-gl_RENDERBUFFER_OES = 0x8D41-gl_RGBA8UI :: GLenum-gl_RGBA8UI = 0x8D7C-gl_MIPMAP :: GLenum-gl_MIPMAP = 0x8293-gl_SMOOTH_LINE_WIDTH_RANGE :: GLenum-gl_SMOOTH_LINE_WIDTH_RANGE = 0x0B22-gl_COMBINER7_NV :: GLenum-gl_COMBINER7_NV = 0x8557-gl_VIEW_CLASS_64_BITS :: GLenum-gl_VIEW_CLASS_64_BITS = 0x82C6-gl_SAMPLE_MASK_VALUE_SGIS :: GLenum-gl_SAMPLE_MASK_VALUE_SGIS = 0x80AA-gl_MAX_SHADER_STORAGE_BUFFER_BINDINGS :: GLenum-gl_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD-gl_ALPHA32UI_EXT :: GLenum-gl_ALPHA32UI_EXT = 0x8D72-gl_NONE :: GLenum-gl_NONE = 0-gl_MATRIX25_ARB :: GLenum-gl_MATRIX25_ARB = 0x88D9-gl_DUAL_LUMINANCE_ALPHA4_SGIS :: GLenum-gl_DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C-gl_PATCH_VERTICES :: GLenum-gl_PATCH_VERTICES = 0x8E72-gl_COLOR_MATERIAL_PARAMETER :: GLenum-gl_COLOR_MATERIAL_PARAMETER = 0x0B56-gl_NUM_PROGRAM_BINARY_FORMATS :: GLenum-gl_NUM_PROGRAM_BINARY_FORMATS = 0x87FE-gl_PACK_ROW_LENGTH :: GLenum-gl_PACK_ROW_LENGTH = 0x0D02-gl_RENDERBUFFER_BINDING_EXT :: GLenum-gl_RENDERBUFFER_BINDING_EXT = 0x8CA7-gl_FORMAT_SUBSAMPLE_24_24_OML :: GLenum-gl_FORMAT_SUBSAMPLE_24_24_OML = 0x8982-gl_RELATIVE_ROUNDED_RECT4_NV :: GLenum-gl_RELATIVE_ROUNDED_RECT4_NV = 0xED-gl_TEXTURE3 :: GLenum-gl_TEXTURE3 = 0x84C3-gl_DEPTH_COMPONENT16_SGIX :: GLenum-gl_DEPTH_COMPONENT16_SGIX = 0x81A5-gl_SAMPLER_2D_SHADOW_EXT :: GLenum-gl_SAMPLER_2D_SHADOW_EXT = 0x8B62-gl_MIN_MAP_BUFFER_ALIGNMENT :: GLenum-gl_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC-gl_PROXY_TEXTURE_2D_ARRAY_EXT :: GLenum-gl_PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B-gl_WEIGHT_ARRAY_TYPE_ARB :: GLenum-gl_WEIGHT_ARRAY_TYPE_ARB = 0x86A9-gl_LOW_INT :: GLenum-gl_LOW_INT = 0x8DF3-gl_DRAW_BUFFER11_ATI :: GLenum-gl_DRAW_BUFFER11_ATI = 0x8830-gl_MAX_ELEMENTS_VERTICES_EXT :: GLenum-gl_MAX_ELEMENTS_VERTICES_EXT = 0x80E8-gl_COMPRESSED_RED_RGTC1_EXT :: GLenum-gl_COMPRESSED_RED_RGTC1_EXT = 0x8DBB-gl_RGBA :: GLenum-gl_RGBA = 0x1908-gl_DRAW_BUFFER0_ARB :: GLenum-gl_DRAW_BUFFER0_ARB = 0x8825-gl_TEXTURE_RED_TYPE :: GLenum-gl_TEXTURE_RED_TYPE = 0x8C10-gl_FENCE_APPLE :: GLenum-gl_FENCE_APPLE = 0x8A0B-gl_MAX_CONVOLUTION_WIDTH_EXT :: GLenum-gl_MAX_CONVOLUTION_WIDTH_EXT = 0x801A-gl_UNSIGNED_INVERT_NV :: GLenum-gl_UNSIGNED_INVERT_NV = 0x8537-gl_LIGHT6 :: GLenum-gl_LIGHT6 = 0x4006-gl_STREAM_COPY :: GLenum-gl_STREAM_COPY = 0x88E2-gl_INSTRUMENT_BUFFER_POINTER_SGIX :: GLenum-gl_INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180-gl_MODELVIEW :: GLenum-gl_MODELVIEW = 0x1700-gl_RGB32F :: GLenum-gl_RGB32F = 0x8815-gl_MAP_COLOR :: GLenum-gl_MAP_COLOR = 0x0D10-gl_COLOR_TABLE_INTENSITY_SIZE_SGI :: GLenum-gl_COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF-gl_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV :: GLenum-gl_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV = 0x90D0-gl_LAYER_PROVOKING_VERTEX_EXT :: GLenum-gl_LAYER_PROVOKING_VERTEX_EXT = 0x825E-gl_COMPRESSED_RGBA_ASTC_6x5x5_OES :: GLenum-gl_COMPRESSED_RGBA_ASTC_6x5x5_OES = 0x93C7-gl_FOG_BIT :: GLenum-gl_FOG_BIT = 0x00000080-gl_NATIVE_GRAPHICS_HANDLE_PGI :: GLenum-gl_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT :: GLenum-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B-gl_MAX_COMPUTE_SHARED_MEMORY_SIZE :: GLenum-gl_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262-gl_STENCIL_INDEX1_EXT :: GLenum-gl_STENCIL_INDEX1_EXT = 0x8D46-gl_COLOR_ATTACHMENT2_NV :: GLenum-gl_COLOR_ATTACHMENT2_NV = 0x8CE2-gl_DRAW_BUFFER5_ARB :: GLenum-gl_DRAW_BUFFER5_ARB = 0x882A-gl_TEXTURE_OBJECT_VALID_QCOM :: GLenum-gl_TEXTURE_OBJECT_VALID_QCOM = 0x8BDB-gl_PHONG_HINT_WIN :: GLenum-gl_PHONG_HINT_WIN = 0x80EB-gl_MAP1_VERTEX_ATTRIB0_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660-gl_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX :: GLenum-gl_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX = 0x9047-gl_COLOR_TABLE_WIDTH :: GLenum-gl_COLOR_TABLE_WIDTH = 0x80D9-gl_INT_IMAGE_1D_ARRAY :: GLenum-gl_INT_IMAGE_1D_ARRAY = 0x905D-gl_BUFFER_MAPPED :: GLenum-gl_BUFFER_MAPPED = 0x88BC-gl_TEXTURE_SWIZZLE_R :: GLenum-gl_TEXTURE_SWIZZLE_R = 0x8E42-gl_COLOR_ATTACHMENT9_NV :: GLenum-gl_COLOR_ATTACHMENT9_NV = 0x8CE9-gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER :: GLenum-gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0-gl_LUMINANCE16_ALPHA16 :: GLenum-gl_LUMINANCE16_ALPHA16 = 0x8048-gl_PERFQUERY_GLOBAL_CONTEXT_INTEL :: GLenum-gl_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001-gl_POINT_FADE_THRESHOLD_SIZE_EXT :: GLenum-gl_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128-gl_BLEND_EQUATION_OES :: GLenum-gl_BLEND_EQUATION_OES = 0x8009-gl_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES :: GLenum-gl_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E-gl_TEXTURE_BINDING_2D_ARRAY_EXT :: GLenum-gl_TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D-gl_CON_7_ATI :: GLenum-gl_CON_7_ATI = 0x8948-gl_DUAL_LUMINANCE16_SGIS :: GLenum-gl_DUAL_LUMINANCE16_SGIS = 0x8117-gl_RASTER_POSITION_UNCLIPPED_IBM :: GLenum-gl_RASTER_POSITION_UNCLIPPED_IBM = 0x19262-gl_ALLOW_DRAW_FRG_HINT_PGI :: GLenum-gl_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210-gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT :: GLenum-gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = 0x8F39-gl_TEXTURE_COORD_ARRAY :: GLenum-gl_TEXTURE_COORD_ARRAY = 0x8078-gl_MAX_DEBUG_LOGGED_MESSAGES_KHR :: GLenum-gl_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144-gl_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_ARRAY_BUFFER_BINDING_ARB = 0x8894-gl_PIXEL_TEXTURE_SGIS :: GLenum-gl_PIXEL_TEXTURE_SGIS = 0x8353-gl_STENCIL_INDEX8 :: GLenum-gl_STENCIL_INDEX8 = 0x8D48-gl_IMAGE_CLASS_10_10_10_2 :: GLenum-gl_IMAGE_CLASS_10_10_10_2 = 0x82C3-gl_DRAW_INDIRECT_LENGTH_NV :: GLenum-gl_DRAW_INDIRECT_LENGTH_NV = 0x8F42-gl_DEBUG_CALLBACK_FUNCTION_ARB :: GLenum-gl_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244-gl_INT_SAMPLER_2D_ARRAY :: GLenum-gl_INT_SAMPLER_2D_ARRAY = 0x8DCF-gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB :: GLenum-gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3-gl_GENERIC_ATTRIB_NV :: GLenum-gl_GENERIC_ATTRIB_NV = 0x8C7D-gl_TEXTURE_RED_TYPE_ARB :: GLenum-gl_TEXTURE_RED_TYPE_ARB = 0x8C10-gl_MAX_VERTEX_UNITS_ARB :: GLenum-gl_MAX_VERTEX_UNITS_ARB = 0x86A4-gl_DEPTH_BIAS :: GLenum-gl_DEPTH_BIAS = 0x0D1F-gl_SRGB :: GLenum-gl_SRGB = 0x8C40-gl_TEXTURE_COORD_ARRAY_TYPE :: GLenum-gl_TEXTURE_COORD_ARRAY_TYPE = 0x8089-gl_TRANSFORM_FEEDBACK_BUFFER_START_EXT :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84-gl_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV :: GLenum-gl_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = 0x8F44-gl_CURRENT_TIME_NV :: GLenum-gl_CURRENT_TIME_NV = 0x8E28-gl_TEXTURE_DEPTH_SIZE :: GLenum-gl_TEXTURE_DEPTH_SIZE = 0x884A-gl_INDEX_ARRAY_LIST_STRIDE_IBM :: GLenum-gl_INDEX_ARRAY_LIST_STRIDE_IBM = 103083-gl_CLIP_PLANE1_IMG :: GLenum-gl_CLIP_PLANE1_IMG = 0x3001-gl_CULL_VERTEX_EYE_POSITION_EXT :: GLenum-gl_CULL_VERTEX_EYE_POSITION_EXT = 0x81AB-gl_COPY_READ_BUFFER_NV :: GLenum-gl_COPY_READ_BUFFER_NV = 0x8F36-gl_CONTEXT_CORE_PROFILE_BIT :: GLenum-gl_CONTEXT_CORE_PROFILE_BIT = 0x00000001-gl_ARC_TO_NV :: GLenum-gl_ARC_TO_NV = 0xFE-gl_PACK_COMPRESSED_BLOCK_SIZE :: GLenum-gl_PACK_COMPRESSED_BLOCK_SIZE = 0x912E-gl_TRACE_NAME_MESA :: GLenum-gl_TRACE_NAME_MESA = 0x8756-gl_TEXTURE_CROP_RECT_OES :: GLenum-gl_TEXTURE_CROP_RECT_OES = 0x8B9D-gl_MAP2_VERTEX_ATTRIB15_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F-gl_DRAW_INDIRECT_UNIFIED_NV :: GLenum-gl_DRAW_INDIRECT_UNIFIED_NV = 0x8F40-gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS :: GLenum-gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC-gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS :: GLenum-gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D-gl_CULL_FACE_MODE :: GLenum-gl_CULL_FACE_MODE = 0x0B45-gl_LUMINANCE_ALPHA_INTEGER_EXT :: GLenum-gl_LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D-gl_SURFACE_MAPPED_NV :: GLenum-gl_SURFACE_MAPPED_NV = 0x8700-gl_FOG_COORD_ARRAY_LENGTH_NV :: GLenum-gl_FOG_COORD_ARRAY_LENGTH_NV = 0x8F32-gl_R :: GLenum-gl_R = 0x2002-gl_NUM_VIDEO_CAPTURE_STREAMS_NV :: GLenum-gl_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024-gl_VERTEX_PROGRAM_POINT_SIZE_NV :: GLenum-gl_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642-gl_CONSTANT_NV :: GLenum-gl_CONSTANT_NV = 0x8576-gl_RGB10_A2 :: GLenum-gl_RGB10_A2 = 0x8059-gl_INTENSITY16_EXT :: GLenum-gl_INTENSITY16_EXT = 0x804D-gl_TEXTURE28 :: GLenum-gl_TEXTURE28 = 0x84DC-gl_COMPRESSED_RGBA_ASTC_4x4_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0-gl_SRGB_READ :: GLenum-gl_SRGB_READ = 0x8297-gl_LUMINANCE16_ALPHA16_SNORM :: GLenum-gl_LUMINANCE16_ALPHA16_SNORM = 0x901A-gl_UNSIGNED_INT_IMAGE_1D_ARRAY :: GLenum-gl_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068-gl_ELEMENT_ARRAY_TYPE_ATI :: GLenum-gl_ELEMENT_ARRAY_TYPE_ATI = 0x8769-gl_PATCH_DEFAULT_OUTER_LEVEL :: GLenum-gl_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74-gl_LINE_STRIP_ADJACENCY_ARB :: GLenum-gl_LINE_STRIP_ADJACENCY_ARB = 0x000B-gl_POLYGON_OFFSET_POINT :: GLenum-gl_POLYGON_OFFSET_POINT = 0x2A01-gl_UNSIGNED_SHORT_8_8_APPLE :: GLenum-gl_UNSIGNED_SHORT_8_8_APPLE = 0x85BA-gl_DYNAMIC_ATI :: GLenum-gl_DYNAMIC_ATI = 0x8761-gl_UNSIGNED_INT16_NV :: GLenum-gl_UNSIGNED_INT16_NV = 0x8FF0-gl_TEXTURE_BINDING_BUFFER_EXT :: GLenum-gl_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C-gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB :: GLenum-gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A-gl_MAP2_VERTEX_ATTRIB14_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E-gl_COMPRESSED_RGB :: GLenum-gl_COMPRESSED_RGB = 0x84ED-gl_VERTEX_ATTRIB_ARRAY0_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY0_NV = 0x8650-gl_MIN :: GLenum-gl_MIN = 0x8007-gl_COLOR_SUM :: GLenum-gl_COLOR_SUM = 0x8458-gl_ATC_RGBA_INTERPOLATED_ALPHA_AMD :: GLenum-gl_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE-gl_RECIP_ADD_SIGNED_ALPHA_IMG :: GLenum-gl_RECIP_ADD_SIGNED_ALPHA_IMG = 0x8C05-gl_FONT_MAX_ADVANCE_WIDTH_BIT_NV :: GLenum-gl_FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000-gl_SPRITE_AXIAL_SGIX :: GLenum-gl_SPRITE_AXIAL_SGIX = 0x814C-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3-gl_TEXTURE_ENV_BIAS_SGIX :: GLenum-gl_TEXTURE_ENV_BIAS_SGIX = 0x80BE-gl_PROGRAM_FORMAT_ASCII_ARB :: GLenum-gl_PROGRAM_FORMAT_ASCII_ARB = 0x8875-gl_OUTPUT_COLOR1_EXT :: GLenum-gl_OUTPUT_COLOR1_EXT = 0x879C-gl_SELECTION_BUFFER_SIZE :: GLenum-gl_SELECTION_BUFFER_SIZE = 0x0DF4-gl_VERTEX_ATTRIB_MAP2_ORDER_APPLE :: GLenum-gl_VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08-gl_INTENSITY_FLOAT16_ATI :: GLenum-gl_INTENSITY_FLOAT16_ATI = 0x881D-gl_TEXTURE30_ARB :: GLenum-gl_TEXTURE30_ARB = 0x84DE-gl_TEXTURE_1D_STACK_MESAX :: GLenum-gl_TEXTURE_1D_STACK_MESAX = 0x8759-gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE :: GLenum-gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A-gl_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM :: GLenum-gl_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087-gl_SIGNED_HILO_NV :: GLenum-gl_SIGNED_HILO_NV = 0x86F9-gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT :: GLenum-gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004-gl_ACTIVE_ATTRIBUTE_MAX_LENGTH :: GLenum-gl_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A-gl_IMAGE_2D_RECT_EXT :: GLenum-gl_IMAGE_2D_RECT_EXT = 0x904F-gl_TESS_GEN_MODE :: GLenum-gl_TESS_GEN_MODE = 0x8E76-gl_TEXTURE_MIN_FILTER :: GLenum-gl_TEXTURE_MIN_FILTER = 0x2801-gl_FLOAT_VEC4 :: GLenum-gl_FLOAT_VEC4 = 0x8B52-gl_LIGHT2 :: GLenum-gl_LIGHT2 = 0x4002-gl_MODELVIEW24_ARB :: GLenum-gl_MODELVIEW24_ARB = 0x8738-gl_TESS_EVALUATION_SHADER :: GLenum-gl_TESS_EVALUATION_SHADER = 0x8E87-gl_PROXY_COLOR_TABLE_SGI :: GLenum-gl_PROXY_COLOR_TABLE_SGI = 0x80D3-gl_INDEX_ARRAY_EXT :: GLenum-gl_INDEX_ARRAY_EXT = 0x8077-gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F-gl_FRAGMENT_INPUT_NV :: GLenum-gl_FRAGMENT_INPUT_NV = 0x936D-gl_CON_13_ATI :: GLenum-gl_CON_13_ATI = 0x894E-gl_IMAGE_ROTATE_ORIGIN_Y_HP :: GLenum-gl_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B-gl_VERTEX_ARRAY_COUNT_EXT :: GLenum-gl_VERTEX_ARRAY_COUNT_EXT = 0x807D-gl_STENCIL_INDEX1_OES :: GLenum-gl_STENCIL_INDEX1_OES = 0x8D46-gl_BUFFER_DATA_SIZE :: GLenum-gl_BUFFER_DATA_SIZE = 0x9303-gl_MAX_NAME_STACK_DEPTH :: GLenum-gl_MAX_NAME_STACK_DEPTH = 0x0D37-gl_SAMPLES_PASSED_ARB :: GLenum-gl_SAMPLES_PASSED_ARB = 0x8914-gl_TEXTURE_PRE_SPECULAR_HP :: GLenum-gl_TEXTURE_PRE_SPECULAR_HP = 0x8169-gl_RESCALE_NORMAL_EXT :: GLenum-gl_RESCALE_NORMAL_EXT = 0x803A-gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY :: GLenum-gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A-gl_TRANSLATE_2D_NV :: GLenum-gl_TRANSLATE_2D_NV = 0x9090-gl_QUAD_INTENSITY8_SGIS :: GLenum-gl_QUAD_INTENSITY8_SGIS = 0x8123-gl_LOCATION_INDEX :: GLenum-gl_LOCATION_INDEX = 0x930F-gl_MODELVIEW9_ARB :: GLenum-gl_MODELVIEW9_ARB = 0x8729-gl_CONTEXT_RELEASE_BEHAVIOR_KHR :: GLenum-gl_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB-gl_EDGE_FLAG_ARRAY_BUFFER_BINDING :: GLenum-gl_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B-gl_DEBUG_TYPE_PERFORMANCE_KHR :: GLenum-gl_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250-gl_POINT_DISTANCE_ATTENUATION :: GLenum-gl_POINT_DISTANCE_ATTENUATION = 0x8129-gl_PIXEL_TILE_GRID_HEIGHT_SGIX :: GLenum-gl_PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143-gl_COLOR_ATTACHMENT3 :: GLenum-gl_COLOR_ATTACHMENT3 = 0x8CE3-gl_COUNT_UP_NV :: GLenum-gl_COUNT_UP_NV = 0x9088-gl_STENCIL_BACK_VALUE_MASK :: GLenum-gl_STENCIL_BACK_VALUE_MASK = 0x8CA4-gl_PERFQUERY_DONOT_FLUSH_INTEL :: GLenum-gl_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9-gl_VARIABLE_F_NV :: GLenum-gl_VARIABLE_F_NV = 0x8528-gl_STENCIL_BACK_PASS_DEPTH_FAIL :: GLenum-gl_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802-gl_IMAGE_CUBIC_WEIGHT_HP :: GLenum-gl_IMAGE_CUBIC_WEIGHT_HP = 0x815E-gl_STENCIL :: GLenum-gl_STENCIL = 0x1802-gl_DRAW_BUFFER6_ARB :: GLenum-gl_DRAW_BUFFER6_ARB = 0x882B-gl_MAX_COMBINED_IMAGE_UNIFORMS :: GLenum-gl_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF-gl_PROGRAM_STRING_NV :: GLenum-gl_PROGRAM_STRING_NV = 0x8628-gl_STREAM_DRAW :: GLenum-gl_STREAM_DRAW = 0x88E0-gl_BGR_INTEGER_EXT :: GLenum-gl_BGR_INTEGER_EXT = 0x8D9A-gl_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES :: GLenum-gl_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E-gl_LAYER_PROVOKING_VERTEX :: GLenum-gl_LAYER_PROVOKING_VERTEX = 0x825E-gl_TEXTURE_ALPHA_SIZE_EXT :: GLenum-gl_TEXTURE_ALPHA_SIZE_EXT = 0x805F-gl_QUERY_DEPTH_PASS_EVENT_BIT_AMD :: GLenum-gl_QUERY_DEPTH_PASS_EVENT_BIT_AMD = 0x00000001-gl_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX :: GLenum-gl_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174-gl_VIEW_CLASS_48_BITS :: GLenum-gl_VIEW_CLASS_48_BITS = 0x82C7-gl_DRAW_BUFFER15_NV :: GLenum-gl_DRAW_BUFFER15_NV = 0x8834-gl_MAX_LABEL_LENGTH_KHR :: GLenum-gl_MAX_LABEL_LENGTH_KHR = 0x82E8-gl_DEBUG_TYPE_PERFORMANCE :: GLenum-gl_DEBUG_TYPE_PERFORMANCE = 0x8250-gl_DEPENDENT_RGB_TEXTURE_3D_NV :: GLenum-gl_DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859-gl_MAX_GEOMETRY_ATOMIC_COUNTERS :: GLenum-gl_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5-gl_DRAW_BUFFER10_ARB :: GLenum-gl_DRAW_BUFFER10_ARB = 0x882F-gl_FONT_UNDERLINE_THICKNESS_BIT_NV :: GLenum-gl_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000-gl_DRAW_BUFFER7 :: GLenum-gl_DRAW_BUFFER7 = 0x882C-gl_TEXTURE_GREEN_TYPE_ARB :: GLenum-gl_TEXTURE_GREEN_TYPE_ARB = 0x8C11-gl_TEXTURE_MIN_LOD_SGIS :: GLenum-gl_TEXTURE_MIN_LOD_SGIS = 0x813A-gl_UNSIGNED_INT_SAMPLER_BUFFER_EXT :: GLenum-gl_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8-gl_ELEMENT_ARRAY_BARRIER_BIT_EXT :: GLenum-gl_ELEMENT_ARRAY_BARRIER_BIT_EXT = 0x00000002-gl_SAMPLE_COVERAGE_VALUE :: GLenum-gl_SAMPLE_COVERAGE_VALUE = 0x80AA-gl_VERTEX_ATTRIB_RELATIVE_OFFSET :: GLenum-gl_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5-gl_COLOR_TABLE_RED_SIZE :: GLenum-gl_COLOR_TABLE_RED_SIZE = 0x80DA-gl_TRANSFORM_FEEDBACK_BUFFER_START_NV :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84-gl_NAME_STACK_DEPTH :: GLenum-gl_NAME_STACK_DEPTH = 0x0D70-gl_UNSIGNED_INT_5_9_9_9_REV :: GLenum-gl_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E-gl_FUNC_SUBTRACT_EXT :: GLenum-gl_FUNC_SUBTRACT_EXT = 0x800A-gl_STENCIL_INDEX4_EXT :: GLenum-gl_STENCIL_INDEX4_EXT = 0x8D47-gl_TEXTURE_COMPRESSION_HINT :: GLenum-gl_TEXTURE_COMPRESSION_HINT = 0x84EF-gl_DEPTH_CLAMP :: GLenum-gl_DEPTH_CLAMP = 0x864F-gl_SAMPLE_COVERAGE_INVERT :: GLenum-gl_SAMPLE_COVERAGE_INVERT = 0x80AB-gl_DRAW_BUFFER0_EXT :: GLenum-gl_DRAW_BUFFER0_EXT = 0x8825-gl_DRAW_BUFFER4 :: GLenum-gl_DRAW_BUFFER4 = 0x8829-gl_ALPHA_FLOAT16_ATI :: GLenum-gl_ALPHA_FLOAT16_ATI = 0x881C-gl_AFFINE_2D_NV :: GLenum-gl_AFFINE_2D_NV = 0x9092-gl_MAX_TRACK_MATRICES_NV :: GLenum-gl_MAX_TRACK_MATRICES_NV = 0x862F-gl_BINORMAL_ARRAY_STRIDE_EXT :: GLenum-gl_BINORMAL_ARRAY_STRIDE_EXT = 0x8441-gl_UNSIGNED_SHORT_1_5_5_5_REV :: GLenum-gl_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366-gl_ROUNDED_RECT4_NV :: GLenum-gl_ROUNDED_RECT4_NV = 0xEC-gl_COMMAND_BARRIER_BIT_EXT :: GLenum-gl_COMMAND_BARRIER_BIT_EXT = 0x00000040-gl_TEXTURE_ENV_COLOR :: GLenum-gl_TEXTURE_ENV_COLOR = 0x2201-gl_READ_WRITE_ARB :: GLenum-gl_READ_WRITE_ARB = 0x88BA-gl_RGBA8_EXT :: GLenum-gl_RGBA8_EXT = 0x8058-gl_EVAL_VERTEX_ATTRIB10_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB10_NV = 0x86D0-gl_POST_CONVOLUTION_RED_BIAS :: GLenum-gl_POST_CONVOLUTION_RED_BIAS = 0x8020-gl_INT16_VEC4_NV :: GLenum-gl_INT16_VEC4_NV = 0x8FE7-gl_COLOR_SUM_ARB :: GLenum-gl_COLOR_SUM_ARB = 0x8458-gl_OUTPUT_TEXTURE_COORD5_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2-gl_COMPRESSED_RGBA_ASTC_12x10_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC-gl_MAX_ELEMENTS_INDICES :: GLenum-gl_MAX_ELEMENTS_INDICES = 0x80E9-gl_REFERENCED_BY_FRAGMENT_SHADER :: GLenum-gl_REFERENCED_BY_FRAGMENT_SHADER = 0x930A-gl_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB :: GLenum-gl_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = 0x9344-gl_WEIGHT_ARRAY_ARB :: GLenum-gl_WEIGHT_ARRAY_ARB = 0x86AD-gl_TIME_ELAPSED_EXT :: GLenum-gl_TIME_ELAPSED_EXT = 0x88BF-gl_BACK_SECONDARY_COLOR_NV :: GLenum-gl_BACK_SECONDARY_COLOR_NV = 0x8C78-gl_COMPARE_REF_TO_TEXTURE_EXT :: GLenum-gl_COMPARE_REF_TO_TEXTURE_EXT = 0x884E-gl_IS_PER_PATCH_EXT :: GLenum-gl_IS_PER_PATCH_EXT = 0x92E7-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = 0x8D56-gl_TEXTURE_LUMINANCE_SIZE_EXT :: GLenum-gl_TEXTURE_LUMINANCE_SIZE_EXT = 0x8060-gl_COVERAGE_BUFFERS_NV :: GLenum-gl_COVERAGE_BUFFERS_NV = 0x8ED3-gl_MATRIX5_ARB :: GLenum-gl_MATRIX5_ARB = 0x88C5-gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT :: GLenum-gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56-gl_COMPRESSED_RGBA_ASTC_5x5x4_OES :: GLenum-gl_COMPRESSED_RGBA_ASTC_5x5x4_OES = 0x93C5-gl_CONVOLUTION_FILTER_BIAS :: GLenum-gl_CONVOLUTION_FILTER_BIAS = 0x8015-gl_TRACE_PRIMITIVES_BIT_MESA :: GLenum-gl_TRACE_PRIMITIVES_BIT_MESA = 0x0002-gl_POINT_SPRITE :: GLenum-gl_POINT_SPRITE = 0x8861-gl_POLYGON_STIPPLE_BIT :: GLenum-gl_POLYGON_STIPPLE_BIT = 0x00000010-gl_DEBUG_SEVERITY_HIGH :: GLenum-gl_DEBUG_SEVERITY_HIGH = 0x9146-gl_RENDERBUFFER_STENCIL_SIZE_EXT :: GLenum-gl_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55-gl_RED :: GLenum-gl_RED = 0x1903-gl_DRAW_BUFFER12_NV :: GLenum-gl_DRAW_BUFFER12_NV = 0x8831-gl_COMPRESSED_RGBA_ASTC_10x10_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB-gl_ACTIVE_TEXTURE :: GLenum-gl_ACTIVE_TEXTURE = 0x84E0-gl_Q :: GLenum-gl_Q = 0x2003-gl_STRICT_LIGHTING_HINT_PGI :: GLenum-gl_STRICT_LIGHTING_HINT_PGI = 0x1A217-gl_INT8_VEC2_NV :: GLenum-gl_INT8_VEC2_NV = 0x8FE1-gl_MAP2_VERTEX_ATTRIB0_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670-gl_SHADER_SOURCE_LENGTH :: GLenum-gl_SHADER_SOURCE_LENGTH = 0x8B88-gl_FLOAT_MAT4 :: GLenum-gl_FLOAT_MAT4 = 0x8B5C-gl_COLOR_MATRIX_SGI :: GLenum-gl_COLOR_MATRIX_SGI = 0x80B1-gl_SAMPLER_2D_ARRAY_EXT :: GLenum-gl_SAMPLER_2D_ARRAY_EXT = 0x8DC1-gl_MODULATE_SUBTRACT_ATI :: GLenum-gl_MODULATE_SUBTRACT_ATI = 0x8746-gl_TRIANGLES_ADJACENCY_ARB :: GLenum-gl_TRIANGLES_ADJACENCY_ARB = 0x000C-gl_PROGRAM_TARGET_NV :: GLenum-gl_PROGRAM_TARGET_NV = 0x8646-gl_GEOMETRY_SHADER_ARB :: GLenum-gl_GEOMETRY_SHADER_ARB = 0x8DD9-gl_TEXTURE_BASE_LEVEL_SGIS :: GLenum-gl_TEXTURE_BASE_LEVEL_SGIS = 0x813C-gl_1PASS_SGIS :: GLenum-gl_1PASS_SGIS = 0x80A1-gl_TEXTURE_HEIGHT_QCOM :: GLenum-gl_TEXTURE_HEIGHT_QCOM = 0x8BD3-gl_LUMINANCE12_ALPHA4_EXT :: GLenum-gl_LUMINANCE12_ALPHA4_EXT = 0x8046-gl_PIXEL_TILE_HEIGHT_SGIX :: GLenum-gl_PIXEL_TILE_HEIGHT_SGIX = 0x8141-gl_UNSIGNED_INT_S8_S8_8_8_NV :: GLenum-gl_UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA-gl_SOURCE0_RGB :: GLenum-gl_SOURCE0_RGB = 0x8580-gl_DRAW_BUFFER6_EXT :: GLenum-gl_DRAW_BUFFER6_EXT = 0x882B-gl_PATH_FILL_BOUNDING_BOX_NV :: GLenum-gl_PATH_FILL_BOUNDING_BOX_NV = 0x90A1-gl_RENDER_MODE :: GLenum-gl_RENDER_MODE = 0x0C40-gl_X_EXT :: GLenum-gl_X_EXT = 0x87D5-gl_CON_14_ATI :: GLenum-gl_CON_14_ATI = 0x894F-gl_TRIANGLE_STRIP_ADJACENCY :: GLenum-gl_TRIANGLE_STRIP_ADJACENCY = 0x000D-gl_ROUNDED_RECT_NV :: GLenum-gl_ROUNDED_RECT_NV = 0xE8-gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB :: GLenum-gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87-gl_DSDT_MAG_INTENSITY_NV :: GLenum-gl_DSDT_MAG_INTENSITY_NV = 0x86DC-gl_MODELVIEW13_ARB :: GLenum-gl_MODELVIEW13_ARB = 0x872D-gl_MAX_COMBINED_CLIP_AND_CULL_DISTANCES :: GLenum-gl_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA-gl_CLIP_ORIGIN :: GLenum-gl_CLIP_ORIGIN = 0x935C-gl_PATH_CLIENT_LENGTH_NV :: GLenum-gl_PATH_CLIENT_LENGTH_NV = 0x907F-gl_SAMPLE_ALPHA_TO_ONE_ARB :: GLenum-gl_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F-gl_RENDERBUFFER_INTERNAL_FORMAT_OES :: GLenum-gl_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44-gl_POINT_SPRITE_ARB :: GLenum-gl_POINT_SPRITE_ARB = 0x8861-gl_FLOAT_MAT3_ARB :: GLenum-gl_FLOAT_MAT3_ARB = 0x8B5B-gl_IMAGE_CLASS_4_X_8 :: GLenum-gl_IMAGE_CLASS_4_X_8 = 0x82BF-gl_PIXEL_SUBSAMPLE_4242_SGIX :: GLenum-gl_PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT :: GLenum-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D-gl_ROUNDED_RECT8_NV :: GLenum-gl_ROUNDED_RECT8_NV = 0xEE-gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING :: GLenum-gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D-gl_DST_NV :: GLenum-gl_DST_NV = 0x9287-gl_MAX_TRANSFORM_FEEDBACK_BUFFERS :: GLenum-gl_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70-gl_FUNC_ADD_OES :: GLenum-gl_FUNC_ADD_OES = 0x8006-gl_VERTEX_STREAM7_ATI :: GLenum-gl_VERTEX_STREAM7_ATI = 0x8773-gl_RG_EXT :: GLenum-gl_RG_EXT = 0x8227-gl_STENCIL_BACK_PASS_DEPTH_PASS :: GLenum-gl_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803-gl_FRAMEBUFFER_RENDERABLE_LAYERED :: GLenum-gl_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A-gl_MAP2_VERTEX_ATTRIB1_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671-gl_DRAW_BUFFER2_ATI :: GLenum-gl_DRAW_BUFFER2_ATI = 0x8827-gl_RGBA_FLOAT16_ATI :: GLenum-gl_RGBA_FLOAT16_ATI = 0x881A-gl_EVAL_VERTEX_ATTRIB13_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB13_NV = 0x86D3-gl_DRAW_BUFFER15_ATI :: GLenum-gl_DRAW_BUFFER15_ATI = 0x8834-gl_MAP_WRITE_BIT :: GLenum-gl_MAP_WRITE_BIT = 0x0002-gl_DOT3_RGBA :: GLenum-gl_DOT3_RGBA = 0x86AF-gl_MAT_SHININESS_BIT_PGI :: GLenum-gl_MAT_SHININESS_BIT_PGI = 0x02000000-gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN :: GLenum-gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88-gl_MAX_TRACK_MATRIX_STACK_DEPTH_NV :: GLenum-gl_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E-gl_MATRIX30_ARB :: GLenum-gl_MATRIX30_ARB = 0x88DE-gl_STENCIL_TEST :: GLenum-gl_STENCIL_TEST = 0x0B90-gl_MAX_INTEGER_SAMPLES :: GLenum-gl_MAX_INTEGER_SAMPLES = 0x9110-gl_COPY_READ_BUFFER_BINDING :: GLenum-gl_COPY_READ_BUFFER_BINDING = 0x8F36-gl_TRANSFORM_FEEDBACK_BUFFER :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E-gl_LUMINANCE_FLOAT16_APPLE :: GLenum-gl_LUMINANCE_FLOAT16_APPLE = 0x881E-gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS :: GLenum-gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89-gl_MAX_VERTEX_UNIFORM_VECTORS :: GLenum-gl_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB-gl_WRITE_PIXEL_DATA_RANGE_LENGTH_NV :: GLenum-gl_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A-gl_SAMPLER_RENDERBUFFER_NV :: GLenum-gl_SAMPLER_RENDERBUFFER_NV = 0x8E56-gl_DRAW_BUFFER13_NV :: GLenum-gl_DRAW_BUFFER13_NV = 0x8832-gl_RGB32F_ARB :: GLenum-gl_RGB32F_ARB = 0x8815-gl_FRAGMENT_LIGHT5_SGIX :: GLenum-gl_FRAGMENT_LIGHT5_SGIX = 0x8411-gl_MAX_GENERAL_COMBINERS_NV :: GLenum-gl_MAX_GENERAL_COMBINERS_NV = 0x854D-gl_TRANSPOSE_TEXTURE_MATRIX_ARB :: GLenum-gl_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5-gl_OPERAND1_ALPHA_ARB :: GLenum-gl_OPERAND1_ALPHA_ARB = 0x8599-gl_COLOR_ATTACHMENT12 :: GLenum-gl_COLOR_ATTACHMENT12 = 0x8CEC-gl_GREEN_MAX_CLAMP_INGR :: GLenum-gl_GREEN_MAX_CLAMP_INGR = 0x8565-gl_PATH_PROJECTION_STACK_DEPTH_NV :: GLenum-gl_PATH_PROJECTION_STACK_DEPTH_NV = 0x0BA4-gl_MAP2_COLOR_4 :: GLenum-gl_MAP2_COLOR_4 = 0x0DB0-gl_COLOR_SUM_EXT :: GLenum-gl_COLOR_SUM_EXT = 0x8458-gl_CLAMP_FRAGMENT_COLOR_ARB :: GLenum-gl_CLAMP_FRAGMENT_COLOR_ARB = 0x891B-gl_INDEX_BITS :: GLenum-gl_INDEX_BITS = 0x0D51-gl_CON_15_ATI :: GLenum-gl_CON_15_ATI = 0x8950-gl_BLEND_OVERLAP_NV :: GLenum-gl_BLEND_OVERLAP_NV = 0x9281-gl_DS_SCALE_NV :: GLenum-gl_DS_SCALE_NV = 0x8710-gl_CURRENT_PALETTE_MATRIX_ARB :: GLenum-gl_CURRENT_PALETTE_MATRIX_ARB = 0x8843-gl_IMAGE_BINDING_LAYER_EXT :: GLenum-gl_IMAGE_BINDING_LAYER_EXT = 0x8F3D-gl_WEIGHT_SUM_UNITY_ARB :: GLenum-gl_WEIGHT_SUM_UNITY_ARB = 0x86A6-gl_ALPHA32I_EXT :: GLenum-gl_ALPHA32I_EXT = 0x8D84-gl_SHADER_STORAGE_BUFFER_SIZE :: GLenum-gl_SHADER_STORAGE_BUFFER_SIZE = 0x90D5-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER :: GLenum-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED-gl_MAX_UNIFORM_LOCATIONS :: GLenum-gl_MAX_UNIFORM_LOCATIONS = 0x826E-gl_DEBUG_SOURCE_OTHER_KHR :: GLenum-gl_DEBUG_SOURCE_OTHER_KHR = 0x824B-gl_FRACTIONAL_EVEN :: GLenum-gl_FRACTIONAL_EVEN = 0x8E7C-gl_MIN_PROGRAM_TEXEL_OFFSET :: GLenum-gl_MIN_PROGRAM_TEXEL_OFFSET = 0x8904-gl_WEIGHT_ARRAY_OES :: GLenum-gl_WEIGHT_ARRAY_OES = 0x86AD-gl_RESET_NOTIFICATION_STRATEGY_KHR :: GLenum-gl_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256-gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV :: GLenum-gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4-gl_RGB2_EXT :: GLenum-gl_RGB2_EXT = 0x804E-gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT :: GLenum-gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001-gl_ELEMENT_ARRAY_BUFFER :: GLenum-gl_ELEMENT_ARRAY_BUFFER = 0x8893-gl_MEDIUM_FLOAT :: GLenum-gl_MEDIUM_FLOAT = 0x8DF1-gl_SAMPLER_1D_SHADOW_ARB :: GLenum-gl_SAMPLER_1D_SHADOW_ARB = 0x8B61-gl_DRAW_BUFFER5 :: GLenum-gl_DRAW_BUFFER5 = 0x882A-gl_PARALLEL_ARRAYS_INTEL :: GLenum-gl_PARALLEL_ARRAYS_INTEL = 0x83F4-gl_REG_24_ATI :: GLenum-gl_REG_24_ATI = 0x8939-gl_DEPTH_STENCIL_TO_BGRA_NV :: GLenum-gl_DEPTH_STENCIL_TO_BGRA_NV = 0x886F-gl_MAX_FRAMEBUFFER_WIDTH :: GLenum-gl_MAX_FRAMEBUFFER_WIDTH = 0x9315-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = 0x93E3-gl_POLYGON_OFFSET_FILL :: GLenum-gl_POLYGON_OFFSET_FILL = 0x8037-gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518-gl_TEXTURE_GEN_T :: GLenum-gl_TEXTURE_GEN_T = 0x0C61-gl_TEXTURE_POST_SPECULAR_HP :: GLenum-gl_TEXTURE_POST_SPECULAR_HP = 0x8168-gl_TEXTURE_CUBE_MAP_NEGATIVE_X_OES :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516-gl_MAGNITUDE_SCALE_NV :: GLenum-gl_MAGNITUDE_SCALE_NV = 0x8712-gl_VERTEX_SHADER_LOCALS_EXT :: GLenum-gl_VERTEX_SHADER_LOCALS_EXT = 0x87D3-gl_INT_2_10_10_10_REV :: GLenum-gl_INT_2_10_10_10_REV = 0x8D9F-gl_DOUBLE_MAT3x2_EXT :: GLenum-gl_DOUBLE_MAT3x2_EXT = 0x8F4B-gl_DISCARD_NV :: GLenum-gl_DISCARD_NV = 0x8530-gl_MATRIX13_ARB :: GLenum-gl_MATRIX13_ARB = 0x88CD-gl_GENERATE_MIPMAP_HINT :: GLenum-gl_GENERATE_MIPMAP_HINT = 0x8192-gl_MAX_PIXEL_MAP_TABLE :: GLenum-gl_MAX_PIXEL_MAP_TABLE = 0x0D34-gl_SHADER_STORAGE_BUFFER :: GLenum-gl_SHADER_STORAGE_BUFFER = 0x90D2-gl_BUFFER_UPDATE_BARRIER_BIT :: GLenum-gl_BUFFER_UPDATE_BARRIER_BIT = 0x00000200-gl_FRAMEBUFFER_BINDING_OES :: GLenum-gl_FRAMEBUFFER_BINDING_OES = 0x8CA6-gl_CONTEXT_PROFILE_MASK :: GLenum-gl_CONTEXT_PROFILE_MASK = 0x9126-gl_MAX_VIEWPORTS :: GLenum-gl_MAX_VIEWPORTS = 0x825B-gl_DRAW_BUFFER4_ARB :: GLenum-gl_DRAW_BUFFER4_ARB = 0x8829-gl_RESAMPLE_DECIMATE_SGIX :: GLenum-gl_RESAMPLE_DECIMATE_SGIX = 0x8430-gl_SHADER_OBJECT_ARB :: GLenum-gl_SHADER_OBJECT_ARB = 0x8B48-gl_SYNC_FLAGS_APPLE :: GLenum-gl_SYNC_FLAGS_APPLE = 0x9115-gl_Z4Y12Z4CB12Z4CR12_444_NV :: GLenum-gl_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037-gl_VERTEX_ARRAY_LENGTH_NV :: GLenum-gl_VERTEX_ARRAY_LENGTH_NV = 0x8F2B-gl_FOG_COORDINATE_ARRAY_LIST_IBM :: GLenum-gl_FOG_COORDINATE_ARRAY_LIST_IBM = 103076-gl_FRAMEBUFFER_DEFAULT_SAMPLES :: GLenum-gl_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313-gl_FLAT :: GLenum-gl_FLAT = 0x1D00-gl_REG_2_ATI :: GLenum-gl_REG_2_ATI = 0x8923-gl_VIEWPORT_BIT :: GLenum-gl_VIEWPORT_BIT = 0x00000800-gl_TEXTURE_VIEW_MIN_LEVEL_EXT :: GLenum-gl_TEXTURE_VIEW_MIN_LEVEL_EXT = 0x82DB-gl_FRACTIONAL_ODD_EXT :: GLenum-gl_FRACTIONAL_ODD_EXT = 0x8E7B-gl_VIRTUAL_PAGE_SIZE_X_ARB :: GLenum-gl_VIRTUAL_PAGE_SIZE_X_ARB = 0x9195-gl_GLOBAL_ALPHA_SUN :: GLenum-gl_GLOBAL_ALPHA_SUN = 0x81D9-gl_TEXTURE_BORDER :: GLenum-gl_TEXTURE_BORDER = 0x1005-gl_MAP2_VERTEX_ATTRIB7_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677-gl_BUFFER_ACCESS :: GLenum-gl_BUFFER_ACCESS = 0x88BB-gl_COLOR_ATTACHMENT15_EXT :: GLenum-gl_COLOR_ATTACHMENT15_EXT = 0x8CEF-gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT :: GLenum-gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CF-gl_PRIMITIVE_RESTART_FIXED_INDEX :: GLenum-gl_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69-gl_MAX_COMBINED_DIMENSIONS :: GLenum-gl_MAX_COMBINED_DIMENSIONS = 0x8282-gl_MINUS_NV :: GLenum-gl_MINUS_NV = 0x929F-gl_NORMAL_MAP_ARB :: GLenum-gl_NORMAL_MAP_ARB = 0x8511-gl_MAT_AMBIENT_BIT_PGI :: GLenum-gl_MAT_AMBIENT_BIT_PGI = 0x00100000-gl_REG_14_ATI :: GLenum-gl_REG_14_ATI = 0x892F-gl_SECONDARY_INTERPOLATOR_ATI :: GLenum-gl_SECONDARY_INTERPOLATOR_ATI = 0x896D-gl_FRAGMENT_SHADER_BIT_EXT :: GLenum-gl_FRAGMENT_SHADER_BIT_EXT = 0x00000002-gl_CON_20_ATI :: GLenum-gl_CON_20_ATI = 0x8955-gl_DYNAMIC_DRAW :: GLenum-gl_DYNAMIC_DRAW = 0x88E8-gl_STENCIL_INDEX1 :: GLenum-gl_STENCIL_INDEX1 = 0x8D46-gl_DEPTH_COMPONENTS :: GLenum-gl_DEPTH_COMPONENTS = 0x8284-gl_SEPARATE_SPECULAR_COLOR_EXT :: GLenum-gl_SEPARATE_SPECULAR_COLOR_EXT = 0x81FA-gl_CONSTANT_COLOR0_NV :: GLenum-gl_CONSTANT_COLOR0_NV = 0x852A-gl_LUMINANCE16I_EXT :: GLenum-gl_LUMINANCE16I_EXT = 0x8D8C-gl_TEXTURE_COORD_ARRAY_SIZE_EXT :: GLenum-gl_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088-gl_BLEND_DST_RGB :: GLenum-gl_BLEND_DST_RGB = 0x80C8-gl_VARIABLE_C_NV :: GLenum-gl_VARIABLE_C_NV = 0x8525-gl_INT_VEC2_ARB :: GLenum-gl_INT_VEC2_ARB = 0x8B53-gl_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX :: GLenum-gl_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178-gl_PIXEL_MAP_G_TO_G_SIZE :: GLenum-gl_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7-gl_BLUE_MIN_CLAMP_INGR :: GLenum-gl_BLUE_MIN_CLAMP_INGR = 0x8562-gl_RETURN :: GLenum-gl_RETURN = 0x0102-gl_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD :: GLenum-gl_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD = 0x9160-gl_DOUBLE :: GLenum-gl_DOUBLE = 0x140A-gl_COMBINE4_NV :: GLenum-gl_COMBINE4_NV = 0x8503-gl_IMAGE_ROTATE_ORIGIN_X_HP :: GLenum-gl_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A-gl_COMBINER5_NV :: GLenum-gl_COMBINER5_NV = 0x8555-gl_SYNC_CONDITION :: GLenum-gl_SYNC_CONDITION = 0x9113-gl_DEBUG_LOGGED_MESSAGES_ARB :: GLenum-gl_DEBUG_LOGGED_MESSAGES_ARB = 0x9145-gl_REG_15_ATI :: GLenum-gl_REG_15_ATI = 0x8930-gl_BUFFER_MAP_POINTER_OES :: GLenum-gl_BUFFER_MAP_POINTER_OES = 0x88BD-gl_SM_COUNT_NV :: GLenum-gl_SM_COUNT_NV = 0x933B-gl_MAX_FRAMEBUFFER_HEIGHT :: GLenum-gl_MAX_FRAMEBUFFER_HEIGHT = 0x9316-gl_INCR_WRAP_OES :: GLenum-gl_INCR_WRAP_OES = 0x8507-gl_GCCSO_SHADER_BINARY_FJ :: GLenum-gl_GCCSO_SHADER_BINARY_FJ = 0x9260-gl_DRAW_BUFFER4_NV :: GLenum-gl_DRAW_BUFFER4_NV = 0x8829-gl_RGB565 :: GLenum-gl_RGB565 = 0x8D62-gl_WRITE_PIXEL_DATA_RANGE_NV :: GLenum-gl_WRITE_PIXEL_DATA_RANGE_NV = 0x8878-gl_UNIFORM_OFFSET :: GLenum-gl_UNIFORM_OFFSET = 0x8A3B-gl_UNSIGNED_INT64_ARB :: GLenum-gl_UNSIGNED_INT64_ARB = 0x140F-gl_STENCIL_RENDERABLE :: GLenum-gl_STENCIL_RENDERABLE = 0x8288-gl_COMPRESSED_RGBA_BPTC_UNORM :: GLenum-gl_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C-gl_FLOAT_R32_NV :: GLenum-gl_FLOAT_R32_NV = 0x8885-gl_TEXTURE_CLIPMAP_OFFSET_SGIX :: GLenum-gl_TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173-gl_TEXTURE_IMAGE_VALID_QCOM :: GLenum-gl_TEXTURE_IMAGE_VALID_QCOM = 0x8BD8-gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279-gl_IMAGE_PIXEL_TYPE :: GLenum-gl_IMAGE_PIXEL_TYPE = 0x82AA-gl_EDGE_FLAG_ARRAY_STRIDE :: GLenum-gl_EDGE_FLAG_ARRAY_STRIDE = 0x808C-gl_RED_SCALE :: GLenum-gl_RED_SCALE = 0x0D14-gl_RENDERBUFFER_ALPHA_SIZE_OES :: GLenum-gl_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53-gl_CLIP_DISTANCE7 :: GLenum-gl_CLIP_DISTANCE7 = 0x3007-gl_INTENSITY32UI_EXT :: GLenum-gl_INTENSITY32UI_EXT = 0x8D73-gl_DEBUG_SOURCE_WINDOW_SYSTEM_KHR :: GLenum-gl_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247-gl_PN_TRIANGLES_ATI :: GLenum-gl_PN_TRIANGLES_ATI = 0x87F0-gl_LIGHT5 :: GLenum-gl_LIGHT5 = 0x4005-gl_QUERY_RESULT_ARB :: GLenum-gl_QUERY_RESULT_ARB = 0x8866-gl_LUMINANCE16 :: GLenum-gl_LUMINANCE16 = 0x8042-gl_ALPHA_TEST_QCOM :: GLenum-gl_ALPHA_TEST_QCOM = 0x0BC0-gl_TEXTURE_BORDER_COLOR_NV :: GLenum-gl_TEXTURE_BORDER_COLOR_NV = 0x1004-gl_CULL_FRAGMENT_NV :: GLenum-gl_CULL_FRAGMENT_NV = 0x86E7-gl_PATH_GEN_MODE_NV :: GLenum-gl_PATH_GEN_MODE_NV = 0x90B0-gl_PROGRAM_POINT_SIZE_ARB :: GLenum-gl_PROGRAM_POINT_SIZE_ARB = 0x8642-gl_INTERNALFORMAT_DEPTH_TYPE :: GLenum-gl_INTERNALFORMAT_DEPTH_TYPE = 0x827C-gl_UNPACK_SKIP_ROWS :: GLenum-gl_UNPACK_SKIP_ROWS = 0x0CF3-gl_DEBUG_SEVERITY_NOTIFICATION :: GLenum-gl_DEBUG_SEVERITY_NOTIFICATION = 0x826B-gl_MAX_FRAGMENT_LIGHTS_SGIX :: GLenum-gl_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404-gl_COUNTER_TYPE_AMD :: GLenum-gl_COUNTER_TYPE_AMD = 0x8BC0-gl_TEXTURE_FETCH_BARRIER_BIT_EXT :: GLenum-gl_TEXTURE_FETCH_BARRIER_BIT_EXT = 0x00000008-gl_CURRENT_NORMAL :: GLenum-gl_CURRENT_NORMAL = 0x0B02-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = 0x93E5-gl_MULTIVIEW_EXT :: GLenum-gl_MULTIVIEW_EXT = 0x90F1-gl_TESS_GEN_VERTEX_ORDER_EXT :: GLenum-gl_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78-gl_IMAGE_SCALE_X_HP :: GLenum-gl_IMAGE_SCALE_X_HP = 0x8155-gl_TEXTURE_COLOR_TABLE_SGI :: GLenum-gl_TEXTURE_COLOR_TABLE_SGI = 0x80BC-gl_DSDT_MAG_NV :: GLenum-gl_DSDT_MAG_NV = 0x86F6-gl_Z400_BINARY_AMD :: GLenum-gl_Z400_BINARY_AMD = 0x8740-gl_COLOR_INDEX8_EXT :: GLenum-gl_COLOR_INDEX8_EXT = 0x80E5-gl_SRGB8_NV :: GLenum-gl_SRGB8_NV = 0x8C41-gl_UNSIGNED_IDENTITY_NV :: GLenum-gl_UNSIGNED_IDENTITY_NV = 0x8536-gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES :: GLenum-gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = 0x9105-gl_ALPHA_SNORM :: GLenum-gl_ALPHA_SNORM = 0x9010-gl_MAX_TEXTURE_UNITS :: GLenum-gl_MAX_TEXTURE_UNITS = 0x84E2-gl_DEBUG_SEVERITY_MEDIUM_KHR :: GLenum-gl_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147-gl_TEXTURE_RECTANGLE :: GLenum-gl_TEXTURE_RECTANGLE = 0x84F5-gl_CONTRAST_NV :: GLenum-gl_CONTRAST_NV = 0x92A1-gl_FILL :: GLenum-gl_FILL = 0x1B02-gl_BLEND_COLOR :: GLenum-gl_BLEND_COLOR = 0x8005-gl_POINT_SMOOTH_HINT :: GLenum-gl_POINT_SMOOTH_HINT = 0x0C51-gl_CONTEXT_ROBUST_ACCESS :: GLenum-gl_CONTEXT_ROBUST_ACCESS = 0x90F3-gl_FRAGMENT_PROGRAM_NV :: GLenum-gl_FRAGMENT_PROGRAM_NV = 0x8870-gl_OP_MULTIPLY_MATRIX_EXT :: GLenum-gl_OP_MULTIPLY_MATRIX_EXT = 0x8798-gl_DEPENDENT_GB_TEXTURE_2D_NV :: GLenum-gl_DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA-gl_DOUBLE_EXT :: GLenum-gl_DOUBLE_EXT = 0x140A-gl_VERTEX_PROGRAM_NV :: GLenum-gl_VERTEX_PROGRAM_NV = 0x8620-gl_PATH_END_CAPS_NV :: GLenum-gl_PATH_END_CAPS_NV = 0x9076-gl_PATH_STROKE_MASK_NV :: GLenum-gl_PATH_STROKE_MASK_NV = 0x9084-gl_SAMPLER_CUBE_SHADOW_EXT :: GLenum-gl_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5-gl_COLOR_SAMPLES_NV :: GLenum-gl_COLOR_SAMPLES_NV = 0x8E20-gl_DUAL_INTENSITY16_SGIS :: GLenum-gl_DUAL_INTENSITY16_SGIS = 0x811B-gl_IMPLEMENTATION_COLOR_READ_TYPE_OES :: GLenum-gl_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A-gl_MAX_DEBUG_GROUP_STACK_DEPTH_KHR :: GLenum-gl_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C-gl_SCISSOR_TEST :: GLenum-gl_SCISSOR_TEST = 0x0C11-gl_ADJACENT_PAIRS_NV :: GLenum-gl_ADJACENT_PAIRS_NV = 0x90AE-gl_MAX_VERTEX_ATTRIB_BINDINGS :: GLenum-gl_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA-gl_TEXTURE_GATHER :: GLenum-gl_TEXTURE_GATHER = 0x82A2-gl_LUMINANCE_ALPHA8UI_EXT :: GLenum-gl_LUMINANCE_ALPHA8UI_EXT = 0x8D81-gl_RELATIVE_ARC_TO_NV :: GLenum-gl_RELATIVE_ARC_TO_NV = 0xFF-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA-gl_TEXTURE_BINDING_CUBE_MAP_EXT :: GLenum-gl_TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514-gl_FRAGMENT_ALPHA_MODULATE_IMG :: GLenum-gl_FRAGMENT_ALPHA_MODULATE_IMG = 0x8C08-gl_CURRENT_VERTEX_EXT :: GLenum-gl_CURRENT_VERTEX_EXT = 0x87E2-gl_MAP1_VERTEX_ATTRIB11_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B-gl_MATRIX_INDEX_ARRAY_SIZE_ARB :: GLenum-gl_MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846-gl_TRANSFORM_FEEDBACK_BUFFER_MODE :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F-gl_PIXEL_TILE_CACHE_SIZE_SGIX :: GLenum-gl_PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145-gl_MODELVIEW0_EXT :: GLenum-gl_MODELVIEW0_EXT = 0x1700-gl_FONT_DESCENDER_BIT_NV :: GLenum-gl_FONT_DESCENDER_BIT_NV = 0x00400000-gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS :: GLenum-gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE-gl_RASTERIZER_DISCARD :: GLenum-gl_RASTERIZER_DISCARD = 0x8C89-gl_TRANSFORM_FEEDBACK_BUFFER_SIZE :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85-gl_MAX_DEBUG_MESSAGE_LENGTH_ARB :: GLenum-gl_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143-gl_EXTENSIONS :: GLenum-gl_EXTENSIONS = 0x1F03-gl_RESAMPLE_AVERAGE_OML :: GLenum-gl_RESAMPLE_AVERAGE_OML = 0x8988-gl_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV :: GLenum-gl_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033-gl_RELATIVE_SMALL_CCW_ARC_TO_NV :: GLenum-gl_RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13-gl_FRONT :: GLenum-gl_FRONT = 0x0404-gl_BLEND_COLOR_EXT :: GLenum-gl_BLEND_COLOR_EXT = 0x8005-gl_BUFFER_ACCESS_OES :: GLenum-gl_BUFFER_ACCESS_OES = 0x88BB-gl_MATRIX29_ARB :: GLenum-gl_MATRIX29_ARB = 0x88DD-gl_GEOMETRY_LINKED_INPUT_TYPE_EXT :: GLenum-gl_GEOMETRY_LINKED_INPUT_TYPE_EXT = 0x8917-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0-gl_COLOR_ATTACHMENT12_EXT :: GLenum-gl_COLOR_ATTACHMENT12_EXT = 0x8CEC-gl_DRAW_BUFFER1 :: GLenum-gl_DRAW_BUFFER1 = 0x8826-gl_FLOAT_32_UNSIGNED_INT_24_8_REV :: GLenum-gl_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD-gl_UNSIGNED_INT_SAMPLER_2D_RECT_EXT :: GLenum-gl_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5-gl_UNSIGNED_INT_SAMPLER_CUBE :: GLenum-gl_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4-gl_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI :: GLenum-gl_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4-gl_MAX_CULL_DISTANCES :: GLenum-gl_MAX_CULL_DISTANCES = 0x82F9-gl_TEXTURE_LOD_BIAS_S_SGIX :: GLenum-gl_TEXTURE_LOD_BIAS_S_SGIX = 0x818E-gl_SPRITE_SGIX :: GLenum-gl_SPRITE_SGIX = 0x8148-gl_VERTEX_ATTRIB_ARRAY3_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY3_NV = 0x8653-gl_QUAD_INTENSITY4_SGIS :: GLenum-gl_QUAD_INTENSITY4_SGIS = 0x8122-gl_DIFFERENCE_KHR :: GLenum-gl_DIFFERENCE_KHR = 0x929E-gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT :: GLenum-gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9-gl_VOLATILE_APPLE :: GLenum-gl_VOLATILE_APPLE = 0x8A1A-gl_MAT_EMISSION_BIT_PGI :: GLenum-gl_MAT_EMISSION_BIT_PGI = 0x00800000-gl_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV :: GLenum-gl_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = 0x8C75-gl_DRAW_FRAMEBUFFER_BINDING :: GLenum-gl_DRAW_FRAMEBUFFER_BINDING = 0x8CA6-gl_TEXTURE8 :: GLenum-gl_TEXTURE8 = 0x84C8-gl_MUL_ATI :: GLenum-gl_MUL_ATI = 0x8964-gl_PROGRAM_OBJECT_EXT :: GLenum-gl_PROGRAM_OBJECT_EXT = 0x8B40-gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB :: GLenum-gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810-gl_MATRIX_INDEX_ARRAY_TYPE_ARB :: GLenum-gl_MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847-gl_PIXEL_MAG_FILTER_EXT :: GLenum-gl_PIXEL_MAG_FILTER_EXT = 0x8331-gl_LESS :: GLenum-gl_LESS = 0x0201-gl_SOURCE2_RGB_ARB :: GLenum-gl_SOURCE2_RGB_ARB = 0x8582-gl_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH :: GLenum-gl_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35-gl_PATH_STENCIL_VALUE_MASK_NV :: GLenum-gl_PATH_STENCIL_VALUE_MASK_NV = 0x90B9-gl_IMPLEMENTATION_COLOR_READ_TYPE :: GLenum-gl_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A-gl_TEXTURE_CLIPMAP_CENTER_SGIX :: GLenum-gl_TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171-gl_BUFFER :: GLenum-gl_BUFFER = 0x82E0-gl_DEBUG_CALLBACK_USER_PARAM_ARB :: GLenum-gl_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245-gl_FIXED_OES :: GLenum-gl_FIXED_OES = 0x140C-gl_INT_VEC2 :: GLenum-gl_INT_VEC2 = 0x8B53-gl_VARIANT_VALUE_EXT :: GLenum-gl_VARIANT_VALUE_EXT = 0x87E4-gl_QUAD_STRIP :: GLenum-gl_QUAD_STRIP = 0x0008-gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT :: GLenum-gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E-gl_ZERO_TO_ONE :: GLenum-gl_ZERO_TO_ONE = 0x935F-gl_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB :: GLenum-gl_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A-gl_CND_ATI :: GLenum-gl_CND_ATI = 0x896A-gl_PROGRAM_POINT_SIZE :: GLenum-gl_PROGRAM_POINT_SIZE = 0x8642-gl_VIEWPORT_BOUNDS_RANGE :: GLenum-gl_VIEWPORT_BOUNDS_RANGE = 0x825D-gl_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL :: GLenum-gl_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6-gl_R1UI_T2F_N3F_V3F_SUN :: GLenum-gl_R1UI_T2F_N3F_V3F_SUN = 0x85CA-gl_DEPTH_STENCIL_EXT :: GLenum-gl_DEPTH_STENCIL_EXT = 0x84F9-gl_RESCALE_NORMAL :: GLenum-gl_RESCALE_NORMAL = 0x803A-gl_INDEX_CLEAR_VALUE :: GLenum-gl_INDEX_CLEAR_VALUE = 0x0C20-gl_VERTEX_STREAM5_ATI :: GLenum-gl_VERTEX_STREAM5_ATI = 0x8771-gl_CON_4_ATI :: GLenum-gl_CON_4_ATI = 0x8945-gl_LAYOUT_DEFAULT_INTEL :: GLenum-gl_LAYOUT_DEFAULT_INTEL = 0-gl_RGBA8I_EXT :: GLenum-gl_RGBA8I_EXT = 0x8D8E-gl_IMAGE_CLASS_4_X_16 :: GLenum-gl_IMAGE_CLASS_4_X_16 = 0x82BC-gl_RGB8_EXT :: GLenum-gl_RGB8_EXT = 0x8051-gl_TEXTURE_DS_SIZE_NV :: GLenum-gl_TEXTURE_DS_SIZE_NV = 0x871D-gl_CLAMP_VERTEX_COLOR :: GLenum-gl_CLAMP_VERTEX_COLOR = 0x891A-gl_DEPTH_CLEAR_VALUE :: GLenum-gl_DEPTH_CLEAR_VALUE = 0x0B73-gl_VERTEX_ATTRIB_ARRAY_SIZE_ARB :: GLenum-gl_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623-gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS :: GLenum-gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8-gl_RGB_FLOAT16_APPLE :: GLenum-gl_RGB_FLOAT16_APPLE = 0x881B-gl_DOT_PRODUCT_REFLECT_CUBE_MAP_NV :: GLenum-gl_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2-gl_COLOR_ATTACHMENT1 :: GLenum-gl_COLOR_ATTACHMENT1 = 0x8CE1-gl_MAX_TESS_GEN_LEVEL_EXT :: GLenum-gl_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E-gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER :: GLenum-gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45-gl_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM :: GLenum-gl_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = 0x8F66-gl_MATRIX3_ARB :: GLenum-gl_MATRIX3_ARB = 0x88C3-gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB :: GLenum-gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF-gl_FRAGMENT_PROGRAM_BINDING_NV :: GLenum-gl_FRAGMENT_PROGRAM_BINDING_NV = 0x8873-gl_DOT2_ADD_ATI :: GLenum-gl_DOT2_ADD_ATI = 0x896C-gl_CON_2_ATI :: GLenum-gl_CON_2_ATI = 0x8943-gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9-gl_UNIFORM_ARRAY_STRIDE :: GLenum-gl_UNIFORM_ARRAY_STRIDE = 0x8A3C-gl_RECLAIM_MEMORY_HINT_PGI :: GLenum-gl_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE-gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS :: GLenum-gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80-gl_DRAW_BUFFER11_ARB :: GLenum-gl_DRAW_BUFFER11_ARB = 0x8830-gl_NORMAL_ARRAY :: GLenum-gl_NORMAL_ARRAY = 0x8075-gl_PATH_GEN_COMPONENTS_NV :: GLenum-gl_PATH_GEN_COMPONENTS_NV = 0x90B3-gl_COLOR_FLOAT_APPLE :: GLenum-gl_COLOR_FLOAT_APPLE = 0x8A0F-gl_WAIT_FAILED :: GLenum-gl_WAIT_FAILED = 0x911D-gl_SAMPLER_1D_ARRAY_SHADOW :: GLenum-gl_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3-gl_PIXEL_TEX_GEN_Q_CEILING_SGIX :: GLenum-gl_PIXEL_TEX_GEN_Q_CEILING_SGIX = 0x8184-gl_ALWAYS_FAST_HINT_PGI :: GLenum-gl_ALWAYS_FAST_HINT_PGI = 0x1A20C-gl_GEOMETRY_OUTPUT_TYPE_EXT :: GLenum-gl_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC-gl_MAX_PROGRAM_PATCH_ATTRIBS_NV :: GLenum-gl_MAX_PROGRAM_PATCH_ATTRIBS_NV = 0x86D8-gl_TEXTURE_1D_ARRAY :: GLenum-gl_TEXTURE_1D_ARRAY = 0x8C18-gl_LIST_MODE :: GLenum-gl_LIST_MODE = 0x0B30-gl_COLOR_ARRAY_TYPE :: GLenum-gl_COLOR_ARRAY_TYPE = 0x8082-gl_SAMPLE_MASK_VALUE_EXT :: GLenum-gl_SAMPLE_MASK_VALUE_EXT = 0x80AA-gl_PIXEL_BUFFER_BARRIER_BIT :: GLenum-gl_PIXEL_BUFFER_BARRIER_BIT = 0x00000080-gl_SCISSOR_BOX :: GLenum-gl_SCISSOR_BOX = 0x0C10-gl_UNSIGNED_INT_SAMPLER_3D_EXT :: GLenum-gl_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3-gl_MAX_ATOMIC_COUNTER_BUFFER_SIZE :: GLenum-gl_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8-gl_CLIENT_ALL_ATTRIB_BITS :: GLenum-gl_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF-gl_TRANSPOSE_MODELVIEW_MATRIX_ARB :: GLenum-gl_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3-gl_TEXTURE_BINDING_RECTANGLE_NV :: GLenum-gl_TEXTURE_BINDING_RECTANGLE_NV = 0x84F6-gl_ALPHA_FLOAT32_ATI :: GLenum-gl_ALPHA_FLOAT32_ATI = 0x8816-gl_MAP1_TEXTURE_COORD_4 :: GLenum-gl_MAP1_TEXTURE_COORD_4 = 0x0D96-gl_CONSTANT_ALPHA :: GLenum-gl_CONSTANT_ALPHA = 0x8003-gl_PREVIOUS_EXT :: GLenum-gl_PREVIOUS_EXT = 0x8578-gl_PACK_COMPRESSED_SIZE_SGIX :: GLenum-gl_PACK_COMPRESSED_SIZE_SGIX = 0x831C-gl_IMAGE_2D_ARRAY_EXT :: GLenum-gl_IMAGE_2D_ARRAY_EXT = 0x9053-gl_ASYNC_TEX_IMAGE_SGIX :: GLenum-gl_ASYNC_TEX_IMAGE_SGIX = 0x835C-gl_QUERY_RESULT :: GLenum-gl_QUERY_RESULT = 0x8866-gl_MATRIX0_ARB :: GLenum-gl_MATRIX0_ARB = 0x88C0-gl_UNPACK_CMYK_HINT_EXT :: GLenum-gl_UNPACK_CMYK_HINT_EXT = 0x800F-gl_MAP1_TEXTURE_COORD_1 :: GLenum-gl_MAP1_TEXTURE_COORD_1 = 0x0D93-gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH :: GLenum-gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC-gl_PN_TRIANGLES_POINT_MODE_LINEAR_ATI :: GLenum-gl_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5-gl_TEXTURE_BLUE_SIZE_EXT :: GLenum-gl_TEXTURE_BLUE_SIZE_EXT = 0x805E-gl_VARIANT_EXT :: GLenum-gl_VARIANT_EXT = 0x87C1-gl_UNPACK_ROW_LENGTH :: GLenum-gl_UNPACK_ROW_LENGTH = 0x0CF2-gl_VARIANT_DATATYPE_EXT :: GLenum-gl_VARIANT_DATATYPE_EXT = 0x87E5-gl_LINEAR_MIPMAP_LINEAR :: GLenum-gl_LINEAR_MIPMAP_LINEAR = 0x2703-gl_ALPHA8I_EXT :: GLenum-gl_ALPHA8I_EXT = 0x8D90-gl_OUTPUT_TEXTURE_COORD20_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1-gl_EYE_LINEAR :: GLenum-gl_EYE_LINEAR = 0x2400-gl_VIEWPORT :: GLenum-gl_VIEWPORT = 0x0BA2-gl_SHADER_BINARY_DMP :: GLenum-gl_SHADER_BINARY_DMP = 0x9250-gl_TEXTURE25_ARB :: GLenum-gl_TEXTURE25_ARB = 0x84D9-gl_UNSIGNED_SHORT_4_4_4_4_EXT :: GLenum-gl_UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033-gl_PROXY_HISTOGRAM_EXT :: GLenum-gl_PROXY_HISTOGRAM_EXT = 0x8025-gl_SCALEBIAS_HINT_SGIX :: GLenum-gl_SCALEBIAS_HINT_SGIX = 0x8322-gl_MAP_INVALIDATE_RANGE_BIT_EXT :: GLenum-gl_MAP_INVALIDATE_RANGE_BIT_EXT = 0x0004-gl_FRAGMENT_PROGRAM_CALLBACK_MESA :: GLenum-gl_FRAGMENT_PROGRAM_CALLBACK_MESA = 0x8BB1-gl_TRANSLATE_3D_NV :: GLenum-gl_TRANSLATE_3D_NV = 0x9091-gl_PATH_COORD_COUNT_NV :: GLenum-gl_PATH_COORD_COUNT_NV = 0x909E-gl_MAX_ACTIVE_LIGHTS_SGIX :: GLenum-gl_MAX_ACTIVE_LIGHTS_SGIX = 0x8405-gl_TRANSFORM_FEEDBACK_OVERFLOW_ARB :: GLenum-gl_TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC-gl_REFERENCE_PLANE_EQUATION_SGIX :: GLenum-gl_REFERENCE_PLANE_EQUATION_SGIX = 0x817E-gl_PATH_TERMINAL_DASH_CAP_NV :: GLenum-gl_PATH_TERMINAL_DASH_CAP_NV = 0x907D-gl_INDEX_ARRAY :: GLenum-gl_INDEX_ARRAY = 0x8077-gl_INNOCENT_CONTEXT_RESET_ARB :: GLenum-gl_INNOCENT_CONTEXT_RESET_ARB = 0x8254-gl_TEXTURE_BINDING_1D :: GLenum-gl_TEXTURE_BINDING_1D = 0x8068-gl_TRANSFORM_FEEDBACK_BUFFER_STRIDE :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C-gl_QUERY_OBJECT_EXT :: GLenum-gl_QUERY_OBJECT_EXT = 0x9153-gl_UNIFORM_BLOCK :: GLenum-gl_UNIFORM_BLOCK = 0x92E2-gl_CONVOLUTION_HEIGHT :: GLenum-gl_CONVOLUTION_HEIGHT = 0x8019-gl_STENCIL_FAIL :: GLenum-gl_STENCIL_FAIL = 0x0B94-gl_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX :: GLenum-gl_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B-gl_TEXTURE_SAMPLES_IMG :: GLenum-gl_TEXTURE_SAMPLES_IMG = 0x9136-gl_REFLECTION_MAP_NV :: GLenum-gl_REFLECTION_MAP_NV = 0x8512-gl_GREEN_SCALE :: GLenum-gl_GREEN_SCALE = 0x0D18-gl_TRANSFORM_FEEDBACK_BUFFER_EXT :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E-gl_LIGHTEN_NV :: GLenum-gl_LIGHTEN_NV = 0x9298-gl_HISTOGRAM_ALPHA_SIZE_EXT :: GLenum-gl_HISTOGRAM_ALPHA_SIZE_EXT = 0x802B-gl_UNSIGNED_INT64_NV :: GLenum-gl_UNSIGNED_INT64_NV = 0x140F-gl_LINE_STIPPLE_REPEAT :: GLenum-gl_LINE_STIPPLE_REPEAT = 0x0B26-gl_YCBCR_MESA :: GLenum-gl_YCBCR_MESA = 0x8757-gl_LEQUAL :: GLenum-gl_LEQUAL = 0x0203-gl_BUFFER_USAGE_ARB :: GLenum-gl_BUFFER_USAGE_ARB = 0x8765-gl_MAP1_VERTEX_ATTRIB6_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666-gl_SAMPLER_BUFFER_AMD :: GLenum-gl_SAMPLER_BUFFER_AMD = 0x9001-gl_OBJECT_DISTANCE_TO_LINE_SGIS :: GLenum-gl_OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3-gl_PIXEL_COUNT_NV :: GLenum-gl_PIXEL_COUNT_NV = 0x8866-gl_VERTEX_PROGRAM_POSITION_MESA :: GLenum-gl_VERTEX_PROGRAM_POSITION_MESA = 0x8BB4-gl_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI :: GLenum-gl_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7-gl_POST_COLOR_MATRIX_BLUE_BIAS :: GLenum-gl_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA-gl_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX :: GLenum-gl_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX = 0x904B-gl_VERTEX_ATTRIB_MAP2_APPLE :: GLenum-gl_VERTEX_ATTRIB_MAP2_APPLE = 0x8A01-gl_PLUS_DARKER_NV :: GLenum-gl_PLUS_DARKER_NV = 0x9292-gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT :: GLenum-gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x906B-gl_FRAGMENT_SHADER_INVOCATIONS_ARB :: GLenum-gl_FRAGMENT_SHADER_INVOCATIONS_ARB = 0x82F4-gl_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT :: GLenum-gl_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = 0x9069-gl_PROXY_TEXTURE_CUBE_MAP_ARRAY :: GLenum-gl_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B-gl_UNSIGNED_INT_IMAGE_CUBE_EXT :: GLenum-gl_UNSIGNED_INT_IMAGE_CUBE_EXT = 0x9066-gl_DYNAMIC_DRAW_ARB :: GLenum-gl_DYNAMIC_DRAW_ARB = 0x88E8-gl_RGBA_SNORM :: GLenum-gl_RGBA_SNORM = 0x8F93-gl_MAX_UNIFORM_BLOCK_SIZE :: GLenum-gl_MAX_UNIFORM_BLOCK_SIZE = 0x8A30-gl_FUNC_REVERSE_SUBTRACT_EXT :: GLenum-gl_FUNC_REVERSE_SUBTRACT_EXT = 0x800B-gl_STENCIL_BUFFER_BIT1_QCOM :: GLenum-gl_STENCIL_BUFFER_BIT1_QCOM = 0x00020000-gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB-gl_TEXTURE_1D_BINDING_EXT :: GLenum-gl_TEXTURE_1D_BINDING_EXT = 0x8068-gl_RGBA4_EXT :: GLenum-gl_RGBA4_EXT = 0x8056-gl_PREFER_DOUBLEBUFFER_HINT_PGI :: GLenum-gl_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8-gl_UNKNOWN_CONTEXT_RESET_KHR :: GLenum-gl_UNKNOWN_CONTEXT_RESET_KHR = 0x8255-gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES :: GLenum-gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5C-gl_REFERENCED_BY_COMPUTE_SHADER :: GLenum-gl_REFERENCED_BY_COMPUTE_SHADER = 0x930B-gl_REG_17_ATI :: GLenum-gl_REG_17_ATI = 0x8932-gl_BUFFER_FLUSHING_UNMAP_APPLE :: GLenum-gl_BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13-gl_UNIFORM :: GLenum-gl_UNIFORM = 0x92E1-gl_TEXCOORD4_BIT_PGI :: GLenum-gl_TEXCOORD4_BIT_PGI = 0x80000000-gl_BIAS_BY_NEGATIVE_ONE_HALF_NV :: GLenum-gl_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541-gl_OP_FLOOR_EXT :: GLenum-gl_OP_FLOOR_EXT = 0x878F-gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV :: GLenum-gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9-gl_CURRENT_QUERY :: GLenum-gl_CURRENT_QUERY = 0x8865-gl_UNIFORM_BUFFER_START :: GLenum-gl_UNIFORM_BUFFER_START = 0x8A29-gl_DEBUG_SEVERITY_HIGH_KHR :: GLenum-gl_DEBUG_SEVERITY_HIGH_KHR = 0x9146-gl_T2F_C4UB_V3F :: GLenum-gl_T2F_C4UB_V3F = 0x2A29-gl_FONT_GLYPHS_AVAILABLE_NV :: GLenum-gl_FONT_GLYPHS_AVAILABLE_NV = 0x9368-gl_MAX_CONVOLUTION_HEIGHT_EXT :: GLenum-gl_MAX_CONVOLUTION_HEIGHT_EXT = 0x801B-gl_STENCIL_BUFFER_BIT3_QCOM :: GLenum-gl_STENCIL_BUFFER_BIT3_QCOM = 0x00080000-gl_MAP1_VERTEX_ATTRIB3_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663-gl_BLEND_EQUATION_ALPHA_EXT :: GLenum-gl_BLEND_EQUATION_ALPHA_EXT = 0x883D-gl_RGB_FLOAT32_APPLE :: GLenum-gl_RGB_FLOAT32_APPLE = 0x8815-gl_CONSTANT_BORDER :: GLenum-gl_CONSTANT_BORDER = 0x8151-gl_CON_0_ATI :: GLenum-gl_CON_0_ATI = 0x8941-gl_VERTEX_ARRAY_RANGE_POINTER_NV :: GLenum-gl_VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV :: GLenum-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852-gl_INTERLACE_SGIX :: GLenum-gl_INTERLACE_SGIX = 0x8094-gl_UNPACK_CONSTANT_DATA_SUNX :: GLenum-gl_UNPACK_CONSTANT_DATA_SUNX = 0x81D5-gl_VERTEX_BINDING_STRIDE :: GLenum-gl_VERTEX_BINDING_STRIDE = 0x82D8-gl_IS_PER_PATCH :: GLenum-gl_IS_PER_PATCH = 0x92E7-gl_AVERAGE_HP :: GLenum-gl_AVERAGE_HP = 0x8160-gl_MAX_VERTEX_ATTRIBS :: GLenum-gl_MAX_VERTEX_ATTRIBS = 0x8869-gl_MAX_SAMPLES_ANGLE :: GLenum-gl_MAX_SAMPLES_ANGLE = 0x8D57-gl_RED_EXT :: GLenum-gl_RED_EXT = 0x1903-gl_MAP1_NORMAL :: GLenum-gl_MAP1_NORMAL = 0x0D92-gl_TEXTURE_COMPRESSED_BLOCK_HEIGHT :: GLenum-gl_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2-gl_MIN_SAMPLE_SHADING_VALUE_ARB :: GLenum-gl_MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37-gl_COMPRESSED_SLUMINANCE_EXT :: GLenum-gl_COMPRESSED_SLUMINANCE_EXT = 0x8C4A-gl_RGBA4 :: GLenum-gl_RGBA4 = 0x8056-gl_TEXTURE_VIEW_MIN_LAYER :: GLenum-gl_TEXTURE_VIEW_MIN_LAYER = 0x82DD-gl_ONE_EXT :: GLenum-gl_ONE_EXT = 0x87DE-gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES :: GLenum-gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES = 0x9277-gl_MODELVIEW31_ARB :: GLenum-gl_MODELVIEW31_ARB = 0x873F-gl_MAX_TEXTURE_IMAGE_UNITS :: GLenum-gl_MAX_TEXTURE_IMAGE_UNITS = 0x8872-gl_COLOR_ATTACHMENT3_NV :: GLenum-gl_COLOR_ATTACHMENT3_NV = 0x8CE3-gl_LUMINANCE6_ALPHA2 :: GLenum-gl_LUMINANCE6_ALPHA2 = 0x8044-gl_POINT_SPRITE_R_MODE_NV :: GLenum-gl_POINT_SPRITE_R_MODE_NV = 0x8863-gl_COMPARE_REF_TO_TEXTURE :: GLenum-gl_COMPARE_REF_TO_TEXTURE = 0x884E-gl_MAX_PROJECTION_STACK_DEPTH :: GLenum-gl_MAX_PROJECTION_STACK_DEPTH = 0x0D38-gl_BLEND_DST_ALPHA :: GLenum-gl_BLEND_DST_ALPHA = 0x80CA-gl_TEXTURE_1D_STACK_BINDING_MESAX :: GLenum-gl_TEXTURE_1D_STACK_BINDING_MESAX = 0x875D-gl_VERTEX_ATTRIB_ARRAY_LENGTH_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A-gl_PROGRAM_PARAMETER_NV :: GLenum-gl_PROGRAM_PARAMETER_NV = 0x8644-gl_VIDEO_CAPTURE_FRAME_WIDTH_NV :: GLenum-gl_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038-gl_MATRIX21_ARB :: GLenum-gl_MATRIX21_ARB = 0x88D5-gl_LIST_BASE :: GLenum-gl_LIST_BASE = 0x0B32-gl_COLOR_ATTACHMENT5 :: GLenum-gl_COLOR_ATTACHMENT5 = 0x8CE5-gl_VERTEX_ARRAY_BINDING_APPLE :: GLenum-gl_VERTEX_ARRAY_BINDING_APPLE = 0x85B5-gl_RELATIVE_LARGE_CW_ARC_TO_NV :: GLenum-gl_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19-gl_MAX_DEFORMATION_ORDER_SGIX :: GLenum-gl_MAX_DEFORMATION_ORDER_SGIX = 0x8197-gl_COVERAGE_AUTOMATIC_NV :: GLenum-gl_COVERAGE_AUTOMATIC_NV = 0x8ED7-gl_FOG_FUNC_SGIS :: GLenum-gl_FOG_FUNC_SGIS = 0x812A-gl_SAMPLER_BUFFER_EXT :: GLenum-gl_SAMPLER_BUFFER_EXT = 0x8DC2-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2-gl_RGB8 :: GLenum-gl_RGB8 = 0x8051-gl_PRIMARY_COLOR_NV :: GLenum-gl_PRIMARY_COLOR_NV = 0x852C-gl_DEPTH_TEXTURE_MODE_ARB :: GLenum-gl_DEPTH_TEXTURE_MODE_ARB = 0x884B-gl_LUMINANCE12_ALPHA4 :: GLenum-gl_LUMINANCE12_ALPHA4 = 0x8046-gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS :: GLenum-gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9-gl_TEXTURE_BUFFER_EXT :: GLenum-gl_TEXTURE_BUFFER_EXT = 0x8C2A-gl_LINK_STATUS :: GLenum-gl_LINK_STATUS = 0x8B82-gl_VERTEX_SHADER_EXT :: GLenum-gl_VERTEX_SHADER_EXT = 0x8780-gl_VERTEX_ARRAY_POINTER :: GLenum-gl_VERTEX_ARRAY_POINTER = 0x808E-gl_ONE_MINUS_SRC1_ALPHA :: GLenum-gl_ONE_MINUS_SRC1_ALPHA = 0x88FB-gl_TEXTURE_BUFFER_SIZE_EXT :: GLenum-gl_TEXTURE_BUFFER_SIZE_EXT = 0x919E-gl_DEBUG_SEVERITY_MEDIUM :: GLenum-gl_DEBUG_SEVERITY_MEDIUM = 0x9147-gl_ASYNC_READ_PIXELS_SGIX :: GLenum-gl_ASYNC_READ_PIXELS_SGIX = 0x835E-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1-gl_REPLACE_EXT :: GLenum-gl_REPLACE_EXT = 0x8062-gl_DEBUG_SOURCE_APPLICATION_ARB :: GLenum-gl_DEBUG_SOURCE_APPLICATION_ARB = 0x824A-gl_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB :: GLenum-gl_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = 0x9345-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = 0x93E1-gl_BROWSER_DEFAULT_WEBGL :: GLenum-gl_BROWSER_DEFAULT_WEBGL = 0x9244-gl_MULTISAMPLE_BUFFER_BIT0_QCOM :: GLenum-gl_MULTISAMPLE_BUFFER_BIT0_QCOM = 0x01000000-gl_DUAL_ALPHA8_SGIS :: GLenum-gl_DUAL_ALPHA8_SGIS = 0x8111-gl_COMPRESSED_RGB_FXT1_3DFX :: GLenum-gl_COMPRESSED_RGB_FXT1_3DFX = 0x86B0-gl_BLEND_SRC_RGB_OES :: GLenum-gl_BLEND_SRC_RGB_OES = 0x80C9-gl_T2F_IUI_V2F_EXT :: GLenum-gl_T2F_IUI_V2F_EXT = 0x81B1-gl_DRAW_BUFFER13_ARB :: GLenum-gl_DRAW_BUFFER13_ARB = 0x8832-gl_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV :: GLenum-gl_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = 0x84E3-gl_TEXTURE_INTENSITY_TYPE_ARB :: GLenum-gl_TEXTURE_INTENSITY_TYPE_ARB = 0x8C15-gl_DU8DV8_ATI :: GLenum-gl_DU8DV8_ATI = 0x877A-gl_MAP1_VERTEX_ATTRIB14_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E-gl_VARIANT_ARRAY_STRIDE_EXT :: GLenum-gl_VARIANT_ARRAY_STRIDE_EXT = 0x87E6-gl_RGB_S3TC :: GLenum-gl_RGB_S3TC = 0x83A0-gl_NORMAL_ARRAY_POINTER :: GLenum-gl_NORMAL_ARRAY_POINTER = 0x808F-gl_CONSTANT_ALPHA_EXT :: GLenum-gl_CONSTANT_ALPHA_EXT = 0x8003-gl_COLOR_ATTACHMENT8_NV :: GLenum-gl_COLOR_ATTACHMENT8_NV = 0x8CE8-gl_MAX_LIST_NESTING :: GLenum-gl_MAX_LIST_NESTING = 0x0B31-gl_FRAMEBUFFER_UNDEFINED :: GLenum-gl_FRAMEBUFFER_UNDEFINED = 0x8219-gl_ACTIVE_STENCIL_FACE_EXT :: GLenum-gl_ACTIVE_STENCIL_FACE_EXT = 0x8911-gl_DEPTH_SCALE :: GLenum-gl_DEPTH_SCALE = 0x0D1E-gl_READ_PIXELS_FORMAT :: GLenum-gl_READ_PIXELS_FORMAT = 0x828D-gl_QUADS_EXT :: GLenum-gl_QUADS_EXT = 0x0007-gl_MAX_COMBINED_SHADER_STORAGE_BLOCKS :: GLenum-gl_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC-gl_OUTPUT_VERTEX_EXT :: GLenum-gl_OUTPUT_VERTEX_EXT = 0x879A-gl_PROGRAM_ATTRIBS_ARB :: GLenum-gl_PROGRAM_ATTRIBS_ARB = 0x88AC-gl_MAP1_VERTEX_ATTRIB8_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668-gl_INVALID_ENUM :: GLenum-gl_INVALID_ENUM = 0x0500-gl_1PASS_EXT :: GLenum-gl_1PASS_EXT = 0x80A1-gl_FUNC_ADD_EXT :: GLenum-gl_FUNC_ADD_EXT = 0x8006-gl_DISTANCE_ATTENUATION_SGIS :: GLenum-gl_DISTANCE_ATTENUATION_SGIS = 0x8129-gl_REG_3_ATI :: GLenum-gl_REG_3_ATI = 0x8924-gl_INTERPOLATE :: GLenum-gl_INTERPOLATE = 0x8575-gl_MITER_TRUNCATE_NV :: GLenum-gl_MITER_TRUNCATE_NV = 0x90A8-gl_MAX_PROGRAM_NATIVE_ATTRIBS_ARB :: GLenum-gl_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF-gl_CONTEXT_COMPATIBILITY_PROFILE_BIT :: GLenum-gl_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002-gl_MATRIX_STRIDE :: GLenum-gl_MATRIX_STRIDE = 0x92FF-gl_FONT_Y_MIN_BOUNDS_BIT_NV :: GLenum-gl_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000-gl_COMBINER_BIAS_NV :: GLenum-gl_COMBINER_BIAS_NV = 0x8549-gl_TEXTURE_CUBE_MAP_POSITIVE_X_ARB :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515-gl_CIRCULAR_CW_ARC_TO_NV :: GLenum-gl_CIRCULAR_CW_ARC_TO_NV = 0xFA-gl_UNSIGNED_INT_IMAGE_1D_EXT :: GLenum-gl_UNSIGNED_INT_IMAGE_1D_EXT = 0x9062-gl_BLUE_SCALE :: GLenum-gl_BLUE_SCALE = 0x0D1A-gl_OFFSET_TEXTURE_SCALE_NV :: GLenum-gl_OFFSET_TEXTURE_SCALE_NV = 0x86E2-gl_OFFSET_TEXTURE_2D_NV :: GLenum-gl_OFFSET_TEXTURE_2D_NV = 0x86E8-gl_INTERNALFORMAT_DEPTH_SIZE :: GLenum-gl_INTERNALFORMAT_DEPTH_SIZE = 0x8275-gl_TIMEOUT_IGNORED :: GLenum-gl_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF-gl_BGRA_EXT :: GLenum-gl_BGRA_EXT = 0x80E1-gl_GEQUAL :: GLenum-gl_GEQUAL = 0x0206-gl_EXCLUSION_KHR :: GLenum-gl_EXCLUSION_KHR = 0x92A0-gl_LINES_ADJACENCY_ARB :: GLenum-gl_LINES_ADJACENCY_ARB = 0x000A-gl_MAX_COMPUTE_WORK_GROUP_COUNT :: GLenum-gl_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE-gl_RENDERBUFFER_EXT :: GLenum-gl_RENDERBUFFER_EXT = 0x8D41-gl_GENERATE_MIPMAP :: GLenum-gl_GENERATE_MIPMAP = 0x8191-gl_SOURCE1_ALPHA_EXT :: GLenum-gl_SOURCE1_ALPHA_EXT = 0x8589-gl_VERTEX_TEXTURE :: GLenum-gl_VERTEX_TEXTURE = 0x829B-gl_LIGHT1 :: GLenum-gl_LIGHT1 = 0x4001-gl_STATIC_READ_ARB :: GLenum-gl_STATIC_READ_ARB = 0x88E5-gl_INTERLACE_READ_INGR :: GLenum-gl_INTERLACE_READ_INGR = 0x8568-gl_COMPRESSED_R11_EAC_OES :: GLenum-gl_COMPRESSED_R11_EAC_OES = 0x9270-gl_FRAGMENT_SHADER_ARB :: GLenum-gl_FRAGMENT_SHADER_ARB = 0x8B30-gl_CURRENT_RASTER_POSITION :: GLenum-gl_CURRENT_RASTER_POSITION = 0x0B07-gl_WEIGHT_ARRAY_BUFFER_BINDING_OES :: GLenum-gl_WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E-gl_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT :: GLenum-gl_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C-gl_RGB_FLOAT32_ATI :: GLenum-gl_RGB_FLOAT32_ATI = 0x8815-gl_LUMINANCE16_ALPHA16_EXT :: GLenum-gl_LUMINANCE16_ALPHA16_EXT = 0x8048-gl_RENDERBUFFER_WIDTH_EXT :: GLenum-gl_RENDERBUFFER_WIDTH_EXT = 0x8D42-gl_DEPTH_RANGE :: GLenum-gl_DEPTH_RANGE = 0x0B70-gl_4_BYTES :: GLenum-gl_4_BYTES = 0x1409-gl_VERTEX_WEIGHTING_EXT :: GLenum-gl_VERTEX_WEIGHTING_EXT = 0x8509-gl_TEXTURE_SWIZZLE_B :: GLenum-gl_TEXTURE_SWIZZLE_B = 0x8E44-gl_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV :: GLenum-gl_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0-gl_FEEDBACK_BUFFER_POINTER :: GLenum-gl_FEEDBACK_BUFFER_POINTER = 0x0DF0-gl_CULL_VERTEX_IBM :: GLenum-gl_CULL_VERTEX_IBM = 103050-gl_UNPACK_SKIP_VOLUMES_SGIS :: GLenum-gl_UNPACK_SKIP_VOLUMES_SGIS = 0x8132-gl_PIXEL_CUBIC_WEIGHT_EXT :: GLenum-gl_PIXEL_CUBIC_WEIGHT_EXT = 0x8333-gl_DECR_WRAP_EXT :: GLenum-gl_DECR_WRAP_EXT = 0x8508-gl_TEXTURE31 :: GLenum-gl_TEXTURE31 = 0x84DF-gl_MAX_TESS_GEN_LEVEL :: GLenum-gl_MAX_TESS_GEN_LEVEL = 0x8E7E-gl_YCBAYCR8A_4224_NV :: GLenum-gl_YCBAYCR8A_4224_NV = 0x9032-gl_POINT_SPRITE_OES :: GLenum-gl_POINT_SPRITE_OES = 0x8861-gl_SAMPLER_EXTERNAL_OES :: GLenum-gl_SAMPLER_EXTERNAL_OES = 0x8D66-gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT :: GLenum-gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = 0x8F63-gl_PIXEL_PACK_BUFFER_BINDING_ARB :: GLenum-gl_PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED-gl_DEBUG_CATEGORY_API_ERROR_AMD :: GLenum-gl_DEBUG_CATEGORY_API_ERROR_AMD = 0x9149-gl_TEXCOORD3_BIT_PGI :: GLenum-gl_TEXCOORD3_BIT_PGI = 0x40000000-gl_UNIFORM_BUFFER_EXT :: GLenum-gl_UNIFORM_BUFFER_EXT = 0x8DEE-gl_COMPRESSED_RGBA8_ETC2_EAC :: GLenum-gl_COMPRESSED_RGBA8_ETC2_EAC = 0x9278-gl_COLOR_SUM_CLAMP_NV :: GLenum-gl_COLOR_SUM_CLAMP_NV = 0x854F-gl_SAMPLER_CUBE :: GLenum-gl_SAMPLER_CUBE = 0x8B60-gl_FRACTIONAL_ODD :: GLenum-gl_FRACTIONAL_ODD = 0x8E7B-gl_ONE_MINUS_DST_COLOR :: GLenum-gl_ONE_MINUS_DST_COLOR = 0x0307-gl_REG_9_ATI :: GLenum-gl_REG_9_ATI = 0x892A-gl_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV :: GLenum-gl_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035-gl_PIXEL_MAP_I_TO_G :: GLenum-gl_PIXEL_MAP_I_TO_G = 0x0C73-gl_FOG_COORD_ARRAY_STRIDE :: GLenum-gl_FOG_COORD_ARRAY_STRIDE = 0x8455-gl_TRIANGLES_ADJACENCY_EXT :: GLenum-gl_TRIANGLES_ADJACENCY_EXT = 0x000C-gl_DRAW_BUFFER14_EXT :: GLenum-gl_DRAW_BUFFER14_EXT = 0x8833-gl_TEXTURE_COMPARE_MODE_ARB :: GLenum-gl_TEXTURE_COMPARE_MODE_ARB = 0x884C-gl_REFLECTION_MAP_OES :: GLenum-gl_REFLECTION_MAP_OES = 0x8512-gl_WARPS_PER_SM_NV :: GLenum-gl_WARPS_PER_SM_NV = 0x933A-gl_QUERY_WAIT :: GLenum-gl_QUERY_WAIT = 0x8E13-gl_COMPRESSED_SLUMINANCE_ALPHA :: GLenum-gl_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B-gl_MAP2_TEXTURE_COORD_3 :: GLenum-gl_MAP2_TEXTURE_COORD_3 = 0x0DB5-gl_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV :: GLenum-gl_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08-gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV :: GLenum-gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1-gl_INTENSITY_FLOAT32_ATI :: GLenum-gl_INTENSITY_FLOAT32_ATI = 0x8817-gl_CLAMP_TO_BORDER_SGIS :: GLenum-gl_CLAMP_TO_BORDER_SGIS = 0x812D-gl_FIELDS_NV :: GLenum-gl_FIELDS_NV = 0x8E27-gl_MAX_GEOMETRY_OUTPUT_VERTICES :: GLenum-gl_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4-gl_INT_SAMPLER_CUBE_EXT :: GLenum-gl_INT_SAMPLER_CUBE_EXT = 0x8DCC-gl_SOURCE0_RGB_EXT :: GLenum-gl_SOURCE0_RGB_EXT = 0x8580-gl_DRAW_BUFFER10_ATI :: GLenum-gl_DRAW_BUFFER10_ATI = 0x882F-gl_VERTEX_ATTRIB_ARRAY_INTEGER_EXT :: GLenum-gl_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD-gl_COPY_WRITE_BUFFER_NV :: GLenum-gl_COPY_WRITE_BUFFER_NV = 0x8F37-gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV :: GLenum-gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54-gl_LUMINANCE8_OES :: GLenum-gl_LUMINANCE8_OES = 0x8040-gl_POST_CONVOLUTION_RED_BIAS_EXT :: GLenum-gl_POST_CONVOLUTION_RED_BIAS_EXT = 0x8020-gl_HSL_COLOR_KHR :: GLenum-gl_HSL_COLOR_KHR = 0x92AF-gl_SAMPLE_MASK_VALUE_NV :: GLenum-gl_SAMPLE_MASK_VALUE_NV = 0x8E52-gl_SLUMINANCE8_NV :: GLenum-gl_SLUMINANCE8_NV = 0x8C47-gl_ASYNC_MARKER_SGIX :: GLenum-gl_ASYNC_MARKER_SGIX = 0x8329-gl_TEXTURE17 :: GLenum-gl_TEXTURE17 = 0x84D1-gl_SYNC_CL_EVENT_COMPLETE_ARB :: GLenum-gl_SYNC_CL_EVENT_COMPLETE_ARB = 0x8241-gl_INVARIANT_VALUE_EXT :: GLenum-gl_INVARIANT_VALUE_EXT = 0x87EA-gl_BUMP_ROT_MATRIX_SIZE_ATI :: GLenum-gl_BUMP_ROT_MATRIX_SIZE_ATI = 0x8776-gl_ACTIVE_VARYING_MAX_LENGTH_NV :: GLenum-gl_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82-gl_DEPTH_COMPONENT16 :: GLenum-gl_DEPTH_COMPONENT16 = 0x81A5-gl_MODELVIEW25_ARB :: GLenum-gl_MODELVIEW25_ARB = 0x8739-gl_SHADER_BINARY_VIV :: GLenum-gl_SHADER_BINARY_VIV = 0x8FC4-gl_VERTEX_ARRAY_STRIDE_EXT :: GLenum-gl_VERTEX_ARRAY_STRIDE_EXT = 0x807C-gl_VERTEX_ATTRIB_ARRAY_POINTER_ARB :: GLenum-gl_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645-gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB :: GLenum-gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004-gl_MAX_PALETTE_MATRICES_ARB :: GLenum-gl_MAX_PALETTE_MATRICES_ARB = 0x8842-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER :: GLenum-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA-gl_DEPTH_COMPONENT32_ARB :: GLenum-gl_DEPTH_COMPONENT32_ARB = 0x81A7-gl_PRESERVE_ATI :: GLenum-gl_PRESERVE_ATI = 0x8762-gl_PIXEL_TEX_GEN_ALPHA_LS_SGIX :: GLenum-gl_PIXEL_TEX_GEN_ALPHA_LS_SGIX = 0x8189-gl_VERTEX_PROGRAM_TWO_SIDE_NV :: GLenum-gl_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643-gl_MAX_ELEMENTS_INDICES_EXT :: GLenum-gl_MAX_ELEMENTS_INDICES_EXT = 0x80E9-gl_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS :: GLenum-gl_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33-gl_CONTEXT_LOST :: GLenum-gl_CONTEXT_LOST = 0x0507-gl_VERTEX_SUBROUTINE_UNIFORM :: GLenum-gl_VERTEX_SUBROUTINE_UNIFORM = 0x92EE-gl_COMPRESSED_SRGB_EXT :: GLenum-gl_COMPRESSED_SRGB_EXT = 0x8C48-gl_SAMPLER_2D_MULTISAMPLE_ARRAY :: GLenum-gl_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B-gl_MAX_PROGRAM_ADDRESS_REGISTERS_ARB :: GLenum-gl_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1-gl_STENCIL_INDEX_OES :: GLenum-gl_STENCIL_INDEX_OES = 0x1901-gl_PATH_INITIAL_END_CAP_NV :: GLenum-gl_PATH_INITIAL_END_CAP_NV = 0x9077-gl_INTENSITY32F_ARB :: GLenum-gl_INTENSITY32F_ARB = 0x8817-gl_SAMPLES_PASSED :: GLenum-gl_SAMPLES_PASSED = 0x8914-gl_INT_IMAGE_2D_RECT_EXT :: GLenum-gl_INT_IMAGE_2D_RECT_EXT = 0x905A-gl_CLIP_PLANE2 :: GLenum-gl_CLIP_PLANE2 = 0x3002-gl_PALETTE8_RGB8_OES :: GLenum-gl_PALETTE8_RGB8_OES = 0x8B95-gl_ALPHA16I_EXT :: GLenum-gl_ALPHA16I_EXT = 0x8D8A-gl_VERTEX_ARRAY :: GLenum-gl_VERTEX_ARRAY = 0x8074-gl_TEXTURE23_ARB :: GLenum-gl_TEXTURE23_ARB = 0x84D7-gl_AMBIENT_AND_DIFFUSE :: GLenum-gl_AMBIENT_AND_DIFFUSE = 0x1602-gl_MULTISAMPLE_BUFFER_BIT2_QCOM :: GLenum-gl_MULTISAMPLE_BUFFER_BIT2_QCOM = 0x04000000-gl_LUMINANCE_FLOAT16_ATI :: GLenum-gl_LUMINANCE_FLOAT16_ATI = 0x881E-gl_INDEX_ARRAY_TYPE :: GLenum-gl_INDEX_ARRAY_TYPE = 0x8085-gl_COMPATIBLE_SUBROUTINES :: GLenum-gl_COMPATIBLE_SUBROUTINES = 0x8E4B-gl_VERTEX4_BIT_PGI :: GLenum-gl_VERTEX4_BIT_PGI = 0x00000008-gl_FOG_COORD_SRC :: GLenum-gl_FOG_COORD_SRC = 0x8450-gl_FULL_SUPPORT :: GLenum-gl_FULL_SUPPORT = 0x82B7-gl_STEREO :: GLenum-gl_STEREO = 0x0C33-gl_LUMINANCE_ALPHA16UI_EXT :: GLenum-gl_LUMINANCE_ALPHA16UI_EXT = 0x8D7B-gl_ONE_MINUS_SRC_COLOR :: GLenum-gl_ONE_MINUS_SRC_COLOR = 0x0301-gl_MAX_SHADER_STORAGE_BLOCK_SIZE :: GLenum-gl_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE-gl_REPLICATE_BORDER_HP :: GLenum-gl_REPLICATE_BORDER_HP = 0x8153-gl_VERTEX_ATTRIB_MAP1_ORDER_APPLE :: GLenum-gl_VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04-gl_CPU_OPTIMIZED_QCOM :: GLenum-gl_CPU_OPTIMIZED_QCOM = 0x8FB1-gl_FLOAT16_VEC2_NV :: GLenum-gl_FLOAT16_VEC2_NV = 0x8FF9-gl_SAMPLE_ALPHA_TO_ONE_SGIS :: GLenum-gl_SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F-gl_MAP2_VERTEX_ATTRIB12_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C-gl_COMBINER_MUX_SUM_NV :: GLenum-gl_COMBINER_MUX_SUM_NV = 0x8547-gl_UNSIGNED_SHORT_5_6_5_REV_EXT :: GLenum-gl_UNSIGNED_SHORT_5_6_5_REV_EXT = 0x8364-gl_TEXTURE20_ARB :: GLenum-gl_TEXTURE20_ARB = 0x84D4-gl_DOT3_RGB :: GLenum-gl_DOT3_RGB = 0x86AE-gl_STENCIL_BUFFER_BIT0_QCOM :: GLenum-gl_STENCIL_BUFFER_BIT0_QCOM = 0x00010000-gl_LO_SCALE_NV :: GLenum-gl_LO_SCALE_NV = 0x870F-gl_FONT_ASCENDER_BIT_NV :: GLenum-gl_FONT_ASCENDER_BIT_NV = 0x00200000-gl_DRAW_BUFFER9_EXT :: GLenum-gl_DRAW_BUFFER9_EXT = 0x882E-gl_UNSIGNED_INT_2_10_10_10_REV :: GLenum-gl_UNSIGNED_INT_2_10_10_10_REV = 0x8368-gl_BINNING_CONTROL_HINT_QCOM :: GLenum-gl_BINNING_CONTROL_HINT_QCOM = 0x8FB0-gl_PROGRAM_TEMPORARIES_ARB :: GLenum-gl_PROGRAM_TEMPORARIES_ARB = 0x88A4-gl_MODELVIEW27_ARB :: GLenum-gl_MODELVIEW27_ARB = 0x873B-gl_RGBA16F_EXT :: GLenum-gl_RGBA16F_EXT = 0x881A-gl_INDEX_ARRAY_TYPE_EXT :: GLenum-gl_INDEX_ARRAY_TYPE_EXT = 0x8085-gl_MAX_VERTEX_SHADER_LOCALS_EXT :: GLenum-gl_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9-gl_TEXTURE_CUBE_MAP_POSITIVE_Z_OES :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519-gl_COMP_BIT_ATI :: GLenum-gl_COMP_BIT_ATI = 0x00000002-gl_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT :: GLenum-gl_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = 0x8A2C-gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY :: GLenum-gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061-gl_RGB10_A2_EXT :: GLenum-gl_RGB10_A2_EXT = 0x8059-gl_MAP1_VERTEX_ATTRIB4_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664-gl_FLOAT_VEC3 :: GLenum-gl_FLOAT_VEC3 = 0x8B51-gl_DELETE_STATUS :: GLenum-gl_DELETE_STATUS = 0x8B80-gl_PN_TRIANGLES_TESSELATION_LEVEL_ATI :: GLenum-gl_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4-gl_UNCORRELATED_NV :: GLenum-gl_UNCORRELATED_NV = 0x9282-gl_RELATIVE_SMALL_CW_ARC_TO_NV :: GLenum-gl_RELATIVE_SMALL_CW_ARC_TO_NV = 0x15-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT :: GLenum-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F-gl_RGB_FLOAT16_ATI :: GLenum-gl_RGB_FLOAT16_ATI = 0x881B-gl_DRAW_BUFFER7_ATI :: GLenum-gl_DRAW_BUFFER7_ATI = 0x882C-gl_COMBINE_ALPHA_ARB :: GLenum-gl_COMBINE_ALPHA_ARB = 0x8572-gl_RESET_NOTIFICATION_STRATEGY_EXT :: GLenum-gl_RESET_NOTIFICATION_STRATEGY_EXT = 0x8256-gl_DRAW_BUFFER10_NV :: GLenum-gl_DRAW_BUFFER10_NV = 0x882F-gl_READ_PIXEL_DATA_RANGE_POINTER_NV :: GLenum-gl_READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D-gl_TRANSFORM_FEEDBACK_ACTIVE :: GLenum-gl_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4-gl_PROGRAM_PIPELINE_BINDING :: GLenum-gl_PROGRAM_PIPELINE_BINDING = 0x825A-gl_SRGB8_ALPHA8 :: GLenum-gl_SRGB8_ALPHA8 = 0x8C43-gl_COLOR_INDEX16_EXT :: GLenum-gl_COLOR_INDEX16_EXT = 0x80E7-gl_PHONG_WIN :: GLenum-gl_PHONG_WIN = 0x80EA-gl_MAX_TEXTURE_IMAGE_UNITS_NV :: GLenum-gl_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872-gl_DSDT8_MAG8_NV :: GLenum-gl_DSDT8_MAG8_NV = 0x870A-gl_COPY_READ_BUFFER :: GLenum-gl_COPY_READ_BUFFER = 0x8F36-gl_RGBA16F :: GLenum-gl_RGBA16F = 0x881A-gl_UNSIGNED_SHORT_5_6_5 :: GLenum-gl_UNSIGNED_SHORT_5_6_5 = 0x8363-gl_CLIP_DISTANCE5 :: GLenum-gl_CLIP_DISTANCE5 = 0x3005-gl_TEXTURE_BINDING_3D_OES :: GLenum-gl_TEXTURE_BINDING_3D_OES = 0x806A-gl_IUI_V2F_EXT :: GLenum-gl_IUI_V2F_EXT = 0x81AD-gl_OFFSET_HILO_TEXTURE_RECTANGLE_NV :: GLenum-gl_OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855-gl_ONE_MINUS_CONSTANT_ALPHA :: GLenum-gl_ONE_MINUS_CONSTANT_ALPHA = 0x8004-gl_SMALL_CW_ARC_TO_NV :: GLenum-gl_SMALL_CW_ARC_TO_NV = 0x14-gl_IMAGE_BINDING_NAME_EXT :: GLenum-gl_IMAGE_BINDING_NAME_EXT = 0x8F3A-gl_CURRENT_FOG_COORDINATE_EXT :: GLenum-gl_CURRENT_FOG_COORDINATE_EXT = 0x8453-gl_SKIP_COMPONENTS4_NV :: GLenum-gl_SKIP_COMPONENTS4_NV = -3-gl_CLIP_PLANE5_IMG :: GLenum-gl_CLIP_PLANE5_IMG = 0x3005-gl_PATH_MITER_LIMIT_NV :: GLenum-gl_PATH_MITER_LIMIT_NV = 0x907A-gl_TEXTURE_3D :: GLenum-gl_TEXTURE_3D = 0x806F-gl_MAX_COMPUTE_SHADER_STORAGE_BLOCKS :: GLenum-gl_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB-gl_COMPRESSED_LUMINANCE_LATC1_EXT :: GLenum-gl_COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70-gl_MULTISAMPLE_BUFFER_BIT3_QCOM :: GLenum-gl_MULTISAMPLE_BUFFER_BIT3_QCOM = 0x08000000-gl_SECONDARY_COLOR_ARRAY_SIZE :: GLenum-gl_SECONDARY_COLOR_ARRAY_SIZE = 0x845A-gl_RENDERBUFFER_SAMPLES_IMG :: GLenum-gl_RENDERBUFFER_SAMPLES_IMG = 0x9133-gl_R1UI_C4UB_V3F_SUN :: GLenum-gl_R1UI_C4UB_V3F_SUN = 0x85C5-gl_PIXEL_TEX_GEN_ALPHA_MS_SGIX :: GLenum-gl_PIXEL_TEX_GEN_ALPHA_MS_SGIX = 0x818A-gl_TRANSFORM_FEEDBACK_NV :: GLenum-gl_TRANSFORM_FEEDBACK_NV = 0x8E22-gl_FRAMEBUFFER_RENDERABLE :: GLenum-gl_FRAMEBUFFER_RENDERABLE = 0x8289-gl_HARDLIGHT_KHR :: GLenum-gl_HARDLIGHT_KHR = 0x929B-gl_SOURCE0_ALPHA :: GLenum-gl_SOURCE0_ALPHA = 0x8588-gl_COMBINER4_NV :: GLenum-gl_COMBINER4_NV = 0x8554-gl_ELEMENT_ARRAY_BUFFER_BINDING :: GLenum-gl_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895-gl_TEXTURE10_ARB :: GLenum-gl_TEXTURE10_ARB = 0x84CA-gl_CURRENT_BINORMAL_EXT :: GLenum-gl_CURRENT_BINORMAL_EXT = 0x843C-gl_REG_26_ATI :: GLenum-gl_REG_26_ATI = 0x893B-gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS :: GLenum-gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1-gl_ACTIVE_VARYINGS_NV :: GLenum-gl_ACTIVE_VARYINGS_NV = 0x8C81-gl_COMBINE_RGB_EXT :: GLenum-gl_COMBINE_RGB_EXT = 0x8571-gl_FRAMEBUFFER_COMPLETE_EXT :: GLenum-gl_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5-gl_MAX_WIDTH :: GLenum-gl_MAX_WIDTH = 0x827E-gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS :: GLenum-gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5-gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT :: GLenum-gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8-gl_COLORDODGE_KHR :: GLenum-gl_COLORDODGE_KHR = 0x9299-gl_PATH_GEN_COEFF_NV :: GLenum-gl_PATH_GEN_COEFF_NV = 0x90B1-gl_FLOAT_MAT4x3_NV :: GLenum-gl_FLOAT_MAT4x3_NV = 0x8B6A-gl_MINMAX_SINK :: GLenum-gl_MINMAX_SINK = 0x8030-gl_FRONT_AND_BACK :: GLenum-gl_FRONT_AND_BACK = 0x0408-gl_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT :: GLenum-gl_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x8E5A-gl_MATRIX1_ARB :: GLenum-gl_MATRIX1_ARB = 0x88C1-gl_VIEWPORT_SUBPIXEL_BITS :: GLenum-gl_VIEWPORT_SUBPIXEL_BITS = 0x825C-gl_MAX_DUAL_SOURCE_DRAW_BUFFERS :: GLenum-gl_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC-gl_BOOL_VEC3_ARB :: GLenum-gl_BOOL_VEC3_ARB = 0x8B58-gl_OPERAND2_ALPHA :: GLenum-gl_OPERAND2_ALPHA = 0x859A-gl_MAX_DEBUG_GROUP_STACK_DEPTH :: GLenum-gl_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC-gl_PROGRAM :: GLenum-gl_PROGRAM = 0x82E2-gl_WEIGHT_ARRAY_SIZE_ARB :: GLenum-gl_WEIGHT_ARRAY_SIZE_ARB = 0x86AB-gl_BUFFER_GPU_ADDRESS_NV :: GLenum-gl_BUFFER_GPU_ADDRESS_NV = 0x8F1D-gl_ALPHA8_EXT :: GLenum-gl_ALPHA8_EXT = 0x803C-gl_RGBA_MODE :: GLenum-gl_RGBA_MODE = 0x0C31-gl_DUDV_ATI :: GLenum-gl_DUDV_ATI = 0x8779-gl_VERTEX_ATTRIB_ARRAY_INTEGER_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD-gl_RESAMPLE_DECIMATE_OML :: GLenum-gl_RESAMPLE_DECIMATE_OML = 0x8989-gl_QUERY_BUFFER :: GLenum-gl_QUERY_BUFFER = 0x9192-gl_SINGLE_COLOR :: GLenum-gl_SINGLE_COLOR = 0x81F9-gl_INT_SAMPLER_RENDERBUFFER_NV :: GLenum-gl_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57-gl_MAT_COLOR_INDEXES_BIT_PGI :: GLenum-gl_MAT_COLOR_INDEXES_BIT_PGI = 0x01000000-gl_MODELVIEW3_ARB :: GLenum-gl_MODELVIEW3_ARB = 0x8723-gl_TESS_CONTROL_OUTPUT_VERTICES_EXT :: GLenum-gl_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75-gl_PIXEL_MAP_B_TO_B :: GLenum-gl_PIXEL_MAP_B_TO_B = 0x0C78-gl_VERTEX_ATTRIB_MAP1_SIZE_APPLE :: GLenum-gl_VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02-gl_DOUBLE_MAT3 :: GLenum-gl_DOUBLE_MAT3 = 0x8F47-gl_MAX_COMBINED_UNIFORM_BLOCKS :: GLenum-gl_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E-gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT :: GLenum-gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = 0x900D-gl_MAX_VERTEX_IMAGE_UNIFORMS :: GLenum-gl_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA-gl_QUERY_RESULT_NO_WAIT_AMD :: GLenum-gl_QUERY_RESULT_NO_WAIT_AMD = 0x9194-gl_MODELVIEW26_ARB :: GLenum-gl_MODELVIEW26_ARB = 0x873A-gl_DEPTH_COMPONENT24_OES :: GLenum-gl_DEPTH_COMPONENT24_OES = 0x81A6-gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB :: GLenum-gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E-gl_EVAL_VERTEX_ATTRIB6_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB6_NV = 0x86CC-gl_OUTPUT_TEXTURE_COORD24_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5-gl_COMPUTE_SHADER_BIT :: GLenum-gl_COMPUTE_SHADER_BIT = 0x00000020-gl_MATRIX7_ARB :: GLenum-gl_MATRIX7_ARB = 0x88C7-gl_RENDER :: GLenum-gl_RENDER = 0x1C00-gl_VERTEX_ATTRIB_BINDING :: GLenum-gl_VERTEX_ATTRIB_BINDING = 0x82D4-gl_VIDEO_CAPTURE_TO_422_SUPPORTED_NV :: GLenum-gl_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026-gl_TEXTURE_COORD_ARRAY_ADDRESS_NV :: GLenum-gl_TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25-gl_UNSIGNED_INT_SAMPLER_2D_RECT :: GLenum-gl_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5-gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB :: GLenum-gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29-gl_GENERATE_MIPMAP_SGIS :: GLenum-gl_GENERATE_MIPMAP_SGIS = 0x8191-gl_SHADER_IMAGE_STORE :: GLenum-gl_SHADER_IMAGE_STORE = 0x82A5-gl_INT_SAMPLER_3D :: GLenum-gl_INT_SAMPLER_3D = 0x8DCB-gl_PROGRAM_BINARY_LENGTH :: GLenum-gl_PROGRAM_BINARY_LENGTH = 0x8741-gl_REFERENCED_BY_GEOMETRY_SHADER :: GLenum-gl_REFERENCED_BY_GEOMETRY_SHADER = 0x9309-gl_SHADER_IMAGE_ACCESS_BARRIER_BIT :: GLenum-gl_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020-gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS :: GLenum-gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3-gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT :: GLenum-gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F-gl_LINE :: GLenum-gl_LINE = 0x1B01-gl_RENDERBUFFER_ALPHA_SIZE_EXT :: GLenum-gl_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53-gl_INTENSITY :: GLenum-gl_INTENSITY = 0x8049-gl_AFFINE_3D_NV :: GLenum-gl_AFFINE_3D_NV = 0x9094-gl_ADD_SIGNED_ARB :: GLenum-gl_ADD_SIGNED_ARB = 0x8574-gl_OBJECT_COMPILE_STATUS_ARB :: GLenum-gl_OBJECT_COMPILE_STATUS_ARB = 0x8B81-gl_RGB8I_EXT :: GLenum-gl_RGB8I_EXT = 0x8D8F-gl_COMMAND_BARRIER_BIT :: GLenum-gl_COMMAND_BARRIER_BIT = 0x00000040-gl_COMBINE_RGB :: GLenum-gl_COMBINE_RGB = 0x8571-gl_VERTEX_SHADER_BINDING_EXT :: GLenum-gl_VERTEX_SHADER_BINDING_EXT = 0x8781-gl_SECONDARY_COLOR_ARRAY_SIZE_EXT :: GLenum-gl_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A-gl_DEPTH_EXT :: GLenum-gl_DEPTH_EXT = 0x1801-gl_LINE_RESET_TOKEN :: GLenum-gl_LINE_RESET_TOKEN = 0x0707-gl_SMOOTH_POINT_SIZE_GRANULARITY :: GLenum-gl_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13-gl_SAMPLER_2D_MULTISAMPLE :: GLenum-gl_SAMPLER_2D_MULTISAMPLE = 0x9108-gl_PRIMARY_COLOR_ARB :: GLenum-gl_PRIMARY_COLOR_ARB = 0x8577-gl_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY :: GLenum-gl_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103-gl_GEOMETRY_TEXTURE :: GLenum-gl_GEOMETRY_TEXTURE = 0x829E-gl_SOURCE1_RGB_ARB :: GLenum-gl_SOURCE1_RGB_ARB = 0x8581-gl_COLOR_ATTACHMENT6_EXT :: GLenum-gl_COLOR_ATTACHMENT6_EXT = 0x8CE6-gl_PIXEL_MAP_I_TO_I :: GLenum-gl_PIXEL_MAP_I_TO_I = 0x0C70-gl_EVAL_VERTEX_ATTRIB7_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB7_NV = 0x86CD-gl_OP_MIN_EXT :: GLenum-gl_OP_MIN_EXT = 0x878B-gl_RGB16F_EXT :: GLenum-gl_RGB16F_EXT = 0x881B-gl_TEXTURE_CUBE_MAP_POSITIVE_Z :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519-gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS :: GLenum-gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39-gl_PACK_RESAMPLE_SGIX :: GLenum-gl_PACK_RESAMPLE_SGIX = 0x842C-gl_GREEN_BIAS :: GLenum-gl_GREEN_BIAS = 0x0D19-gl_DEPTH_STENCIL_NV :: GLenum-gl_DEPTH_STENCIL_NV = 0x84F9-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER :: GLenum-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8-gl_CON_29_ATI :: GLenum-gl_CON_29_ATI = 0x895E-gl_COLOR_ARRAY_STRIDE_EXT :: GLenum-gl_COLOR_ARRAY_STRIDE_EXT = 0x8083-gl_ISOLINES_EXT :: GLenum-gl_ISOLINES_EXT = 0x8E7A-gl_MODELVIEW4_ARB :: GLenum-gl_MODELVIEW4_ARB = 0x8724-gl_LINES_ADJACENCY :: GLenum-gl_LINES_ADJACENCY = 0x000A-gl_PATH_FILL_MASK_NV :: GLenum-gl_PATH_FILL_MASK_NV = 0x9081-gl_HISTOGRAM_LUMINANCE_SIZE :: GLenum-gl_HISTOGRAM_LUMINANCE_SIZE = 0x802C-gl_TEXTURE_BINDING_RENDERBUFFER_NV :: GLenum-gl_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53-gl_PIXEL_UNPACK_BUFFER_EXT :: GLenum-gl_PIXEL_UNPACK_BUFFER_EXT = 0x88EC-gl_RENDERBUFFER_GREEN_SIZE :: GLenum-gl_RENDERBUFFER_GREEN_SIZE = 0x8D51-gl_PASS_THROUGH_NV :: GLenum-gl_PASS_THROUGH_NV = 0x86E6-gl_GEOMETRY_VERTICES_OUT_EXT :: GLenum-gl_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA-gl_EVAL_VERTEX_ATTRIB12_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB12_NV = 0x86D2-gl_SMOOTH_QUADRATIC_CURVE_TO_NV :: GLenum-gl_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E-gl_TEXTURE_BUFFER_SIZE :: GLenum-gl_TEXTURE_BUFFER_SIZE = 0x919E-gl_READ_PIXEL_DATA_RANGE_NV :: GLenum-gl_READ_PIXEL_DATA_RANGE_NV = 0x8879-gl_ALIASED_LINE_WIDTH_RANGE :: GLenum-gl_ALIASED_LINE_WIDTH_RANGE = 0x846E-gl_TRACK_MATRIX_NV :: GLenum-gl_TRACK_MATRIX_NV = 0x8648-gl_COLOR_ARRAY_LIST_STRIDE_IBM :: GLenum-gl_COLOR_ARRAY_LIST_STRIDE_IBM = 103082-gl_WEIGHT_ARRAY_POINTER_ARB :: GLenum-gl_WEIGHT_ARRAY_POINTER_ARB = 0x86AC-gl_SMOOTH_LINE_WIDTH_GRANULARITY :: GLenum-gl_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23-gl_CLIP_DISTANCE6 :: GLenum-gl_CLIP_DISTANCE6 = 0x3006-gl_FRAMEBUFFER_BINDING :: GLenum-gl_FRAMEBUFFER_BINDING = 0x8CA6-gl_EVAL_VERTEX_ATTRIB4_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB4_NV = 0x86CA-gl_CURRENT_SECONDARY_COLOR_EXT :: GLenum-gl_CURRENT_SECONDARY_COLOR_EXT = 0x8459-gl_IMAGE_CLASS_2_X_32 :: GLenum-gl_IMAGE_CLASS_2_X_32 = 0x82BA-gl_PERSPECTIVE_CORRECTION_HINT :: GLenum-gl_PERSPECTIVE_CORRECTION_HINT = 0x0C50-gl_NATIVE_GRAPHICS_BEGIN_HINT_PGI :: GLenum-gl_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203-gl_SATURATE_BIT_ATI :: GLenum-gl_SATURATE_BIT_ATI = 0x00000040-gl_FONT_UNITS_PER_EM_BIT_NV :: GLenum-gl_FONT_UNITS_PER_EM_BIT_NV = 0x00100000-gl_EVAL_VERTEX_ATTRIB3_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB3_NV = 0x86C9-gl_R16UI :: GLenum-gl_R16UI = 0x8234-gl_OUTPUT_TEXTURE_COORD17_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE-gl_TEXTURE_MULTI_BUFFER_HINT_SGIX :: GLenum-gl_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E-gl_SKIP_MISSING_GLYPH_NV :: GLenum-gl_SKIP_MISSING_GLYPH_NV = 0x90A9-gl_MIRROR_CLAMP_TO_EDGE_EXT :: GLenum-gl_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743-gl_TEXTURE_TYPE_QCOM :: GLenum-gl_TEXTURE_TYPE_QCOM = 0x8BD7-gl_RGB5_A1 :: GLenum-gl_RGB5_A1 = 0x8057-gl_UNIFORM_BARRIER_BIT_EXT :: GLenum-gl_UNIFORM_BARRIER_BIT_EXT = 0x00000004-gl_MULTISAMPLE :: GLenum-gl_MULTISAMPLE = 0x809D-gl_SAMPLES_ARB :: GLenum-gl_SAMPLES_ARB = 0x80A9-gl_RGBA_INTEGER :: GLenum-gl_RGBA_INTEGER = 0x8D99-gl_STENCIL_COMPONENTS :: GLenum-gl_STENCIL_COMPONENTS = 0x8285-gl_DEBUG_SEVERITY_LOW :: GLenum-gl_DEBUG_SEVERITY_LOW = 0x9148-gl_TEXTURE_COMPARE_SGIX :: GLenum-gl_TEXTURE_COMPARE_SGIX = 0x819A-gl_COLOR_ARRAY_LIST_IBM :: GLenum-gl_COLOR_ARRAY_LIST_IBM = 103072-gl_COMPRESSED_SIGNED_RED_RGTC1 :: GLenum-gl_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC-gl_MATRIX3_NV :: GLenum-gl_MATRIX3_NV = 0x8633-gl_MAX_FRAGMENT_UNIFORM_BLOCKS :: GLenum-gl_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D-gl_INT_SAMPLER_3D_EXT :: GLenum-gl_INT_SAMPLER_3D_EXT = 0x8DCB-gl_MODELVIEW19_ARB :: GLenum-gl_MODELVIEW19_ARB = 0x8733-gl_SWIZZLE_STRQ_DQ_ATI :: GLenum-gl_SWIZZLE_STRQ_DQ_ATI = 0x897B-gl_COMBINE_ARB :: GLenum-gl_COMBINE_ARB = 0x8570-gl_FRAGMENT_COLOR_EXT :: GLenum-gl_FRAGMENT_COLOR_EXT = 0x834C-gl_RENDERBUFFER_WIDTH :: GLenum-gl_RENDERBUFFER_WIDTH = 0x8D42-gl_LUMINANCE4_EXT :: GLenum-gl_LUMINANCE4_EXT = 0x803F-gl_UNSIGNED_INT_SAMPLER_2D_EXT :: GLenum-gl_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2-gl_RGB_SCALE_EXT :: GLenum-gl_RGB_SCALE_EXT = 0x8573-gl_PIXEL_MAP_I_TO_R :: GLenum-gl_PIXEL_MAP_I_TO_R = 0x0C72-gl_DOT4_ATI :: GLenum-gl_DOT4_ATI = 0x8967-gl_MAP1_VERTEX_ATTRIB7_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667-gl_VERTEX_ATTRIB_ARRAY_ENABLED_ARB :: GLenum-gl_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622-gl_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB :: GLenum-gl_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C-gl_POST_COLOR_MATRIX_BLUE_SCALE_SGI :: GLenum-gl_POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6-gl_NUM_VIRTUAL_PAGE_SIZES_ARB :: GLenum-gl_NUM_VIRTUAL_PAGE_SIZES_ARB = 0x91A8-gl_RENDERBUFFER_FREE_MEMORY_ATI :: GLenum-gl_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD-gl_FRAMEBUFFER_DEFAULT_LAYERS :: GLenum-gl_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312-gl_COMPUTE_SUBROUTINE :: GLenum-gl_COMPUTE_SUBROUTINE = 0x92ED-gl_PROGRAM_TEX_INSTRUCTIONS_ARB :: GLenum-gl_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806-gl_SIGNALED_APPLE :: GLenum-gl_SIGNALED_APPLE = 0x9119-gl_MULTISAMPLE_3DFX :: GLenum-gl_MULTISAMPLE_3DFX = 0x86B2-gl_TEXTURE_INDEX_SIZE_EXT :: GLenum-gl_TEXTURE_INDEX_SIZE_EXT = 0x80ED-gl_LAYOUT_LINEAR_INTEL :: GLenum-gl_LAYOUT_LINEAR_INTEL = 1-gl_LERP_ATI :: GLenum-gl_LERP_ATI = 0x8969-gl_FACTOR_MAX_AMD :: GLenum-gl_FACTOR_MAX_AMD = 0x901D-gl_MATRIX2_ARB :: GLenum-gl_MATRIX2_ARB = 0x88C2-gl_EQUAL :: GLenum-gl_EQUAL = 0x0202-gl_COLOR_ATTACHMENT0_OES :: GLenum-gl_COLOR_ATTACHMENT0_OES = 0x8CE0-gl_MAX_COLOR_MATRIX_STACK_DEPTH_SGI :: GLenum-gl_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3-gl_RGB16 :: GLenum-gl_RGB16 = 0x8054-gl_COLOR_INDEX4_EXT :: GLenum-gl_COLOR_INDEX4_EXT = 0x80E4-gl_PROXY_TEXTURE_CUBE_MAP_EXT :: GLenum-gl_PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B-gl_STENCIL_BACK_FUNC_ATI :: GLenum-gl_STENCIL_BACK_FUNC_ATI = 0x8800-gl_DRAW_BUFFER8_EXT :: GLenum-gl_DRAW_BUFFER8_EXT = 0x882D-gl_DST_ALPHA :: GLenum-gl_DST_ALPHA = 0x0304-gl_DEBUG_SOURCE_SHADER_COMPILER_KHR :: GLenum-gl_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248-gl_C4UB_V2F :: GLenum-gl_C4UB_V2F = 0x2A22-gl_INTERNALFORMAT_BLUE_TYPE :: GLenum-gl_INTERNALFORMAT_BLUE_TYPE = 0x827A-gl_PIXEL_TILE_GRID_DEPTH_SGIX :: GLenum-gl_PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144-gl_DEPTH_BITS :: GLenum-gl_DEPTH_BITS = 0x0D56-gl_FLOAT16_VEC3_NV :: GLenum-gl_FLOAT16_VEC3_NV = 0x8FFA-gl_ARRAY_OBJECT_OFFSET_ATI :: GLenum-gl_ARRAY_OBJECT_OFFSET_ATI = 0x8767-gl_DOUBLE_MAT2_EXT :: GLenum-gl_DOUBLE_MAT2_EXT = 0x8F46-gl_TEXTURE_COLOR_SAMPLES_NV :: GLenum-gl_TEXTURE_COLOR_SAMPLES_NV = 0x9046-gl_NORMAL_ARRAY_EXT :: GLenum-gl_NORMAL_ARRAY_EXT = 0x8075-gl_MIRROR_CLAMP_TO_EDGE_ATI :: GLenum-gl_MIRROR_CLAMP_TO_EDGE_ATI = 0x8743-gl_EDGE_FLAG_ARRAY_POINTER :: GLenum-gl_EDGE_FLAG_ARRAY_POINTER = 0x8093-gl_UNSIGNED_INT_24_8_MESA :: GLenum-gl_UNSIGNED_INT_24_8_MESA = 0x8751-gl_IMAGE_COMPATIBILITY_CLASS :: GLenum-gl_IMAGE_COMPATIBILITY_CLASS = 0x82A8-gl_BACK_LEFT :: GLenum-gl_BACK_LEFT = 0x0402-gl_TESS_EVALUATION_SHADER_INVOCATIONS_ARB :: GLenum-gl_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = 0x82F2-gl_COLOR_TABLE_BIAS :: GLenum-gl_COLOR_TABLE_BIAS = 0x80D7-gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG :: GLenum-gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = 0x93F1-gl_DARKEN_KHR :: GLenum-gl_DARKEN_KHR = 0x9297-gl_OCCLUSION_TEST_RESULT_HP :: GLenum-gl_OCCLUSION_TEST_RESULT_HP = 0x8166-gl_DEBUG_TYPE_POP_GROUP_KHR :: GLenum-gl_DEBUG_TYPE_POP_GROUP_KHR = 0x826A-gl_CLAMP_TO_BORDER_ARB :: GLenum-gl_CLAMP_TO_BORDER_ARB = 0x812D-gl_UNSIGNED_BYTE_2_3_3_REV :: GLenum-gl_UNSIGNED_BYTE_2_3_3_REV = 0x8362-gl_SOURCE2_ALPHA_ARB :: GLenum-gl_SOURCE2_ALPHA_ARB = 0x858A-gl_SAMPLE_COVERAGE :: GLenum-gl_SAMPLE_COVERAGE = 0x80A0-gl_INTERLEAVED_ATTRIBS_EXT :: GLenum-gl_INTERLEAVED_ATTRIBS_EXT = 0x8C8C-gl_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL :: GLenum-gl_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB-gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING :: GLenum-gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F-gl_VERTEX_SHADER :: GLenum-gl_VERTEX_SHADER = 0x8B31-gl_INDEX_ARRAY_ADDRESS_NV :: GLenum-gl_INDEX_ARRAY_ADDRESS_NV = 0x8F24-gl_QUERY_COUNTER_BITS :: GLenum-gl_QUERY_COUNTER_BITS = 0x8864-gl_COMPRESSED_RGBA_ASTC_8x6_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6-gl_FRAMEBUFFER_BINDING_EXT :: GLenum-gl_FRAMEBUFFER_BINDING_EXT = 0x8CA6-gl_VERTEX_ELEMENT_SWIZZLE_AMD :: GLenum-gl_VERTEX_ELEMENT_SWIZZLE_AMD = 0x91A4-gl_DEBUG_CATEGORY_SHADER_COMPILER_AMD :: GLenum-gl_DEBUG_CATEGORY_SHADER_COMPILER_AMD = 0x914E-gl_ARRAY_OBJECT_BUFFER_ATI :: GLenum-gl_ARRAY_OBJECT_BUFFER_ATI = 0x8766-gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES :: GLenum-gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910C-gl_RENDERBUFFER_INTERNAL_FORMAT :: GLenum-gl_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44-gl_VIEW_CLASS_8_BITS :: GLenum-gl_VIEW_CLASS_8_BITS = 0x82CB-gl_TEXTURE_CUBE_MAP_POSITIVE_Y_OES :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517-gl_SHADER_IMAGE_ATOMIC :: GLenum-gl_SHADER_IMAGE_ATOMIC = 0x82A6-gl_MAX_GEOMETRY_OUTPUT_VERTICES_ARB :: GLenum-gl_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0-gl_COVERAGE_ATTACHMENT_NV :: GLenum-gl_COVERAGE_ATTACHMENT_NV = 0x8ED2-gl_NUM_PROGRAM_BINARY_FORMATS_OES :: GLenum-gl_NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE-gl_CURRENT_RASTER_TEXTURE_COORDS :: GLenum-gl_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06-gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS :: GLenum-gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86-gl_PIXEL_MAP_A_TO_A :: GLenum-gl_PIXEL_MAP_A_TO_A = 0x0C79-gl_TEXTURE_WRAP_T :: GLenum-gl_TEXTURE_WRAP_T = 0x2803-gl_LINE_SMOOTH_HINT :: GLenum-gl_LINE_SMOOTH_HINT = 0x0C52-gl_DRAW_BUFFER11_EXT :: GLenum-gl_DRAW_BUFFER11_EXT = 0x8830-gl_OFFSET_TEXTURE_RECTANGLE_SCALE_NV :: GLenum-gl_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D-gl_LUMINANCE16_SNORM :: GLenum-gl_LUMINANCE16_SNORM = 0x9019-gl_PERFQUERY_FLUSH_INTEL :: GLenum-gl_PERFQUERY_FLUSH_INTEL = 0x83FA-gl_HISTOGRAM_SINK :: GLenum-gl_HISTOGRAM_SINK = 0x802D-gl_MAP1_VERTEX_ATTRIB15_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F-gl_OUTPUT_TEXTURE_COORD7_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4-gl_HISTOGRAM_BLUE_SIZE :: GLenum-gl_HISTOGRAM_BLUE_SIZE = 0x802A-gl_LUMINANCE32F_EXT :: GLenum-gl_LUMINANCE32F_EXT = 0x8818-gl_RG16UI :: GLenum-gl_RG16UI = 0x823A-gl_TEXTURE_ALPHA_MODULATE_IMG :: GLenum-gl_TEXTURE_ALPHA_MODULATE_IMG = 0x8C06-gl_INT_SAMPLER_2D_RECT :: GLenum-gl_INT_SAMPLER_2D_RECT = 0x8DCD-gl_STENCIL_BACK_WRITEMASK :: GLenum-gl_STENCIL_BACK_WRITEMASK = 0x8CA5-gl_PIXEL_TRANSFORM_2D_MATRIX_EXT :: GLenum-gl_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338-gl_AUX3 :: GLenum-gl_AUX3 = 0x040C-gl_FRAMEBUFFER_UNSUPPORTED :: GLenum-gl_FRAMEBUFFER_UNSUPPORTED = 0x8CDD-gl_MAX_TEXTURE_MAX_ANISOTROPY_EXT :: GLenum-gl_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF-gl_TEXTURE_DEFORMATION_SGIX :: GLenum-gl_TEXTURE_DEFORMATION_SGIX = 0x8195-gl_CON_23_ATI :: GLenum-gl_CON_23_ATI = 0x8958-gl_CLIP_DISTANCE0 :: GLenum-gl_CLIP_DISTANCE0 = 0x3000-gl_COLOR_ATTACHMENT10 :: GLenum-gl_COLOR_ATTACHMENT10 = 0x8CEA-gl_POINT_SIZE_MAX_EXT :: GLenum-gl_POINT_SIZE_MAX_EXT = 0x8127-gl_TEXTURE5 :: GLenum-gl_TEXTURE5 = 0x84C5-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6-gl_PATH_MODELVIEW_MATRIX_NV :: GLenum-gl_PATH_MODELVIEW_MATRIX_NV = 0x0BA6-gl_LINE_LOOP :: GLenum-gl_LINE_LOOP = 0x0002-gl_MODELVIEW17_ARB :: GLenum-gl_MODELVIEW17_ARB = 0x8731-gl_UNSIGNED_INT16_VEC2_NV :: GLenum-gl_UNSIGNED_INT16_VEC2_NV = 0x8FF1-gl_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES :: GLenum-gl_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F-gl_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS :: GLenum-gl_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264-gl_DRAW_BUFFER3_EXT :: GLenum-gl_DRAW_BUFFER3_EXT = 0x8828-gl_TEXTURE_SHADOW :: GLenum-gl_TEXTURE_SHADOW = 0x82A1-gl_STENCIL_ATTACHMENT :: GLenum-gl_STENCIL_ATTACHMENT = 0x8D20-gl_MAP_STENCIL :: GLenum-gl_MAP_STENCIL = 0x0D11-gl_PATH_DASH_ARRAY_COUNT_NV :: GLenum-gl_PATH_DASH_ARRAY_COUNT_NV = 0x909F-gl_BLEND :: GLenum-gl_BLEND = 0x0BE2-gl_UNIFORM_BUFFER_OFFSET_ALIGNMENT :: GLenum-gl_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34-gl_TEXTURE_TARGET_QCOM :: GLenum-gl_TEXTURE_TARGET_QCOM = 0x8BDA-gl_NORMAL_MAP_OES :: GLenum-gl_NORMAL_MAP_OES = 0x8511-gl_UNSIGNED_SHORT_4_4_4_4_REV_EXT :: GLenum-gl_UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365-gl_TEXTURE20 :: GLenum-gl_TEXTURE20 = 0x84D4-gl_EDGE_FLAG_ARRAY_COUNT_EXT :: GLenum-gl_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D-gl_SMOOTH :: GLenum-gl_SMOOTH = 0x1D01-gl_SHADER_INCLUDE_ARB :: GLenum-gl_SHADER_INCLUDE_ARB = 0x8DAE-gl_CLAMP_TO_EDGE_SGIS :: GLenum-gl_CLAMP_TO_EDGE_SGIS = 0x812F-gl_COMPRESSED_ALPHA :: GLenum-gl_COMPRESSED_ALPHA = 0x84E9-gl_TEXTURE_IMAGE_FORMAT :: GLenum-gl_TEXTURE_IMAGE_FORMAT = 0x828F-gl_MAX_FRAMEBUFFER_LAYERS :: GLenum-gl_MAX_FRAMEBUFFER_LAYERS = 0x9317-gl_WRITEONLY_RENDERING_QCOM :: GLenum-gl_WRITEONLY_RENDERING_QCOM = 0x8823-gl_BACK_RIGHT :: GLenum-gl_BACK_RIGHT = 0x0403-gl_INVARIANT_DATATYPE_EXT :: GLenum-gl_INVARIANT_DATATYPE_EXT = 0x87EB-gl_LINE_TO_NV :: GLenum-gl_LINE_TO_NV = 0x04-gl_PIXEL_UNPACK_BUFFER_BINDING_ARB :: GLenum-gl_PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF-gl_LIST_BIT :: GLenum-gl_LIST_BIT = 0x00020000-gl_MAX_ATTRIB_STACK_DEPTH :: GLenum-gl_MAX_ATTRIB_STACK_DEPTH = 0x0D35-gl_FRAGMENT_SHADER :: GLenum-gl_FRAGMENT_SHADER = 0x8B30-gl_IMPLEMENTATION_COLOR_READ_FORMAT :: GLenum-gl_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B-gl_COLOR_TABLE_WIDTH_SGI :: GLenum-gl_COLOR_TABLE_WIDTH_SGI = 0x80D9-gl_DEBUG_OBJECT_MESA :: GLenum-gl_DEBUG_OBJECT_MESA = 0x8759-gl_EYE_LINE_SGIS :: GLenum-gl_EYE_LINE_SGIS = 0x81F6-gl_COMPRESSED_ALPHA_ARB :: GLenum-gl_COMPRESSED_ALPHA_ARB = 0x84E9-gl_DEPTH_BUFFER_BIT7_QCOM :: GLenum-gl_DEPTH_BUFFER_BIT7_QCOM = 0x00008000-gl_OPERAND2_RGB_ARB :: GLenum-gl_OPERAND2_RGB_ARB = 0x8592-gl_PROGRAM_BINARY_ANGLE :: GLenum-gl_PROGRAM_BINARY_ANGLE = 0x93A6-gl_MATRIX_EXT :: GLenum-gl_MATRIX_EXT = 0x87C0-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS :: GLenum-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80-gl_RED_NV :: GLenum-gl_RED_NV = 0x1903-gl_LIGHT7 :: GLenum-gl_LIGHT7 = 0x4007-gl_LOW_FLOAT :: GLenum-gl_LOW_FLOAT = 0x8DF0-gl_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F-gl_CON_18_ATI :: GLenum-gl_CON_18_ATI = 0x8953-gl_UNIFORM_BUFFER_ADDRESS_NV :: GLenum-gl_UNIFORM_BUFFER_ADDRESS_NV = 0x936F-gl_VERTEX_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896-gl_RED_BIT_ATI :: GLenum-gl_RED_BIT_ATI = 0x00000001-gl_TRACE_TEXTURES_BIT_MESA :: GLenum-gl_TRACE_TEXTURES_BIT_MESA = 0x0008-gl_GEOMETRY_SHADER :: GLenum-gl_GEOMETRY_SHADER = 0x8DD9-gl_VERTEX_ARRAY_ADDRESS_NV :: GLenum-gl_VERTEX_ARRAY_ADDRESS_NV = 0x8F21-gl_TIMEOUT_IGNORED_APPLE :: GLenum-gl_TIMEOUT_IGNORED_APPLE = 0xFFFFFFFFFFFFFFFF-gl_RENDERBUFFER_BINDING :: GLenum-gl_RENDERBUFFER_BINDING = 0x8CA7-gl_RGB16F :: GLenum-gl_RGB16F = 0x881B-gl_TEXTURE_COORD_ARRAY_LENGTH_NV :: GLenum-gl_TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F-gl_MAX_FRAMEBUFFER_LAYERS_EXT :: GLenum-gl_MAX_FRAMEBUFFER_LAYERS_EXT = 0x9317-gl_MODELVIEW23_ARB :: GLenum-gl_MODELVIEW23_ARB = 0x8737-gl_BGR_EXT :: GLenum-gl_BGR_EXT = 0x80E0-gl_ONE_MINUS_SRC1_COLOR :: GLenum-gl_ONE_MINUS_SRC1_COLOR = 0x88FA-gl_VARIANT_ARRAY_EXT :: GLenum-gl_VARIANT_ARRAY_EXT = 0x87E8-gl_RGB4 :: GLenum-gl_RGB4 = 0x804F-gl_RENDERBUFFER_DEPTH_SIZE_OES :: GLenum-gl_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54-gl_MAX_VARYING_COMPONENTS_EXT :: GLenum-gl_MAX_VARYING_COMPONENTS_EXT = 0x8B4B-gl_CURRENT_MATRIX_NV :: GLenum-gl_CURRENT_MATRIX_NV = 0x8641-gl_T2F_IUI_N3F_V3F_EXT :: GLenum-gl_T2F_IUI_N3F_V3F_EXT = 0x81B4-gl_SLUMINANCE8 :: GLenum-gl_SLUMINANCE8 = 0x8C47-gl_MODELVIEW1_MATRIX_EXT :: GLenum-gl_MODELVIEW1_MATRIX_EXT = 0x8506-gl_MODELVIEW29_ARB :: GLenum-gl_MODELVIEW29_ARB = 0x873D-gl_COLOR_ATTACHMENT5_EXT :: GLenum-gl_COLOR_ATTACHMENT5_EXT = 0x8CE5-gl_DOUBLE_MAT2 :: GLenum-gl_DOUBLE_MAT2 = 0x8F46-gl_RGBA12_EXT :: GLenum-gl_RGBA12_EXT = 0x805A-gl_ACCUM_BLUE_BITS :: GLenum-gl_ACCUM_BLUE_BITS = 0x0D5A-gl_INVARIANT_EXT :: GLenum-gl_INVARIANT_EXT = 0x87C2-gl_ACTIVE_UNIFORM_MAX_LENGTH :: GLenum-gl_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87-gl_FOG_SPECULAR_TEXTURE_WIN :: GLenum-gl_FOG_SPECULAR_TEXTURE_WIN = 0x80EC-gl_COLOR_TABLE_SCALE_SGI :: GLenum-gl_COLOR_TABLE_SCALE_SGI = 0x80D6-gl_IUI_V3F_EXT :: GLenum-gl_IUI_V3F_EXT = 0x81AE-gl_UNSIGNED_INT_IMAGE_3D_EXT :: GLenum-gl_UNSIGNED_INT_IMAGE_3D_EXT = 0x9064-gl_MAX_DEBUG_MESSAGE_LENGTH_KHR :: GLenum-gl_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143-gl_TEXTURE_CUBE_MAP_POSITIVE_Y :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517-gl_DOUBLE_VEC2 :: GLenum-gl_DOUBLE_VEC2 = 0x8FFC-gl_MAX_SAMPLE_MASK_WORDS :: GLenum-gl_MAX_SAMPLE_MASK_WORDS = 0x8E59-gl_DEBUG_OUTPUT :: GLenum-gl_DEBUG_OUTPUT = 0x92E0-gl_OBJECT_SHADER_SOURCE_LENGTH_ARB :: GLenum-gl_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88-gl_R32F_EXT :: GLenum-gl_R32F_EXT = 0x822E-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV :: GLenum-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = 0x8C4E-gl_COPY_WRITE_BUFFER_BINDING :: GLenum-gl_COPY_WRITE_BUFFER_BINDING = 0x8F37-gl_TEXTURE15_ARB :: GLenum-gl_TEXTURE15_ARB = 0x84CF-gl_UNIFORM_BLOCK_NAME_LENGTH :: GLenum-gl_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41-gl_COLOR_ATTACHMENT4_NV :: GLenum-gl_COLOR_ATTACHMENT4_NV = 0x8CE4-gl_DST_OVER_NV :: GLenum-gl_DST_OVER_NV = 0x9289-gl_ATOMIC_COUNTER_BUFFER :: GLenum-gl_ATOMIC_COUNTER_BUFFER = 0x92C0-gl_MAP1_VERTEX_ATTRIB12_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C-gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB :: GLenum-gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C-gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV :: GLenum-gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3-gl_RGB_RAW_422_APPLE :: GLenum-gl_RGB_RAW_422_APPLE = 0x8A51-gl_MAX_RECTANGLE_TEXTURE_SIZE :: GLenum-gl_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8-gl_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7-gl_FRAGMENT_COLOR_MATERIAL_SGIX :: GLenum-gl_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401-gl_POST_COLOR_MATRIX_RED_SCALE_SGI :: GLenum-gl_POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4-gl_VIBRANCE_SCALE_NV :: GLenum-gl_VIBRANCE_SCALE_NV = 0x8713-gl_POINT_FADE_THRESHOLD_SIZE :: GLenum-gl_POINT_FADE_THRESHOLD_SIZE = 0x8128-gl_QUERY_NO_WAIT_NV :: GLenum-gl_QUERY_NO_WAIT_NV = 0x8E14-gl_FRAGMENT_SHADER_DERIVATIVE_HINT_OES :: GLenum-gl_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B-gl_RESAMPLE_REPLICATE_OML :: GLenum-gl_RESAMPLE_REPLICATE_OML = 0x8986-gl_RENDERBUFFER_BINDING_ANGLE :: GLenum-gl_RENDERBUFFER_BINDING_ANGLE = 0x8CA7-gl_R1UI_V3F_SUN :: GLenum-gl_R1UI_V3F_SUN = 0x85C4-gl_CONVOLUTION_2D :: GLenum-gl_CONVOLUTION_2D = 0x8011-gl_OBJECT_TYPE :: GLenum-gl_OBJECT_TYPE = 0x9112-gl_MAX_MAP_TESSELLATION_NV :: GLenum-gl_MAX_MAP_TESSELLATION_NV = 0x86D6-gl_DOUBLE_MAT4x3_EXT :: GLenum-gl_DOUBLE_MAT4x3_EXT = 0x8F4E-gl_MULTISAMPLE_BUFFER_BIT4_QCOM :: GLenum-gl_MULTISAMPLE_BUFFER_BIT4_QCOM = 0x10000000-gl_UNSIGNED_INT64_AMD :: GLenum-gl_UNSIGNED_INT64_AMD = 0x8BC2-gl_MAX_PATCH_VERTICES :: GLenum-gl_MAX_PATCH_VERTICES = 0x8E7D-gl_TEXTURE_COMPONENTS :: GLenum-gl_TEXTURE_COMPONENTS = 0x1003-gl_ELEMENT_ARRAY_POINTER_APPLE :: GLenum-gl_ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E-gl_COLOR_ATTACHMENT6_NV :: GLenum-gl_COLOR_ATTACHMENT6_NV = 0x8CE6-gl_MODELVIEW_PROJECTION_NV :: GLenum-gl_MODELVIEW_PROJECTION_NV = 0x8629-gl_STATIC_ATI :: GLenum-gl_STATIC_ATI = 0x8760-gl_TEXTURE_CUBE_MAP_NEGATIVE_Z :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A-gl_CONVOLUTION_BORDER_MODE :: GLenum-gl_CONVOLUTION_BORDER_MODE = 0x8013-gl_2PASS_0_SGIS :: GLenum-gl_2PASS_0_SGIS = 0x80A2-gl_GREEN_INTEGER_EXT :: GLenum-gl_GREEN_INTEGER_EXT = 0x8D95-gl_DEBUG_TYPE_OTHER :: GLenum-gl_DEBUG_TYPE_OTHER = 0x8251-gl_FRAMEBUFFER_SRGB_EXT :: GLenum-gl_FRAMEBUFFER_SRGB_EXT = 0x8DB9-gl_COLOR_WRITEMASK :: GLenum-gl_COLOR_WRITEMASK = 0x0C23-gl_TANGENT_ARRAY_EXT :: GLenum-gl_TANGENT_ARRAY_EXT = 0x8439-gl_FONT_TARGET_UNAVAILABLE_NV :: GLenum-gl_FONT_TARGET_UNAVAILABLE_NV = 0x9369-gl_FONT_UNAVAILABLE_NV :: GLenum-gl_FONT_UNAVAILABLE_NV = 0x936A-gl_COMBINER2_NV :: GLenum-gl_COMBINER2_NV = 0x8552-gl_TEXTURE22_ARB :: GLenum-gl_TEXTURE22_ARB = 0x84D6-gl_PATH_INITIAL_DASH_CAP_NV :: GLenum-gl_PATH_INITIAL_DASH_CAP_NV = 0x907C-gl_SWIZZLE_STRQ_ATI :: GLenum-gl_SWIZZLE_STRQ_ATI = 0x897A-gl_OBJECT_LINE_SGIS :: GLenum-gl_OBJECT_LINE_SGIS = 0x81F7-gl_MAX_NUM_ACTIVE_VARIABLES :: GLenum-gl_MAX_NUM_ACTIVE_VARIABLES = 0x92F7-gl_COLOR_ATTACHMENT3_EXT :: GLenum-gl_COLOR_ATTACHMENT3_EXT = 0x8CE3-gl_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI :: GLenum-gl_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI = 0x8837-gl_SCREEN_KHR :: GLenum-gl_SCREEN_KHR = 0x9295-gl_ZOOM_X :: GLenum-gl_ZOOM_X = 0x0D16-gl_PROGRAM_MATRIX_EXT :: GLenum-gl_PROGRAM_MATRIX_EXT = 0x8E2D-gl_TEXTURE_VIEW :: GLenum-gl_TEXTURE_VIEW = 0x82B5-gl_NEGATIVE_ONE_TO_ONE :: GLenum-gl_NEGATIVE_ONE_TO_ONE = 0x935E-gl_CONVOLUTION_1D_EXT :: GLenum-gl_CONVOLUTION_1D_EXT = 0x8010-gl_CLAMP_READ_COLOR :: GLenum-gl_CLAMP_READ_COLOR = 0x891C-gl_REFLECTION_MAP :: GLenum-gl_REFLECTION_MAP = 0x8512-gl_PROXY_HISTOGRAM :: GLenum-gl_PROXY_HISTOGRAM = 0x8025-gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS :: GLenum-gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D-gl_HALF_FLOAT_ARB :: GLenum-gl_HALF_FLOAT_ARB = 0x140B-gl_LINE_QUALITY_HINT_SGIX :: GLenum-gl_LINE_QUALITY_HINT_SGIX = 0x835B-gl_MAP_WRITE_BIT_EXT :: GLenum-gl_MAP_WRITE_BIT_EXT = 0x0002-gl_PIXEL_TRANSFORM_2D_EXT :: GLenum-gl_PIXEL_TRANSFORM_2D_EXT = 0x8330-gl_INCR :: GLenum-gl_INCR = 0x1E02-gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = 0x93E0-gl_LUMINANCE_FLOAT32_ATI :: GLenum-gl_LUMINANCE_FLOAT32_ATI = 0x8818-gl_EVAL_VERTEX_ATTRIB11_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB11_NV = 0x86D1-gl_TEXTURE_COORD_ARRAY_SIZE :: GLenum-gl_TEXTURE_COORD_ARRAY_SIZE = 0x8088-gl_IMAGE_BINDING_LEVEL_EXT :: GLenum-gl_IMAGE_BINDING_LEVEL_EXT = 0x8F3B-gl_RGBA16I_EXT :: GLenum-gl_RGBA16I_EXT = 0x8D88-gl_T2F_IUI_N3F_V2F_EXT :: GLenum-gl_T2F_IUI_N3F_V2F_EXT = 0x81B3-gl_MIN_PROGRAM_TEXEL_OFFSET_NV :: GLenum-gl_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904-gl_EQUIV :: GLenum-gl_EQUIV = 0x1509-gl_TEXTURE_BINDING_CUBE_MAP_ARB :: GLenum-gl_TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514-gl_DRAW_BUFFER1_NV :: GLenum-gl_DRAW_BUFFER1_NV = 0x8826-gl_INTERLACE_READ_OML :: GLenum-gl_INTERLACE_READ_OML = 0x8981-gl_TEXTURE15 :: GLenum-gl_TEXTURE15 = 0x84CF-gl_NAND :: GLenum-gl_NAND = 0x150E-gl_VERTEX_ARRAY_RANGE_APPLE :: GLenum-gl_VERTEX_ARRAY_RANGE_APPLE = 0x851D-gl_CONDITION_SATISFIED_APPLE :: GLenum-gl_CONDITION_SATISFIED_APPLE = 0x911C-gl_DISPATCH_INDIRECT_BUFFER_BINDING :: GLenum-gl_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF-gl_RG16I :: GLenum-gl_RG16I = 0x8239-gl_EYE_RADIAL_NV :: GLenum-gl_EYE_RADIAL_NV = 0x855B-gl_SLUMINANCE_ALPHA_EXT :: GLenum-gl_SLUMINANCE_ALPHA_EXT = 0x8C44-gl_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL :: GLenum-gl_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5-gl_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT :: GLenum-gl_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = 0x88FE-gl_RG32F :: GLenum-gl_RG32F = 0x8230-gl_SRC1_ALPHA :: GLenum-gl_SRC1_ALPHA = 0x8589-gl_RGBA2 :: GLenum-gl_RGBA2 = 0x8055-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4-gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT :: GLenum-gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88-gl_TEXTURE_COORD_ARRAY_STRIDE_EXT :: GLenum-gl_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A-gl_OUTPUT_TEXTURE_COORD10_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7-gl_DEPTH_ATTACHMENT :: GLenum-gl_DEPTH_ATTACHMENT = 0x8D00-gl_NORMAL_ARRAY_POINTER_EXT :: GLenum-gl_NORMAL_ARRAY_POINTER_EXT = 0x808F-gl_OPERAND0_ALPHA_ARB :: GLenum-gl_OPERAND0_ALPHA_ARB = 0x8598-gl_COMPRESSED_LUMINANCE_ARB :: GLenum-gl_COMPRESSED_LUMINANCE_ARB = 0x84EA-gl_LIST_PRIORITY_SGIX :: GLenum-gl_LIST_PRIORITY_SGIX = 0x8182-gl_BOUNDING_BOX_NV :: GLenum-gl_BOUNDING_BOX_NV = 0x908D-gl_PATCH_VERTICES_EXT :: GLenum-gl_PATCH_VERTICES_EXT = 0x8E72-gl_COPY_INVERTED :: GLenum-gl_COPY_INVERTED = 0x150C-gl_FRAMEBUFFER_BARRIER_BIT_EXT :: GLenum-gl_FRAMEBUFFER_BARRIER_BIT_EXT = 0x00000400-gl_OBJECT_ACTIVE_ATTRIBUTES_ARB :: GLenum-gl_OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89-gl_DISCRETE_AMD :: GLenum-gl_DISCRETE_AMD = 0x9006-gl_DOT3_RGBA_ARB :: GLenum-gl_DOT3_RGBA_ARB = 0x86AF-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1-gl_SET :: GLenum-gl_SET = 0x150F-gl_TEXTURE_MAX_ANISOTROPY_EXT :: GLenum-gl_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE-gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: GLenum-gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276-gl_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB :: GLenum-gl_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B-gl_MAP2_GRID_DOMAIN :: GLenum-gl_MAP2_GRID_DOMAIN = 0x0DD2-gl_RENDERBUFFER_SAMPLES :: GLenum-gl_RENDERBUFFER_SAMPLES = 0x8CAB-gl_MAX_TEXTURE_LOD_BIAS :: GLenum-gl_MAX_TEXTURE_LOD_BIAS = 0x84FD-gl_DEPTH_PASS_INSTRUMENT_SGIX :: GLenum-gl_DEPTH_PASS_INSTRUMENT_SGIX = 0x8310-gl_TEXTURE_COORD_NV :: GLenum-gl_TEXTURE_COORD_NV = 0x8C79-gl_PROGRAM_ERROR_POSITION_NV :: GLenum-gl_PROGRAM_ERROR_POSITION_NV = 0x864B-gl_RENDERBUFFER_RED_SIZE_EXT :: GLenum-gl_RENDERBUFFER_RED_SIZE_EXT = 0x8D50-gl_INDEX_OFFSET :: GLenum-gl_INDEX_OFFSET = 0x0D13-gl_CURRENT_FOG_COORD :: GLenum-gl_CURRENT_FOG_COORD = 0x8453-gl_MIRRORED_REPEAT :: GLenum-gl_MIRRORED_REPEAT = 0x8370-gl_MAP_INVALIDATE_BUFFER_BIT :: GLenum-gl_MAP_INVALIDATE_BUFFER_BIT = 0x0008-gl_MATRIX_INDEX_ARRAY_OES :: GLenum-gl_MATRIX_INDEX_ARRAY_OES = 0x8844-gl_DRAW_BUFFER6_ATI :: GLenum-gl_DRAW_BUFFER6_ATI = 0x882B-gl_INTENSITY12 :: GLenum-gl_INTENSITY12 = 0x804C-gl_FLOAT_RGBA_NV :: GLenum-gl_FLOAT_RGBA_NV = 0x8883-gl_SMOOTH_POINT_SIZE_RANGE :: GLenum-gl_SMOOTH_POINT_SIZE_RANGE = 0x0B12-gl_COLOR_BUFFER_BIT1_QCOM :: GLenum-gl_COLOR_BUFFER_BIT1_QCOM = 0x00000002-gl_TEXT_FRAGMENT_SHADER_ATI :: GLenum-gl_TEXT_FRAGMENT_SHADER_ATI = 0x8200-gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8-gl_CLIP_PLANE3 :: GLenum-gl_CLIP_PLANE3 = 0x3003-gl_NAMED_STRING_TYPE_ARB :: GLenum-gl_NAMED_STRING_TYPE_ARB = 0x8DEA-gl_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB :: GLenum-gl_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = 0x90EB-gl_TEXTURE_VIEW_MIN_LEVEL :: GLenum-gl_TEXTURE_VIEW_MIN_LEVEL = 0x82DB-gl_SWIZZLE_STQ_ATI :: GLenum-gl_SWIZZLE_STQ_ATI = 0x8977-gl_RGBA_FLOAT_MODE_ARB :: GLenum-gl_RGBA_FLOAT_MODE_ARB = 0x8820-gl_RG8UI :: GLenum-gl_RG8UI = 0x8238-gl_FRAGMENT_DEPTH :: GLenum-gl_FRAGMENT_DEPTH = 0x8452-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2-gl_MULTISAMPLE_SGIS :: GLenum-gl_MULTISAMPLE_SGIS = 0x809D-gl_PROXY_TEXTURE_1D :: GLenum-gl_PROXY_TEXTURE_1D = 0x8063-gl_MODELVIEW0_ARB :: GLenum-gl_MODELVIEW0_ARB = 0x1700-gl_LINE_STRIP_ADJACENCY_EXT :: GLenum-gl_LINE_STRIP_ADJACENCY_EXT = 0x000B-gl_RGBA16UI :: GLenum-gl_RGBA16UI = 0x8D76-gl_SRC_ATOP_NV :: GLenum-gl_SRC_ATOP_NV = 0x928E-gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE :: GLenum-gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE-gl_REG_30_ATI :: GLenum-gl_REG_30_ATI = 0x893F-gl_4PASS_3_EXT :: GLenum-gl_4PASS_3_EXT = 0x80A7-gl_INT_IMAGE_3D_EXT :: GLenum-gl_INT_IMAGE_3D_EXT = 0x9059-gl_SYSTEM_FONT_NAME_NV :: GLenum-gl_SYSTEM_FONT_NAME_NV = 0x9073-gl_DRAW_BUFFER6 :: GLenum-gl_DRAW_BUFFER6 = 0x882B-gl_RG32I :: GLenum-gl_RG32I = 0x823B-gl_COLOR_BUFFER_BIT3_QCOM :: GLenum-gl_COLOR_BUFFER_BIT3_QCOM = 0x00000008-gl_CURRENT_OCCLUSION_QUERY_ID_NV :: GLenum-gl_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865-gl_INTERNALFORMAT_STENCIL_SIZE :: GLenum-gl_INTERNALFORMAT_STENCIL_SIZE = 0x8276-gl_STATIC_DRAW_ARB :: GLenum-gl_STATIC_DRAW_ARB = 0x88E4-gl_COMPRESSED_SRGB_ALPHA_EXT :: GLenum-gl_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49-gl_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI :: GLenum-gl_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000-gl_PALETTE8_RGBA4_OES :: GLenum-gl_PALETTE8_RGBA4_OES = 0x8B98-gl_FOG_START :: GLenum-gl_FOG_START = 0x0B63-gl_DEBUG_TYPE_POP_GROUP :: GLenum-gl_DEBUG_TYPE_POP_GROUP = 0x826A-gl_DRAW_BUFFER14_ATI :: GLenum-gl_DRAW_BUFFER14_ATI = 0x8833-gl_IMAGE_1D_ARRAY :: GLenum-gl_IMAGE_1D_ARRAY = 0x9052-gl_RELATIVE_LARGE_CCW_ARC_TO_NV :: GLenum-gl_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17-gl_FONT_MAX_ADVANCE_HEIGHT_BIT_NV :: GLenum-gl_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000-gl_EXCLUSION_NV :: GLenum-gl_EXCLUSION_NV = 0x92A0-gl_FONT_X_MAX_BOUNDS_BIT_NV :: GLenum-gl_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000-gl_PIXEL_TEX_GEN_Q_FLOOR_SGIX :: GLenum-gl_PIXEL_TEX_GEN_Q_FLOOR_SGIX = 0x8186-gl_DEPTH_BUFFER_BIT2_QCOM :: GLenum-gl_DEPTH_BUFFER_BIT2_QCOM = 0x00000400-gl_UNPACK_FLIP_Y_WEBGL :: GLenum-gl_UNPACK_FLIP_Y_WEBGL = 0x9240-gl_COLOR_ATTACHMENT15_NV :: GLenum-gl_COLOR_ATTACHMENT15_NV = 0x8CEF-gl_RG16F_EXT :: GLenum-gl_RG16F_EXT = 0x822F-gl_PRIMARY_COLOR :: GLenum-gl_PRIMARY_COLOR = 0x8577-gl_UNIFORM_BLOCK_DATA_SIZE :: GLenum-gl_UNIFORM_BLOCK_DATA_SIZE = 0x8A40-gl_INTERNALFORMAT_STENCIL_TYPE :: GLenum-gl_INTERNALFORMAT_STENCIL_TYPE = 0x827D-gl_COLOR_MATRIX_STACK_DEPTH_SGI :: GLenum-gl_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2-gl_AND :: GLenum-gl_AND = 0x1501-gl_GEOMETRY_INPUT_TYPE_ARB :: GLenum-gl_GEOMETRY_INPUT_TYPE_ARB = 0x8DDB-gl_SAMPLER_BUFFER :: GLenum-gl_SAMPLER_BUFFER = 0x8DC2-gl_COLOR_BUFFER_BIT2_QCOM :: GLenum-gl_COLOR_BUFFER_BIT2_QCOM = 0x00000004-gl_MAX_CLIP_DISTANCES :: GLenum-gl_MAX_CLIP_DISTANCES = 0x0D32-gl_OUTPUT_TEXTURE_COORD25_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6-gl_SLIM8U_SGIX :: GLenum-gl_SLIM8U_SGIX = 0x831D-gl_OP_DOT4_EXT :: GLenum-gl_OP_DOT4_EXT = 0x8785-gl_INFO_LOG_LENGTH :: GLenum-gl_INFO_LOG_LENGTH = 0x8B84-gl_REG_25_ATI :: GLenum-gl_REG_25_ATI = 0x893A-gl_MAX_PROGRAM_CALL_DEPTH_NV :: GLenum-gl_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5-gl_VIRTUAL_PAGE_SIZE_INDEX_ARB :: GLenum-gl_VIRTUAL_PAGE_SIZE_INDEX_ARB = 0x91A7-gl_MAX_PROGRAM_RESULT_COMPONENTS_NV :: GLenum-gl_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909-gl_RELATIVE_CONIC_CURVE_TO_NV :: GLenum-gl_RELATIVE_CONIC_CURVE_TO_NV = 0x1B-gl_CLIP_DISTANCE4 :: GLenum-gl_CLIP_DISTANCE4 = 0x3004-gl_UTF8_NV :: GLenum-gl_UTF8_NV = 0x909A-gl_INVALID_INDEX :: GLenum-gl_INVALID_INDEX = 0xFFFFFFFF-gl_DOT3_RGBA_IMG :: GLenum-gl_DOT3_RGBA_IMG = 0x86AF-gl_FRAGMENT_MATERIAL_EXT :: GLenum-gl_FRAGMENT_MATERIAL_EXT = 0x8349-gl_PACK_CMYK_HINT_EXT :: GLenum-gl_PACK_CMYK_HINT_EXT = 0x800E-gl_LUMINANCE_ALPHA8I_EXT :: GLenum-gl_LUMINANCE_ALPHA8I_EXT = 0x8D93-gl_PIXEL_BUFFER_BARRIER_BIT_EXT :: GLenum-gl_PIXEL_BUFFER_BARRIER_BIT_EXT = 0x00000080-gl_BUFFER_KHR :: GLenum-gl_BUFFER_KHR = 0x82E0-gl_STENCIL_BACK_OP_VALUE_AMD :: GLenum-gl_STENCIL_BACK_OP_VALUE_AMD = 0x874D-gl_DST_COLOR :: GLenum-gl_DST_COLOR = 0x0306-gl_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT :: GLenum-gl_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = 0x00000800-gl_ZERO :: GLenum-gl_ZERO = 0-gl_COORD_REPLACE :: GLenum-gl_COORD_REPLACE = 0x8862-gl_FRAMEBUFFER_SRGB :: GLenum-gl_FRAMEBUFFER_SRGB = 0x8DB9-gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES = 0x9279-gl_CONSTANT :: GLenum-gl_CONSTANT = 0x8576-gl_TEXTURE_CONSTANT_DATA_SUNX :: GLenum-gl_TEXTURE_CONSTANT_DATA_SUNX = 0x81D6-gl_MAX_DEBUG_MESSAGE_LENGTH :: GLenum-gl_MAX_DEBUG_MESSAGE_LENGTH = 0x9143-gl_MAX_VARYING_FLOATS :: GLenum-gl_MAX_VARYING_FLOATS = 0x8B4B-gl_PLUS_NV :: GLenum-gl_PLUS_NV = 0x9291-gl_UNIFORM_NAME_LENGTH :: GLenum-gl_UNIFORM_NAME_LENGTH = 0x8A39-gl_SECONDARY_COLOR_ARRAY_STRIDE :: GLenum-gl_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C-gl_MAP1_VERTEX_ATTRIB13_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D-gl_TRACK_MATRIX_TRANSFORM_NV :: GLenum-gl_TRACK_MATRIX_TRANSFORM_NV = 0x8649-gl_MAX_COMPUTE_UNIFORM_COMPONENTS :: GLenum-gl_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263-gl_DOUBLE_MAT4 :: GLenum-gl_DOUBLE_MAT4 = 0x8F48-gl_TEXTURE_SRGB_DECODE_EXT :: GLenum-gl_TEXTURE_SRGB_DECODE_EXT = 0x8A48-gl_TEXTURE_BORDER_COLOR :: GLenum-gl_TEXTURE_BORDER_COLOR = 0x1004-gl_DISPLAY_LIST :: GLenum-gl_DISPLAY_LIST = 0x82E7-gl_COLOR_ENCODING :: GLenum-gl_COLOR_ENCODING = 0x8296-gl_EXPAND_NEGATE_NV :: GLenum-gl_EXPAND_NEGATE_NV = 0x8539-gl_UNPACK_ROW_LENGTH_EXT :: GLenum-gl_UNPACK_ROW_LENGTH_EXT = 0x0CF2-gl_RGB_SCALE_ARB :: GLenum-gl_RGB_SCALE_ARB = 0x8573-gl_CURRENT_ATTRIB_NV :: GLenum-gl_CURRENT_ATTRIB_NV = 0x8626-gl_TEXTURE25 :: GLenum-gl_TEXTURE25 = 0x84D9-gl_DEPTH :: GLenum-gl_DEPTH = 0x1801-gl_DRAW_BUFFER2_ARB :: GLenum-gl_DRAW_BUFFER2_ARB = 0x8827-gl_FENCE_CONDITION_NV :: GLenum-gl_FENCE_CONDITION_NV = 0x84F4-gl_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB :: GLenum-gl_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E-gl_OP_POWER_EXT :: GLenum-gl_OP_POWER_EXT = 0x8793-gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB :: GLenum-gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E-gl_FRAMEBUFFER_DEFAULT :: GLenum-gl_FRAMEBUFFER_DEFAULT = 0x8218-gl_COLOR_ATTACHMENT13_EXT :: GLenum-gl_COLOR_ATTACHMENT13_EXT = 0x8CED-gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215-gl_CUBIC_HP :: GLenum-gl_CUBIC_HP = 0x815F-gl_GREATER :: GLenum-gl_GREATER = 0x0204-gl_OP_MOV_EXT :: GLenum-gl_OP_MOV_EXT = 0x8799-gl_RED_SNORM :: GLenum-gl_RED_SNORM = 0x8F90-gl_ALPHA_MAX_CLAMP_INGR :: GLenum-gl_ALPHA_MAX_CLAMP_INGR = 0x8567-gl_VERTEX_ATTRIB_ARRAY_LONG :: GLenum-gl_VERTEX_ATTRIB_ARRAY_LONG = 0x874E-gl_DEBUG_SEVERITY_LOW_ARB :: GLenum-gl_DEBUG_SEVERITY_LOW_ARB = 0x9148-gl_PURGEABLE_APPLE :: GLenum-gl_PURGEABLE_APPLE = 0x8A1D-gl_MAX_SHININESS_NV :: GLenum-gl_MAX_SHININESS_NV = 0x8504-gl_VERTEX_SHADER_INVARIANTS_EXT :: GLenum-gl_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1-gl_CLIP_DISTANCE1 :: GLenum-gl_CLIP_DISTANCE1 = 0x3001-gl_PROGRAM_NATIVE_PARAMETERS_ARB :: GLenum-gl_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA-gl_SRC_ALPHA_SATURATE :: GLenum-gl_SRC_ALPHA_SATURATE = 0x0308-gl_COLOR_RENDERABLE :: GLenum-gl_COLOR_RENDERABLE = 0x8286-gl_LINE_STIPPLE :: GLenum-gl_LINE_STIPPLE = 0x0B24-gl_COMPILE_AND_EXECUTE :: GLenum-gl_COMPILE_AND_EXECUTE = 0x1301-gl_FOG_COORDINATE :: GLenum-gl_FOG_COORDINATE = 0x8451-gl_MULTISAMPLE_COVERAGE_MODES_NV :: GLenum-gl_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12-gl_OUTPUT_TEXTURE_COORD16_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD-gl_SCALE_BY_FOUR_NV :: GLenum-gl_SCALE_BY_FOUR_NV = 0x853F-gl_INDEX_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899-gl_MAX_TEXTURE_IMAGE_UNITS_ARB :: GLenum-gl_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872-gl_HALF_BIAS_NEGATE_NV :: GLenum-gl_HALF_BIAS_NEGATE_NV = 0x853B-gl_INT_IMAGE_2D_MULTISAMPLE_EXT :: GLenum-gl_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x9060-gl_CON_30_ATI :: GLenum-gl_CON_30_ATI = 0x895F-gl_SAMPLE_ALPHA_TO_ONE_EXT :: GLenum-gl_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F-gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A-gl_STORAGE_CACHED_APPLE :: GLenum-gl_STORAGE_CACHED_APPLE = 0x85BE-gl_SAMPLER_2D_SHADOW :: GLenum-gl_SAMPLER_2D_SHADOW = 0x8B62-gl_ALPHA_FLOAT16_APPLE :: GLenum-gl_ALPHA_FLOAT16_APPLE = 0x881C-gl_PERFQUERY_COUNTER_EVENT_INTEL :: GLenum-gl_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0-gl_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB :: GLenum-gl_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = 0x91A9-gl_BACK_PRIMARY_COLOR_NV :: GLenum-gl_BACK_PRIMARY_COLOR_NV = 0x8C77-gl_PROGRAM_PARAMETERS_ARB :: GLenum-gl_PROGRAM_PARAMETERS_ARB = 0x88A8-gl_MIN_SPARSE_LEVEL_AMD :: GLenum-gl_MIN_SPARSE_LEVEL_AMD = 0x919B-gl_INT_SAMPLER_1D_ARRAY_EXT :: GLenum-gl_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE-gl_DOUBLEBUFFER :: GLenum-gl_DOUBLEBUFFER = 0x0C32-gl_NEGATIVE_W_EXT :: GLenum-gl_NEGATIVE_W_EXT = 0x87DC-gl_VIEW_CLASS_RGTC1_RED :: GLenum-gl_VIEW_CLASS_RGTC1_RED = 0x82D0-gl_PROGRAM_KHR :: GLenum-gl_PROGRAM_KHR = 0x82E2-gl_LINEARDODGE_NV :: GLenum-gl_LINEARDODGE_NV = 0x92A4-gl_NORMALIZED_RANGE_EXT :: GLenum-gl_NORMALIZED_RANGE_EXT = 0x87E0-gl_BUFFER_SERIALIZED_MODIFY_APPLE :: GLenum-gl_BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12-gl_TEXTURE3_ARB :: GLenum-gl_TEXTURE3_ARB = 0x84C3-gl_INDEX_TEST_FUNC_EXT :: GLenum-gl_INDEX_TEST_FUNC_EXT = 0x81B6-gl_COMPUTE_TEXTURE :: GLenum-gl_COMPUTE_TEXTURE = 0x82A0-gl_UNSIGNED_INT_IMAGE_BUFFER_EXT :: GLenum-gl_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067-gl_CON_9_ATI :: GLenum-gl_CON_9_ATI = 0x894A-gl_RELATIVE_LINE_TO_NV :: GLenum-gl_RELATIVE_LINE_TO_NV = 0x05-gl_TEXTURE_RECTANGLE_NV :: GLenum-gl_TEXTURE_RECTANGLE_NV = 0x84F5-gl_COMPRESSED_RGBA_S3TC_DXT5_ANGLE :: GLenum-gl_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3-gl_COMPRESSED_RGBA_ASTC_6x5_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3-gl_TEXTURE_LUMINANCE_SIZE :: GLenum-gl_TEXTURE_LUMINANCE_SIZE = 0x8060-gl_PROJECTION_MATRIX :: GLenum-gl_PROJECTION_MATRIX = 0x0BA7-gl_VIBRANCE_BIAS_NV :: GLenum-gl_VIBRANCE_BIAS_NV = 0x8719-gl_MAX_VERTEX_ATOMIC_COUNTERS :: GLenum-gl_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2-gl_FOG_COORD_ARRAY_POINTER :: GLenum-gl_FOG_COORD_ARRAY_POINTER = 0x8456-gl_POLYGON_OFFSET_BIAS_EXT :: GLenum-gl_POLYGON_OFFSET_BIAS_EXT = 0x8039-gl_DEBUG_SOURCE_OTHER :: GLenum-gl_DEBUG_SOURCE_OTHER = 0x824B-gl_LINEAR_SHARPEN_ALPHA_SGIS :: GLenum-gl_LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE-gl_AVERAGE_EXT :: GLenum-gl_AVERAGE_EXT = 0x8335-gl_PACK_SKIP_IMAGES_EXT :: GLenum-gl_PACK_SKIP_IMAGES_EXT = 0x806B-gl_BITMAP_TOKEN :: GLenum-gl_BITMAP_TOKEN = 0x0704-gl_TESSELLATION_MODE_AMD :: GLenum-gl_TESSELLATION_MODE_AMD = 0x9004-gl_POST_CONVOLUTION_COLOR_TABLE_SGI :: GLenum-gl_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1-gl_MODELVIEW1_EXT :: GLenum-gl_MODELVIEW1_EXT = 0x850A-gl_OPERAND1_RGB_ARB :: GLenum-gl_OPERAND1_RGB_ARB = 0x8591-gl_4D_COLOR_TEXTURE :: GLenum-gl_4D_COLOR_TEXTURE = 0x0604-gl_ACTIVE_ATTRIBUTES :: GLenum-gl_ACTIVE_ATTRIBUTES = 0x8B89-gl_BUFFER_BINDING :: GLenum-gl_BUFFER_BINDING = 0x9302-gl_VERTEX_STATE_PROGRAM_NV :: GLenum-gl_VERTEX_STATE_PROGRAM_NV = 0x8621-gl_DST_ATOP_NV :: GLenum-gl_DST_ATOP_NV = 0x928F-gl_TEXTURE_DEPTH_EXT :: GLenum-gl_TEXTURE_DEPTH_EXT = 0x8071-gl_UNSIGNED_INT_VEC4 :: GLenum-gl_UNSIGNED_INT_VEC4 = 0x8DC8-gl_GREEN_INTEGER :: GLenum-gl_GREEN_INTEGER = 0x8D95-gl_DOUBLE_MAT4x2_EXT :: GLenum-gl_DOUBLE_MAT4x2_EXT = 0x8F4D-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7-gl_INDEX_ARRAY_LIST_IBM :: GLenum-gl_INDEX_ARRAY_LIST_IBM = 103073-gl_SAMPLER_2D_ARRAY_SHADOW :: GLenum-gl_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4-gl_COMPRESSED_SRGB_S3TC_DXT1_NV :: GLenum-gl_COMPRESSED_SRGB_S3TC_DXT1_NV = 0x8C4C-gl_COMPRESSED_RGBA_ASTC_4x3x3_OES :: GLenum-gl_COMPRESSED_RGBA_ASTC_4x3x3_OES = 0x93C1-gl_DRAW_BUFFER3_ATI :: GLenum-gl_DRAW_BUFFER3_ATI = 0x8828-gl_MAX_FRAGMENT_UNIFORM_COMPONENTS :: GLenum-gl_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49-gl_PROXY_TEXTURE_3D_EXT :: GLenum-gl_PROXY_TEXTURE_3D_EXT = 0x8070-gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT :: GLenum-gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85-gl_PATH_COMPUTED_LENGTH_NV :: GLenum-gl_PATH_COMPUTED_LENGTH_NV = 0x90A0-gl_DEPTH_STENCIL_MESA :: GLenum-gl_DEPTH_STENCIL_MESA = 0x8750-gl_MAT_DIFFUSE_BIT_PGI :: GLenum-gl_MAT_DIFFUSE_BIT_PGI = 0x00400000-gl_TEXTURE_STENCIL_SIZE :: GLenum-gl_TEXTURE_STENCIL_SIZE = 0x88F1-gl_PATH_PROJECTION_NV :: GLenum-gl_PATH_PROJECTION_NV = 0x1701-gl_DUAL_TEXTURE_SELECT_SGIS :: GLenum-gl_DUAL_TEXTURE_SELECT_SGIS = 0x8124-gl_MATRIX14_ARB :: GLenum-gl_MATRIX14_ARB = 0x88CE-gl_PATH_OBJECT_BOUNDING_BOX_NV :: GLenum-gl_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A-gl_READ_PIXELS :: GLenum-gl_READ_PIXELS = 0x828C-gl_TRIANGLE_LIST_SUN :: GLenum-gl_TRIANGLE_LIST_SUN = 0x81D7-gl_COMPARE_R_TO_TEXTURE :: GLenum-gl_COMPARE_R_TO_TEXTURE = 0x884E-gl_INTENSITY8UI_EXT :: GLenum-gl_INTENSITY8UI_EXT = 0x8D7F-gl_DEBUG_OUTPUT_SYNCHRONOUS_ARB :: GLenum-gl_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242-gl_COLOR_TABLE_GREEN_SIZE :: GLenum-gl_COLOR_TABLE_GREEN_SIZE = 0x80DB-gl_CURRENT_VERTEX_ATTRIB :: GLenum-gl_CURRENT_VERTEX_ATTRIB = 0x8626-gl_POST_COLOR_MATRIX_GREEN_BIAS :: GLenum-gl_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9-gl_GPU_MEMORY_INFO_EVICTION_COUNT_NVX :: GLenum-gl_GPU_MEMORY_INFO_EVICTION_COUNT_NVX = 0x904A-gl_SUBSAMPLE_DISTANCE_AMD :: GLenum-gl_SUBSAMPLE_DISTANCE_AMD = 0x883F-gl_SRGB8_EXT :: GLenum-gl_SRGB8_EXT = 0x8C41-gl_DETAIL_TEXTURE_FUNC_POINTS_SGIS :: GLenum-gl_DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C-gl_INCR_WRAP_EXT :: GLenum-gl_INCR_WRAP_EXT = 0x8507-gl_UNPACK_COMPRESSED_BLOCK_SIZE :: GLenum-gl_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A-gl_OBJECT_VALIDATE_STATUS_ARB :: GLenum-gl_OBJECT_VALIDATE_STATUS_ARB = 0x8B83-gl_WEIGHT_ARRAY_STRIDE_ARB :: GLenum-gl_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA-gl_OUTPUT_TEXTURE_COORD3_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0-gl_TEXTURE16_ARB :: GLenum-gl_TEXTURE16_ARB = 0x84D0-gl_VIDEO_COLOR_CONVERSION_MATRIX_NV :: GLenum-gl_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029-gl_EYE_DISTANCE_TO_POINT_SGIS :: GLenum-gl_EYE_DISTANCE_TO_POINT_SGIS = 0x81F0-gl_TEXTURE_COMPARE_FUNC :: GLenum-gl_TEXTURE_COMPARE_FUNC = 0x884D-gl_DEPTH_BUFFER_FLOAT_MODE_NV :: GLenum-gl_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF-gl_TEXTURE_SWIZZLE_G :: GLenum-gl_TEXTURE_SWIZZLE_G = 0x8E43-gl_DEBUG_TYPE_OTHER_ARB :: GLenum-gl_DEBUG_TYPE_OTHER_ARB = 0x8251-gl_TESS_EVALUATION_SHADER_BIT_EXT :: GLenum-gl_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010-gl_VERTEX_PROGRAM_CALLBACK_DATA_MESA :: GLenum-gl_VERTEX_PROGRAM_CALLBACK_DATA_MESA = 0x8BB7-gl_INT_SAMPLER_BUFFER_EXT :: GLenum-gl_INT_SAMPLER_BUFFER_EXT = 0x8DD0-gl_OP_CLAMP_EXT :: GLenum-gl_OP_CLAMP_EXT = 0x878E-gl_POINT_SIZE_MIN :: GLenum-gl_POINT_SIZE_MIN = 0x8126-gl_UNSIGNED_BYTE_3_3_2_EXT :: GLenum-gl_UNSIGNED_BYTE_3_3_2_EXT = 0x8032-gl_TEXTURE_CLIPMAP_DEPTH_SGIX :: GLenum-gl_TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176-gl_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT :: GLenum-gl_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A-gl_DOUBLE_VEC4_EXT :: GLenum-gl_DOUBLE_VEC4_EXT = 0x8FFE-gl_SYNC_CONDITION_APPLE :: GLenum-gl_SYNC_CONDITION_APPLE = 0x9113-gl_MAX_TEXTURE_COORDS_NV :: GLenum-gl_MAX_TEXTURE_COORDS_NV = 0x8871-gl_RELATIVE_QUADRATIC_CURVE_TO_NV :: GLenum-gl_RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B-gl_DEBUG_GROUP_STACK_DEPTH_KHR :: GLenum-gl_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D-gl_CONTEXT_LOST_KHR :: GLenum-gl_CONTEXT_LOST_KHR = 0x0507-gl_QUADRATIC_CURVE_TO_NV :: GLenum-gl_QUADRATIC_CURVE_TO_NV = 0x0A-gl_MIN_EXT :: GLenum-gl_MIN_EXT = 0x8007-gl_VERTEX_ATTRIB_ARRAY11_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY11_NV = 0x865B-gl_FACTOR_ALPHA_MODULATE_IMG :: GLenum-gl_FACTOR_ALPHA_MODULATE_IMG = 0x8C07-gl_MAP1_GRID_DOMAIN :: GLenum-gl_MAP1_GRID_DOMAIN = 0x0DD0-gl_COLOR_MATRIX_STACK_DEPTH :: GLenum-gl_COLOR_MATRIX_STACK_DEPTH = 0x80B2-gl_IMAGE_PIXEL_FORMAT :: GLenum-gl_IMAGE_PIXEL_FORMAT = 0x82A9-gl_DRAW_BUFFER1_EXT :: GLenum-gl_DRAW_BUFFER1_EXT = 0x8826-gl_UNSIGNED_INT_VEC2 :: GLenum-gl_UNSIGNED_INT_VEC2 = 0x8DC6-gl_QUAD_LUMINANCE8_SGIS :: GLenum-gl_QUAD_LUMINANCE8_SGIS = 0x8121-gl_ELEMENT_ARRAY_UNIFIED_NV :: GLenum-gl_ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F-gl_COLOR_LOGIC_OP :: GLenum-gl_COLOR_LOGIC_OP = 0x0BF2-gl_GREEN_NV :: GLenum-gl_GREEN_NV = 0x1904-gl_DEPTH_COMPONENT :: GLenum-gl_DEPTH_COMPONENT = 0x1902-gl_TEXTURE18 :: GLenum-gl_TEXTURE18 = 0x84D2-gl_COMBINER_SUM_OUTPUT_NV :: GLenum-gl_COMBINER_SUM_OUTPUT_NV = 0x854C-gl_DUAL_LUMINANCE8_SGIS :: GLenum-gl_DUAL_LUMINANCE8_SGIS = 0x8115-gl_PATH_DASH_OFFSET_RESET_NV :: GLenum-gl_PATH_DASH_OFFSET_RESET_NV = 0x90B4-gl_INT_SAMPLER_BUFFER :: GLenum-gl_INT_SAMPLER_BUFFER = 0x8DD0-gl_DEBUG_SEVERITY_MEDIUM_ARB :: GLenum-gl_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147-gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT :: GLenum-gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76-gl_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX :: GLenum-gl_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A-gl_UNSIGNED_SHORT_15_1_MESA :: GLenum-gl_UNSIGNED_SHORT_15_1_MESA = 0x8753-gl_LUMINANCE32F_ARB :: GLenum-gl_LUMINANCE32F_ARB = 0x8818-gl_TRANSPOSE_NV :: GLenum-gl_TRANSPOSE_NV = 0x862C-gl_LUMINANCE8_EXT :: GLenum-gl_LUMINANCE8_EXT = 0x8040-gl_WRITE_DISCARD_NV :: GLenum-gl_WRITE_DISCARD_NV = 0x88BE-gl_STENCIL_BUFFER_BIT5_QCOM :: GLenum-gl_STENCIL_BUFFER_BIT5_QCOM = 0x00200000-gl_FOG_END :: GLenum-gl_FOG_END = 0x0B64-gl_DRAW_BUFFER9_NV :: GLenum-gl_DRAW_BUFFER9_NV = 0x882E-gl_PROVOKING_VERTEX_EXT :: GLenum-gl_PROVOKING_VERTEX_EXT = 0x8E4F-gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS :: GLenum-gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF-gl_2PASS_0_EXT :: GLenum-gl_2PASS_0_EXT = 0x80A2-gl_MAP_UNSYNCHRONIZED_BIT :: GLenum-gl_MAP_UNSYNCHRONIZED_BIT = 0x0020-gl_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI :: GLenum-gl_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8-gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV :: GLenum-gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5E-gl_SAMPLER_CUBE_SHADOW :: GLenum-gl_SAMPLER_CUBE_SHADOW = 0x8DC5-gl_V2F :: GLenum-gl_V2F = 0x2A20-gl_IMAGE_2D_EXT :: GLenum-gl_IMAGE_2D_EXT = 0x904D-gl_LUMINANCE32UI_EXT :: GLenum-gl_LUMINANCE32UI_EXT = 0x8D74-gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT :: GLenum-gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900F-gl_SLUMINANCE8_ALPHA8_NV :: GLenum-gl_SLUMINANCE8_ALPHA8_NV = 0x8C45-gl_MAX_ASYNC_DRAW_PIXELS_SGIX :: GLenum-gl_MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360-gl_POINT_SIZE_ARRAY_TYPE_OES :: GLenum-gl_POINT_SIZE_ARRAY_TYPE_OES = 0x898A-gl_SIGNED_LUMINANCE8_ALPHA8_NV :: GLenum-gl_SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704-gl_UNSIGNED_INT_24_8_EXT :: GLenum-gl_UNSIGNED_INT_24_8_EXT = 0x84FA-gl_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV :: GLenum-gl_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE-gl_CONIC_CURVE_TO_NV :: GLenum-gl_CONIC_CURVE_TO_NV = 0x1A-gl_STREAM_DRAW_ARB :: GLenum-gl_STREAM_DRAW_ARB = 0x88E0-gl_ACTIVE_PROGRAM_EXT :: GLenum-gl_ACTIVE_PROGRAM_EXT = 0x8B8D-gl_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB :: GLenum-gl_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = 0x91BF-gl_PROGRAM_RESIDENT_NV :: GLenum-gl_PROGRAM_RESIDENT_NV = 0x8647-gl_COLOR_TABLE_ALPHA_SIZE_SGI :: GLenum-gl_COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD-gl_INT_IMAGE_2D_ARRAY_EXT :: GLenum-gl_INT_IMAGE_2D_ARRAY_EXT = 0x905E-gl_OUTPUT_TEXTURE_COORD15_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC-gl_SRC_OUT_NV :: GLenum-gl_SRC_OUT_NV = 0x928C-gl_MAP_FLUSH_EXPLICIT_BIT :: GLenum-gl_MAP_FLUSH_EXPLICIT_BIT = 0x0010-gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB :: GLenum-gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F-gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS :: GLenum-gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85-gl_EVAL_VERTEX_ATTRIB2_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB2_NV = 0x86C8-gl_PIXEL_TILE_WIDTH_SGIX :: GLenum-gl_PIXEL_TILE_WIDTH_SGIX = 0x8140-gl_PROXY_TEXTURE_RECTANGLE :: GLenum-gl_PROXY_TEXTURE_RECTANGLE = 0x84F7-gl_VERTEX_ARRAY_BINDING :: GLenum-gl_VERTEX_ARRAY_BINDING = 0x85B5-gl_CLIP_PLANE4 :: GLenum-gl_CLIP_PLANE4 = 0x3004-gl_EVAL_VERTEX_ATTRIB15_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB15_NV = 0x86D5-gl_POINT_FADE_THRESHOLD_SIZE_ARB :: GLenum-gl_POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128-gl_UNSIGNED_INT_5_9_9_9_REV_EXT :: GLenum-gl_UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E-gl_DEBUG_GROUP_STACK_DEPTH :: GLenum-gl_DEBUG_GROUP_STACK_DEPTH = 0x826D-gl_QUERY_WAIT_INVERTED :: GLenum-gl_QUERY_WAIT_INVERTED = 0x8E17-gl_DRAW_PIXEL_TOKEN :: GLenum-gl_DRAW_PIXEL_TOKEN = 0x0705-gl_OPERAND2_ALPHA_ARB :: GLenum-gl_OPERAND2_ALPHA_ARB = 0x859A-gl_STACK_UNDERFLOW :: GLenum-gl_STACK_UNDERFLOW = 0x0504-gl_FLOAT_VEC4_ARB :: GLenum-gl_FLOAT_VEC4_ARB = 0x8B52-gl_OBJECT_INFO_LOG_LENGTH_ARB :: GLenum-gl_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84-gl_DRAW_BUFFER15_EXT :: GLenum-gl_DRAW_BUFFER15_EXT = 0x8834-gl_PATH_PROJECTION_MATRIX_NV :: GLenum-gl_PATH_PROJECTION_MATRIX_NV = 0x0BA7-gl_ADD_SIGNED :: GLenum-gl_ADD_SIGNED = 0x8574-gl_FRAGMENT_INTERPOLATION_OFFSET_BITS :: GLenum-gl_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D-gl_VERTEX_SHADER_INSTRUCTIONS_EXT :: GLenum-gl_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF-gl_NEXT_BUFFER_NV :: GLenum-gl_NEXT_BUFFER_NV = -2-gl_TRIANGLE_STRIP_ADJACENCY_ARB :: GLenum-gl_TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D-gl_UNSIGNED_BYTE_2_3_3_REV_EXT :: GLenum-gl_UNSIGNED_BYTE_2_3_3_REV_EXT = 0x8362-gl_QUERY_RESULT_NO_WAIT :: GLenum-gl_QUERY_RESULT_NO_WAIT = 0x9194-gl_SECONDARY_COLOR_ARRAY_ADDRESS_NV :: GLenum-gl_SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27-gl_ALPHA16_SNORM :: GLenum-gl_ALPHA16_SNORM = 0x9018-gl_COLOR_ARRAY_LENGTH_NV :: GLenum-gl_COLOR_ARRAY_LENGTH_NV = 0x8F2D-gl_SLUMINANCE_EXT :: GLenum-gl_SLUMINANCE_EXT = 0x8C46-gl_DOT_PRODUCT_TEXTURE_2D_NV :: GLenum-gl_DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE-gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7-gl_INT_IMAGE_2D_ARRAY :: GLenum-gl_INT_IMAGE_2D_ARRAY = 0x905E-gl_POLYGON_OFFSET_LINE :: GLenum-gl_POLYGON_OFFSET_LINE = 0x2A02-gl_ONE_MINUS_DST_ALPHA :: GLenum-gl_ONE_MINUS_DST_ALPHA = 0x0305-gl_ACCUM_BUFFER_BIT :: GLenum-gl_ACCUM_BUFFER_BIT = 0x00000200-gl_SOURCE1_ALPHA_ARB :: GLenum-gl_SOURCE1_ALPHA_ARB = 0x8589-gl_HISTOGRAM_WIDTH_EXT :: GLenum-gl_HISTOGRAM_WIDTH_EXT = 0x8026-gl_RENDERBUFFER_SAMPLES_EXT :: GLenum-gl_RENDERBUFFER_SAMPLES_EXT = 0x8CAB-gl_FRAGMENT_LIGHTING_SGIX :: GLenum-gl_FRAGMENT_LIGHTING_SGIX = 0x8400-gl_TEXTURE_WIDTH_QCOM :: GLenum-gl_TEXTURE_WIDTH_QCOM = 0x8BD2-gl_TEXTURE_BUFFER_FORMAT_EXT :: GLenum-gl_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E-gl_VERTEX_PROGRAM_TWO_SIDE :: GLenum-gl_VERTEX_PROGRAM_TWO_SIDE = 0x8643-gl_DEBUG_TYPE_OTHER_KHR :: GLenum-gl_DEBUG_TYPE_OTHER_KHR = 0x8251-gl_PRIMARY_COLOR_EXT :: GLenum-gl_PRIMARY_COLOR_EXT = 0x8577-gl_TEXTURE_COMPRESSED_ARB :: GLenum-gl_TEXTURE_COMPRESSED_ARB = 0x86A1-gl_PROXY_TEXTURE_1D_ARRAY_EXT :: GLenum-gl_PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19-gl_NORMAL_ARRAY_TYPE :: GLenum-gl_NORMAL_ARRAY_TYPE = 0x807E-gl_POST_COLOR_MATRIX_RED_BIAS_SGI :: GLenum-gl_POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8-gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB :: GLenum-gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F-gl_VERTEX_ATTRIB_ARRAY7_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY7_NV = 0x8657-gl_MAX_VERTEX_ATTRIB_STRIDE :: GLenum-gl_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5-gl_COLOR :: GLenum-gl_COLOR = 0x1800-gl_YCBCR_422_APPLE :: GLenum-gl_YCBCR_422_APPLE = 0x85B9-gl_TESS_GEN_SPACING :: GLenum-gl_TESS_GEN_SPACING = 0x8E77-gl_VERTEX_SHADER_INVOCATIONS_ARB :: GLenum-gl_VERTEX_SHADER_INVOCATIONS_ARB = 0x82F0-gl_STENCIL_INDEX4_OES :: GLenum-gl_STENCIL_INDEX4_OES = 0x8D47-gl_COMBINER_CD_DOT_PRODUCT_NV :: GLenum-gl_COMBINER_CD_DOT_PRODUCT_NV = 0x8546-gl_VIRTUAL_PAGE_SIZE_Z_ARB :: GLenum-gl_VIRTUAL_PAGE_SIZE_Z_ARB = 0x9197-gl_RIGHT :: GLenum-gl_RIGHT = 0x0407-gl_ALPHA16F_ARB :: GLenum-gl_ALPHA16F_ARB = 0x881C-gl_TANGENT_ARRAY_TYPE_EXT :: GLenum-gl_TANGENT_ARRAY_TYPE_EXT = 0x843E-gl_READ_FRAMEBUFFER_NV :: GLenum-gl_READ_FRAMEBUFFER_NV = 0x8CA8-gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT :: GLenum-gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29-gl_PALETTE4_RGB8_OES :: GLenum-gl_PALETTE4_RGB8_OES = 0x8B90-gl_UNSIGNED_INT_IMAGE_3D :: GLenum-gl_UNSIGNED_INT_IMAGE_3D = 0x9064-gl_NORMAL_ARRAY_ADDRESS_NV :: GLenum-gl_NORMAL_ARRAY_ADDRESS_NV = 0x8F22-gl_NO_RESET_NOTIFICATION_EXT :: GLenum-gl_NO_RESET_NOTIFICATION_EXT = 0x8261-gl_RGB4_S3TC :: GLenum-gl_RGB4_S3TC = 0x83A1-gl_AUX1 :: GLenum-gl_AUX1 = 0x040A-gl_MODELVIEW1_ARB :: GLenum-gl_MODELVIEW1_ARB = 0x850A-gl_OP_NEGATE_EXT :: GLenum-gl_OP_NEGATE_EXT = 0x8783-gl_PACK_COMPRESSED_BLOCK_HEIGHT :: GLenum-gl_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C-gl_RENDERBUFFER_BINDING_OES :: GLenum-gl_RENDERBUFFER_BINDING_OES = 0x8CA7-gl_INT_IMAGE_1D :: GLenum-gl_INT_IMAGE_1D = 0x9057-gl_TEXTURE_GEQUAL_R_SGIX :: GLenum-gl_TEXTURE_GEQUAL_R_SGIX = 0x819D-gl_VERTEX_BINDING_DIVISOR :: GLenum-gl_VERTEX_BINDING_DIVISOR = 0x82D6-gl_BLEND_SRC_ALPHA_OES :: GLenum-gl_BLEND_SRC_ALPHA_OES = 0x80CB-gl_READ_BUFFER_NV :: GLenum-gl_READ_BUFFER_NV = 0x0C02-gl_DEBUG_TYPE_ERROR_KHR :: GLenum-gl_DEBUG_TYPE_ERROR_KHR = 0x824C-gl_INT_IMAGE_CUBE_EXT :: GLenum-gl_INT_IMAGE_CUBE_EXT = 0x905B-gl_COMPRESSED_RGBA_ASTC_6x6x6_OES :: GLenum-gl_COMPRESSED_RGBA_ASTC_6x6x6_OES = 0x93C9-gl_IMAGE_MIN_FILTER_HP :: GLenum-gl_IMAGE_MIN_FILTER_HP = 0x815D-gl_QUAD_ALPHA8_SGIS :: GLenum-gl_QUAD_ALPHA8_SGIS = 0x811F-gl_IMAGE_BINDING_LEVEL :: GLenum-gl_IMAGE_BINDING_LEVEL = 0x8F3B-gl_DOT3_RGB_EXT :: GLenum-gl_DOT3_RGB_EXT = 0x8740-gl_SAMPLER_3D_OES :: GLenum-gl_SAMPLER_3D_OES = 0x8B5F-gl_INT_VEC4 :: GLenum-gl_INT_VEC4 = 0x8B55-gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC-gl_NO_RESET_NOTIFICATION_ARB :: GLenum-gl_NO_RESET_NOTIFICATION_ARB = 0x8261-gl_IMAGE_MAG_FILTER_HP :: GLenum-gl_IMAGE_MAG_FILTER_HP = 0x815C-gl_COLOR4_BIT_PGI :: GLenum-gl_COLOR4_BIT_PGI = 0x00020000-gl_MAX_CLIPMAP_DEPTH_SGIX :: GLenum-gl_MAX_CLIPMAP_DEPTH_SGIX = 0x8177-gl_DEBUG_CATEGORY_OTHER_AMD :: GLenum-gl_DEBUG_CATEGORY_OTHER_AMD = 0x9150-gl_INT_IMAGE_2D_MULTISAMPLE :: GLenum-gl_INT_IMAGE_2D_MULTISAMPLE = 0x9060-gl_PERFQUERY_COUNTER_DATA_FLOAT_INTEL :: GLenum-gl_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA-gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB :: GLenum-gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3-gl_BINORMAL_ARRAY_EXT :: GLenum-gl_BINORMAL_ARRAY_EXT = 0x843A-gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211-gl_DRAW_BUFFER9_ARB :: GLenum-gl_DRAW_BUFFER9_ARB = 0x882E-gl_DSDT8_NV :: GLenum-gl_DSDT8_NV = 0x8709-gl_MAP1_VERTEX_ATTRIB9_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669-gl_PROGRAM_OBJECT_ARB :: GLenum-gl_PROGRAM_OBJECT_ARB = 0x8B40-gl_FONT_UNDERLINE_POSITION_BIT_NV :: GLenum-gl_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000-gl_SHADER_OPERATION_NV :: GLenum-gl_SHADER_OPERATION_NV = 0x86DF-gl_QUERY_RESULT_AVAILABLE_EXT :: GLenum-gl_QUERY_RESULT_AVAILABLE_EXT = 0x8867-gl_VIVIDLIGHT_NV :: GLenum-gl_VIVIDLIGHT_NV = 0x92A6-gl_HSL_HUE_NV :: GLenum-gl_HSL_HUE_NV = 0x92AD-gl_EMBOSS_MAP_NV :: GLenum-gl_EMBOSS_MAP_NV = 0x855F-gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB :: GLenum-gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D-gl_ALL_BARRIER_BITS :: GLenum-gl_ALL_BARRIER_BITS = 0xFFFFFFFF-gl_TEXTURE11_ARB :: GLenum-gl_TEXTURE11_ARB = 0x84CB-gl_BOLD_BIT_NV :: GLenum-gl_BOLD_BIT_NV = 0x01-gl_SAMPLE_BUFFERS_3DFX :: GLenum-gl_SAMPLE_BUFFERS_3DFX = 0x86B3-gl_INTERNALFORMAT_ALPHA_SIZE :: GLenum-gl_INTERNALFORMAT_ALPHA_SIZE = 0x8274-gl_COMPRESSED_RGBA_ASTC_8x8_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7-gl_VIRTUAL_PAGE_SIZE_Z_AMD :: GLenum-gl_VIRTUAL_PAGE_SIZE_Z_AMD = 0x9197-gl_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE :: GLenum-gl_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09-gl_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB :: GLenum-gl_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = 0x82F3-gl_DRAW_PIXELS_APPLE :: GLenum-gl_DRAW_PIXELS_APPLE = 0x8A0A-gl_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519-gl_FRAGMENT_COLOR_MATERIAL_FACE_SGIX :: GLenum-gl_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402-gl_DRAW_INDIRECT_ADDRESS_NV :: GLenum-gl_DRAW_INDIRECT_ADDRESS_NV = 0x8F41-gl_COVERAGE_BUFFER_BIT_NV :: GLenum-gl_COVERAGE_BUFFER_BIT_NV = 0x00008000-gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT :: GLenum-gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC-gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9-gl_BLUE_NV :: GLenum-gl_BLUE_NV = 0x1905-gl_TEXTURE0_ARB :: GLenum-gl_TEXTURE0_ARB = 0x84C0-gl_DEBUG_SOURCE_THIRD_PARTY_ARB :: GLenum-gl_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249-gl_TEXTURE_NORMAL_EXT :: GLenum-gl_TEXTURE_NORMAL_EXT = 0x85AF-gl_TEXTURE_BUFFER_FORMAT_ARB :: GLenum-gl_TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E-gl_OPERAND0_ALPHA :: GLenum-gl_OPERAND0_ALPHA = 0x8598-gl_FLOAT_MAT2x3 :: GLenum-gl_FLOAT_MAT2x3 = 0x8B65-gl_TEXTURE_BINDING :: GLenum-gl_TEXTURE_BINDING = 0x82EB-gl_INT_SAMPLER_2D :: GLenum-gl_INT_SAMPLER_2D = 0x8DCA-gl_OR :: GLenum-gl_OR = 0x1507-gl_INT16_VEC2_NV :: GLenum-gl_INT16_VEC2_NV = 0x8FE5-gl_DUAL_ALPHA4_SGIS :: GLenum-gl_DUAL_ALPHA4_SGIS = 0x8110-gl_FRAMEZOOM_FACTOR_SGIX :: GLenum-gl_FRAMEZOOM_FACTOR_SGIX = 0x818C-gl_IMAGE_2D_MULTISAMPLE_ARRAY_EXT :: GLenum-gl_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9056-gl_RGB_INTEGER :: GLenum-gl_RGB_INTEGER = 0x8D98-gl_UNSIGNED_INT64_VEC2_NV :: GLenum-gl_UNSIGNED_INT64_VEC2_NV = 0x8FF5-gl_OUTPUT_TEXTURE_COORD21_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2-gl_ENABLE_BIT :: GLenum-gl_ENABLE_BIT = 0x00002000-gl_POLYGON_OFFSET_EXT :: GLenum-gl_POLYGON_OFFSET_EXT = 0x8037-gl_PIXEL_TEX_GEN_MODE_SGIX :: GLenum-gl_PIXEL_TEX_GEN_MODE_SGIX = 0x832B-gl_LINE_SMOOTH :: GLenum-gl_LINE_SMOOTH = 0x0B20-gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB :: GLenum-gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = 0x919A-gl_COLOR_TABLE_LUMINANCE_SIZE_SGI :: GLenum-gl_COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE-gl_COLOR_BUFFER_BIT7_QCOM :: GLenum-gl_COLOR_BUFFER_BIT7_QCOM = 0x00000080-gl_PATH_FILL_MODE_NV :: GLenum-gl_PATH_FILL_MODE_NV = 0x9080-gl_IMAGE_CUBE :: GLenum-gl_IMAGE_CUBE = 0x9050-gl_CON_5_ATI :: GLenum-gl_CON_5_ATI = 0x8946-gl_COLOR_ATTACHMENT2_EXT :: GLenum-gl_COLOR_ATTACHMENT2_EXT = 0x8CE2-gl_FAILURE_NV :: GLenum-gl_FAILURE_NV = 0x9030-gl_VERTEX_ARRAY_LIST_STRIDE_IBM :: GLenum-gl_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080-gl_MAX_SPARSE_TEXTURE_SIZE_ARB :: GLenum-gl_MAX_SPARSE_TEXTURE_SIZE_ARB = 0x9198-gl_VERSION_ES_CL_1_1 :: GLenum-gl_VERSION_ES_CL_1_1 = 1-gl_PERFMON_GLOBAL_MODE_QCOM :: GLenum-gl_PERFMON_GLOBAL_MODE_QCOM = 0x8FA0-gl_DEPTH_COMPONENT32F :: GLenum-gl_DEPTH_COMPONENT32F = 0x8CAC-gl_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT :: GLenum-gl_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = 0x9124-gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS :: GLenum-gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F-gl_IMAGE_2D_MULTISAMPLE_EXT :: GLenum-gl_IMAGE_2D_MULTISAMPLE_EXT = 0x9055-gl_FRAMEBUFFER_OES :: GLenum-gl_FRAMEBUFFER_OES = 0x8D40-gl_TRANSPOSE_PROJECTION_MATRIX :: GLenum-gl_TRANSPOSE_PROJECTION_MATRIX = 0x84E4-gl_BUFFER_MAP_POINTER :: GLenum-gl_BUFFER_MAP_POINTER = 0x88BD-gl_INT_10_10_10_2_OES :: GLenum-gl_INT_10_10_10_2_OES = 0x8DF7-gl_PROGRAM_PIPELINE_OBJECT_EXT :: GLenum-gl_PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F-gl_GEOMETRY_SHADER_INVOCATIONS_EXT :: GLenum-gl_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x887F-gl_SPRITE_AXIS_SGIX :: GLenum-gl_SPRITE_AXIS_SGIX = 0x814A-gl_RED_INTEGER_EXT :: GLenum-gl_RED_INTEGER_EXT = 0x8D94-gl_COMPRESSED_RGBA_ASTC_10x6_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9-gl_TEXTURE_COORD_ARRAY_COUNT_EXT :: GLenum-gl_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B-gl_SIGNED_RGB_NV :: GLenum-gl_SIGNED_RGB_NV = 0x86FE-gl_CW :: GLenum-gl_CW = 0x0900-gl_PACK_SUBSAMPLE_RATE_SGIX :: GLenum-gl_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0-gl_TEXTURE14_ARB :: GLenum-gl_TEXTURE14_ARB = 0x84CE-gl_OUTPUT_TEXTURE_COORD26_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7-gl_DRAW_BUFFER :: GLenum-gl_DRAW_BUFFER = 0x0C01-gl_PACK_ROW_BYTES_APPLE :: GLenum-gl_PACK_ROW_BYTES_APPLE = 0x8A15-gl_BLUE_INTEGER_EXT :: GLenum-gl_BLUE_INTEGER_EXT = 0x8D96-gl_STORAGE_CLIENT_APPLE :: GLenum-gl_STORAGE_CLIENT_APPLE = 0x85B4-gl_ALL_SHADER_BITS :: GLenum-gl_ALL_SHADER_BITS = 0xFFFFFFFF-gl_FOG_COORDINATE_ARRAY_POINTER :: GLenum-gl_FOG_COORDINATE_ARRAY_POINTER = 0x8456-gl_ACTIVE_PROGRAM :: GLenum-gl_ACTIVE_PROGRAM = 0x8259-gl_RGBA32F_ARB :: GLenum-gl_RGBA32F_ARB = 0x8814-gl_VERTEX_ATTRIB_ARRAY_INTEGER :: GLenum-gl_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD-gl_MAP2_VERTEX_ATTRIB13_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D-gl_SAMPLER_2D :: GLenum-gl_SAMPLER_2D = 0x8B5E-gl_QUERY :: GLenum-gl_QUERY = 0x82E3-gl_GEOMETRY_INPUT_TYPE_EXT :: GLenum-gl_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB-gl_RGB5_A1_OES :: GLenum-gl_RGB5_A1_OES = 0x8057-gl_MATRIX15_ARB :: GLenum-gl_MATRIX15_ARB = 0x88CF-gl_INT_IMAGE_CUBE_MAP_ARRAY :: GLenum-gl_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F-gl_STACK_OVERFLOW :: GLenum-gl_STACK_OVERFLOW = 0x0503-gl_NORMAL_ARRAY_LENGTH_NV :: GLenum-gl_NORMAL_ARRAY_LENGTH_NV = 0x8F2C-gl_RENDERBUFFER_BLUE_SIZE_EXT :: GLenum-gl_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52-gl_TEXTURE_INTENSITY_SIZE_EXT :: GLenum-gl_TEXTURE_INTENSITY_SIZE_EXT = 0x8061-gl_POINT_SIZE_MIN_SGIS :: GLenum-gl_POINT_SIZE_MIN_SGIS = 0x8126-gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW :: GLenum-gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D-gl_BEVEL_NV :: GLenum-gl_BEVEL_NV = 0x90A6-gl_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX :: GLenum-gl_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = 0x8311-gl_SIGNED_RGBA_NV :: GLenum-gl_SIGNED_RGBA_NV = 0x86FB-gl_COLOR_CLEAR_VALUE :: GLenum-gl_COLOR_CLEAR_VALUE = 0x0C22-gl_ARRAY_BUFFER :: GLenum-gl_ARRAY_BUFFER = 0x8892-gl_CLIP_PLANE2_IMG :: GLenum-gl_CLIP_PLANE2_IMG = 0x3002-gl_POLYGON_OFFSET_UNITS :: GLenum-gl_POLYGON_OFFSET_UNITS = 0x2A00-gl_COLOR_ARRAY_POINTER_EXT :: GLenum-gl_COLOR_ARRAY_POINTER_EXT = 0x8090-gl_POST_COLOR_MATRIX_COLOR_TABLE :: GLenum-gl_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2-gl_SHADOW_AMBIENT_SGIX :: GLenum-gl_SHADOW_AMBIENT_SGIX = 0x80BF-gl_SAMPLES :: GLenum-gl_SAMPLES = 0x80A9-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = 0x93E4-gl_MIRRORED_REPEAT_IBM :: GLenum-gl_MIRRORED_REPEAT_IBM = 0x8370-gl_TEXTURE_2D_MULTISAMPLE_ARRAY_OES :: GLenum-gl_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = 0x9102-gl_FRAMEBUFFER_DEFAULT_WIDTH :: GLenum-gl_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310-gl_TEXTURE_GEN_MODE_OES :: GLenum-gl_TEXTURE_GEN_MODE_OES = 0x2500-gl_BLEND_SRC_ALPHA_EXT :: GLenum-gl_BLEND_SRC_ALPHA_EXT = 0x80CB-gl_OUTPUT_COLOR0_EXT :: GLenum-gl_OUTPUT_COLOR0_EXT = 0x879B-gl_SLUMINANCE8_ALPHA8 :: GLenum-gl_SLUMINANCE8_ALPHA8 = 0x8C45-gl_SAMPLER_3D_ARB :: GLenum-gl_SAMPLER_3D_ARB = 0x8B5F-gl_UNSIGNED_INT_SAMPLER_3D :: GLenum-gl_UNSIGNED_INT_SAMPLER_3D = 0x8DD3-gl_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA-gl_PATH_FORMAT_SVG_NV :: GLenum-gl_PATH_FORMAT_SVG_NV = 0x9070-gl_MAP1_BINORMAL_EXT :: GLenum-gl_MAP1_BINORMAL_EXT = 0x8446-gl_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX :: GLenum-gl_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = 0x8188-gl_COLOR_ARRAY_BUFFER_BINDING :: GLenum-gl_COLOR_ARRAY_BUFFER_BINDING = 0x8898-gl_MATRIX_INDEX_ARRAY_TYPE_OES :: GLenum-gl_MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847-gl_PROJECTION_STACK_DEPTH :: GLenum-gl_PROJECTION_STACK_DEPTH = 0x0BA4-gl_AUTO_NORMAL :: GLenum-gl_AUTO_NORMAL = 0x0D80-gl_FRAGMENT_SHADER_ATI :: GLenum-gl_FRAGMENT_SHADER_ATI = 0x8920-gl_SAMPLE_BUFFERS_EXT :: GLenum-gl_SAMPLE_BUFFERS_EXT = 0x80A8-gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT :: GLenum-gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x906C-gl_UNSIGNED_INT_10_10_10_2 :: GLenum-gl_UNSIGNED_INT_10_10_10_2 = 0x8036-gl_COMPRESSED_RG11_EAC_OES :: GLenum-gl_COMPRESSED_RG11_EAC_OES = 0x9272-gl_LUMINANCE8I_EXT :: GLenum-gl_LUMINANCE8I_EXT = 0x8D92-gl_VERTEX_ATTRIB_ARRAY13_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY13_NV = 0x865D-gl_UNIFORM_BUFFER_SIZE :: GLenum-gl_UNIFORM_BUFFER_SIZE = 0x8A2A-gl_TEXTURE2_ARB :: GLenum-gl_TEXTURE2_ARB = 0x84C2-gl_COMPRESSED_RGBA_BPTC_UNORM_ARB :: GLenum-gl_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C-gl_POLYGON :: GLenum-gl_POLYGON = 0x0009-gl_CLIENT_MAPPED_BUFFER_BARRIER_BIT :: GLenum-gl_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000-gl_ELEMENT_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895-gl_SAMPLE_BUFFERS_ARB :: GLenum-gl_SAMPLE_BUFFERS_ARB = 0x80A8-gl_RGBA4_DXT5_S3TC :: GLenum-gl_RGBA4_DXT5_S3TC = 0x83A5-gl_STREAM_READ :: GLenum-gl_STREAM_READ = 0x88E1-gl_STATIC_READ :: GLenum-gl_STATIC_READ = 0x88E5-gl_MAX_FRAGMENT_ATOMIC_COUNTERS :: GLenum-gl_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6-gl_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT :: GLenum-gl_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72-gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST :: GLenum-gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD-gl_COUNT_DOWN_NV :: GLenum-gl_COUNT_DOWN_NV = 0x9089-gl_SLUMINANCE :: GLenum-gl_SLUMINANCE = 0x8C46-gl_INNOCENT_CONTEXT_RESET :: GLenum-gl_INNOCENT_CONTEXT_RESET = 0x8254-gl_DRAW_FRAMEBUFFER_BINDING_NV :: GLenum-gl_DRAW_FRAMEBUFFER_BINDING_NV = 0x8CA6-gl_VERTEX_STREAM3_ATI :: GLenum-gl_VERTEX_STREAM3_ATI = 0x876F-gl_TRIANGULAR_NV :: GLenum-gl_TRIANGULAR_NV = 0x90A5-gl_SAMPLER_2D_RECT_ARB :: GLenum-gl_SAMPLER_2D_RECT_ARB = 0x8B63-gl_POST_CONVOLUTION_GREEN_SCALE_EXT :: GLenum-gl_POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D-gl_SKIP_COMPONENTS2_NV :: GLenum-gl_SKIP_COMPONENTS2_NV = -5-gl_IMAGE_1D :: GLenum-gl_IMAGE_1D = 0x904C-gl_ATTRIB_ARRAY_TYPE_NV :: GLenum-gl_ATTRIB_ARRAY_TYPE_NV = 0x8625-gl_ORDER :: GLenum-gl_ORDER = 0x0A01-gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB :: GLenum-gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E-gl_RGB4_EXT :: GLenum-gl_RGB4_EXT = 0x804F-gl_COMPRESSED_TEXTURE_FORMATS_ARB :: GLenum-gl_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3-gl_STENCIL_INDEX16_EXT :: GLenum-gl_STENCIL_INDEX16_EXT = 0x8D49-gl_OP_RECIP_SQRT_EXT :: GLenum-gl_OP_RECIP_SQRT_EXT = 0x8795-gl_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS :: GLenum-gl_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1-gl_MAX_PROGRAM_TEXEL_OFFSET :: GLenum-gl_MAX_PROGRAM_TEXEL_OFFSET = 0x8905-gl_POST_TEXTURE_FILTER_BIAS_SGIX :: GLenum-gl_POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179-gl_RGB32F_EXT :: GLenum-gl_RGB32F_EXT = 0x8815-gl_SURFACE_REGISTERED_NV :: GLenum-gl_SURFACE_REGISTERED_NV = 0x86FD-gl_RGBA_FLOAT16_APPLE :: GLenum-gl_RGBA_FLOAT16_APPLE = 0x881A-gl_VIDEO_BUFFER_BINDING_NV :: GLenum-gl_VIDEO_BUFFER_BINDING_NV = 0x9021-gl_PRIMITIVE_RESTART_INDEX :: GLenum-gl_PRIMITIVE_RESTART_INDEX = 0x8F9E-gl_DOT3_RGB_ARB :: GLenum-gl_DOT3_RGB_ARB = 0x86AE-gl_INT64_VEC4_NV :: GLenum-gl_INT64_VEC4_NV = 0x8FEB-gl_DRAW_BUFFER12_ATI :: GLenum-gl_DRAW_BUFFER12_ATI = 0x8831-gl_RESAMPLE_REPLICATE_SGIX :: GLenum-gl_RESAMPLE_REPLICATE_SGIX = 0x842E-gl_ALPHA :: GLenum-gl_ALPHA = 0x1906-gl_MATRIX22_ARB :: GLenum-gl_MATRIX22_ARB = 0x88D6-gl_DEPTH_TEST :: GLenum-gl_DEPTH_TEST = 0x0B71-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5-gl_BLEND_SRC_ALPHA :: GLenum-gl_BLEND_SRC_ALPHA = 0x80CB-gl_MIRROR_CLAMP_ATI :: GLenum-gl_MIRROR_CLAMP_ATI = 0x8742-gl_COMBINER3_NV :: GLenum-gl_COMBINER3_NV = 0x8553-gl_TEXTURE_BINDING_1D_ARRAY_EXT :: GLenum-gl_TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C-gl_MIRROR_CLAMP_TO_BORDER_EXT :: GLenum-gl_MIRROR_CLAMP_TO_BORDER_EXT = 0x8912-gl_MAP1_INDEX :: GLenum-gl_MAP1_INDEX = 0x0D91-gl_VIEW_CLASS_BPTC_FLOAT :: GLenum-gl_VIEW_CLASS_BPTC_FLOAT = 0x82D3-gl_TRANSPOSE_AFFINE_2D_NV :: GLenum-gl_TRANSPOSE_AFFINE_2D_NV = 0x9096-gl_IMAGE_CLASS_2_X_8 :: GLenum-gl_IMAGE_CLASS_2_X_8 = 0x82C0-gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB :: GLenum-gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808-gl_EYE_POINT_SGIS :: GLenum-gl_EYE_POINT_SGIS = 0x81F4-gl_TEXTURE_DEPTH_SIZE_ARB :: GLenum-gl_TEXTURE_DEPTH_SIZE_ARB = 0x884A-gl_GLYPH_HAS_KERNING_BIT_NV :: GLenum-gl_GLYPH_HAS_KERNING_BIT_NV = 0x100-gl_ACTIVE_SUBROUTINES :: GLenum-gl_ACTIVE_SUBROUTINES = 0x8DE5-gl_MVP_MATRIX_EXT :: GLenum-gl_MVP_MATRIX_EXT = 0x87E3-gl_READ_FRAMEBUFFER_BINDING :: GLenum-gl_READ_FRAMEBUFFER_BINDING = 0x8CAA-gl_GUILTY_CONTEXT_RESET_EXT :: GLenum-gl_GUILTY_CONTEXT_RESET_EXT = 0x8253-gl_ALPHA16UI_EXT :: GLenum-gl_ALPHA16UI_EXT = 0x8D78-gl_TEXTURE_SWIZZLE_B_EXT :: GLenum-gl_TEXTURE_SWIZZLE_B_EXT = 0x8E44-gl_RGB16I_EXT :: GLenum-gl_RGB16I_EXT = 0x8D89-gl_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B-gl_VERTEX_WEIGHT_ARRAY_EXT :: GLenum-gl_VERTEX_WEIGHT_ARRAY_EXT = 0x850C-gl_SWIZZLE_STR_DR_ATI :: GLenum-gl_SWIZZLE_STR_DR_ATI = 0x8978-gl_READ_FRAMEBUFFER :: GLenum-gl_READ_FRAMEBUFFER = 0x8CA8-gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI :: GLenum-gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5-gl_COORD_REPLACE_NV :: GLenum-gl_COORD_REPLACE_NV = 0x8862-gl_MAX_CLIP_PLANES :: GLenum-gl_MAX_CLIP_PLANES = 0x0D32-gl_DRAW_BUFFER0 :: GLenum-gl_DRAW_BUFFER0 = 0x8825-gl_SPRITE_OBJECT_ALIGNED_SGIX :: GLenum-gl_SPRITE_OBJECT_ALIGNED_SGIX = 0x814D-gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX :: GLenum-gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B-gl_CONSERVE_MEMORY_HINT_PGI :: GLenum-gl_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD-gl_GET_TEXTURE_IMAGE_FORMAT :: GLenum-gl_GET_TEXTURE_IMAGE_FORMAT = 0x8291-gl_MOVE_TO_RESETS_NV :: GLenum-gl_MOVE_TO_RESETS_NV = 0x90B5-gl_SHADER_CONSISTENT_NV :: GLenum-gl_SHADER_CONSISTENT_NV = 0x86DD-gl_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516-gl_PACK_ALIGNMENT :: GLenum-gl_PACK_ALIGNMENT = 0x0D05-gl_HISTOGRAM_ALPHA_SIZE :: GLenum-gl_HISTOGRAM_ALPHA_SIZE = 0x802B-gl_SHARED_TEXTURE_PALETTE_EXT :: GLenum-gl_SHARED_TEXTURE_PALETTE_EXT = 0x81FB-gl_MODELVIEW0_MATRIX_EXT :: GLenum-gl_MODELVIEW0_MATRIX_EXT = 0x0BA6-gl_MAX_NAME_LENGTH :: GLenum-gl_MAX_NAME_LENGTH = 0x92F6-gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY :: GLenum-gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105-gl_IMAGE_2D :: GLenum-gl_IMAGE_2D = 0x904D-gl_QUERY_BUFFER_AMD :: GLenum-gl_QUERY_BUFFER_AMD = 0x9192-gl_BUMP_ENVMAP_ATI :: GLenum-gl_BUMP_ENVMAP_ATI = 0x877B-gl_POINTS :: GLenum-gl_POINTS = 0x0000-gl_ARRAY_SIZE :: GLenum-gl_ARRAY_SIZE = 0x92FB-gl_MAX_CLIP_PLANES_IMG :: GLenum-gl_MAX_CLIP_PLANES_IMG = 0x0D32-gl_TRIANGLE_STRIP_ADJACENCY_EXT :: GLenum-gl_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D-gl_VERTEX_STREAM6_ATI :: GLenum-gl_VERTEX_STREAM6_ATI = 0x8772-gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR :: GLenum-gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E-gl_TEXTURE22 :: GLenum-gl_TEXTURE22 = 0x84D6-gl_CURRENT_FOG_COORDINATE :: GLenum-gl_CURRENT_FOG_COORDINATE = 0x8453-gl_CON_27_ATI :: GLenum-gl_CON_27_ATI = 0x895C-gl_MAX_VERTEX_UNITS_OES :: GLenum-gl_MAX_VERTEX_UNITS_OES = 0x86A4-gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT :: GLenum-gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF-gl_SIGNED_INTENSITY8_NV :: GLenum-gl_SIGNED_INTENSITY8_NV = 0x8708-gl_MAX_EVAL_ORDER :: GLenum-gl_MAX_EVAL_ORDER = 0x0D30-gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518-gl_DYNAMIC_READ_ARB :: GLenum-gl_DYNAMIC_READ_ARB = 0x88E9-gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV :: GLenum-gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D-gl_FLOAT16_NV :: GLenum-gl_FLOAT16_NV = 0x8FF8-gl_COMPUTE_SHADER_INVOCATIONS_ARB :: GLenum-gl_COMPUTE_SHADER_INVOCATIONS_ARB = 0x82F5-gl_VERTEX_SHADER_OPTIMIZED_EXT :: GLenum-gl_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4-gl_TEXTURE_LOD_BIAS_EXT :: GLenum-gl_TEXTURE_LOD_BIAS_EXT = 0x8501-gl_INT8_VEC3_NV :: GLenum-gl_INT8_VEC3_NV = 0x8FE2-gl_4PASS_0_SGIS :: GLenum-gl_4PASS_0_SGIS = 0x80A4-gl_HISTOGRAM_EXT :: GLenum-gl_HISTOGRAM_EXT = 0x8024-gl_ALLOW_DRAW_WIN_HINT_PGI :: GLenum-gl_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F-gl_TEXTURE_GREEN_SIZE_EXT :: GLenum-gl_TEXTURE_GREEN_SIZE_EXT = 0x805D-gl_R32I :: GLenum-gl_R32I = 0x8235-gl_REG_22_ATI :: GLenum-gl_REG_22_ATI = 0x8937-gl_UNSIGNED_INT_ATOMIC_COUNTER :: GLenum-gl_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB-gl_COLOR_ATTACHMENT2 :: GLenum-gl_COLOR_ATTACHMENT2 = 0x8CE2-gl_INTENSITY8 :: GLenum-gl_INTENSITY8 = 0x804B-gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS :: GLenum-gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7-gl_FOG_DENSITY :: GLenum-gl_FOG_DENSITY = 0x0B62-gl_RENDERBUFFER_HEIGHT_EXT :: GLenum-gl_RENDERBUFFER_HEIGHT_EXT = 0x8D43-gl_Z_EXT :: GLenum-gl_Z_EXT = 0x87D7-gl_TEXTURE_FETCH_BARRIER_BIT :: GLenum-gl_TEXTURE_FETCH_BARRIER_BIT = 0x00000008-gl_PROGRAM_BINARY_FORMATS :: GLenum-gl_PROGRAM_BINARY_FORMATS = 0x87FF-gl_UNSIGNED_INT_IMAGE_BUFFER :: GLenum-gl_UNSIGNED_INT_IMAGE_BUFFER = 0x9067-gl_OPERAND0_RGB :: GLenum-gl_OPERAND0_RGB = 0x8590-gl_COVERAGE_COMPONENT_NV :: GLenum-gl_COVERAGE_COMPONENT_NV = 0x8ED0-gl_NEGATE_BIT_ATI :: GLenum-gl_NEGATE_BIT_ATI = 0x00000004-gl_DEBUG_TYPE_PUSH_GROUP :: GLenum-gl_DEBUG_TYPE_PUSH_GROUP = 0x8269-gl_SELECT :: GLenum-gl_SELECT = 0x1C02-gl_IMAGE_BINDING_ACCESS_EXT :: GLenum-gl_IMAGE_BINDING_ACCESS_EXT = 0x8F3E-gl_TEXTURE_GEN_STR_OES :: GLenum-gl_TEXTURE_GEN_STR_OES = 0x8D60-gl_OCCLUSION_TEST_HP :: GLenum-gl_OCCLUSION_TEST_HP = 0x8165-gl_BLEND_DST_RGB_OES :: GLenum-gl_BLEND_DST_RGB_OES = 0x80C8-gl_IMAGE_BINDING_NAME :: GLenum-gl_IMAGE_BINDING_NAME = 0x8F3A-gl_DUAL_LUMINANCE_ALPHA8_SGIS :: GLenum-gl_DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D-gl_POLYGON_BIT :: GLenum-gl_POLYGON_BIT = 0x00000008-gl_POST_COLOR_MATRIX_GREEN_BIAS_SGI :: GLenum-gl_POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9-gl_COLOR_ATTACHMENT8_EXT :: GLenum-gl_COLOR_ATTACHMENT8_EXT = 0x8CE8-gl_BLUE_BIAS :: GLenum-gl_BLUE_BIAS = 0x0D1B-gl_EMISSION :: GLenum-gl_EMISSION = 0x1600-gl_DEPTH_ATTACHMENT_OES :: GLenum-gl_DEPTH_ATTACHMENT_OES = 0x8D00-gl_POLYGON_OFFSET_FACTOR_EXT :: GLenum-gl_POLYGON_OFFSET_FACTOR_EXT = 0x8038-gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT :: GLenum-gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4-gl_TEXTURE_MATERIAL_FACE_EXT :: GLenum-gl_TEXTURE_MATERIAL_FACE_EXT = 0x8351-gl_PN_TRIANGLES_POINT_MODE_CUBIC_ATI :: GLenum-gl_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6-gl_DRAW_FRAMEBUFFER_ANGLE :: GLenum-gl_DRAW_FRAMEBUFFER_ANGLE = 0x8CA9-gl_DEPTH_BUFFER_BIT3_QCOM :: GLenum-gl_DEPTH_BUFFER_BIT3_QCOM = 0x00000800-gl_DISTANCE_ATTENUATION_EXT :: GLenum-gl_DISTANCE_ATTENUATION_EXT = 0x8129-gl_TRACE_ARRAYS_BIT_MESA :: GLenum-gl_TRACE_ARRAYS_BIT_MESA = 0x0004-gl_MOVE_TO_NV :: GLenum-gl_MOVE_TO_NV = 0x02-gl_2PASS_1_SGIS :: GLenum-gl_2PASS_1_SGIS = 0x80A3-gl_DUAL_LUMINANCE4_SGIS :: GLenum-gl_DUAL_LUMINANCE4_SGIS = 0x8114-gl_PRIMITIVES_SUBMITTED_ARB :: GLenum-gl_PRIMITIVES_SUBMITTED_ARB = 0x82EF-gl_TOP_LEVEL_ARRAY_STRIDE :: GLenum-gl_TOP_LEVEL_ARRAY_STRIDE = 0x930D-gl_NORMAL_ARRAY_STRIDE :: GLenum-gl_NORMAL_ARRAY_STRIDE = 0x807F-gl_TEXTURE_2D_ARRAY_EXT :: GLenum-gl_TEXTURE_2D_ARRAY_EXT = 0x8C1A-gl_UNPACK_COMPRESSED_BLOCK_WIDTH :: GLenum-gl_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127-gl_TEXTURE_FIXED_SAMPLE_LOCATIONS :: GLenum-gl_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107-gl_YCRCBA_SGIX :: GLenum-gl_YCRCBA_SGIX = 0x8319-gl_LOCATION_COMPONENT :: GLenum-gl_LOCATION_COMPONENT = 0x934A-gl_TEXTURE27 :: GLenum-gl_TEXTURE27 = 0x84DB-gl_CONTEXT_FLAG_DEBUG_BIT_KHR :: GLenum-gl_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002-gl_FOG_COORDINATE_EXT :: GLenum-gl_FOG_COORDINATE_EXT = 0x8451-gl_DEBUG_CALLBACK_USER_PARAM_KHR :: GLenum-gl_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245-gl_MIRRORED_REPEAT_OES :: GLenum-gl_MIRRORED_REPEAT_OES = 0x8370-gl_SYNC_GPU_COMMANDS_COMPLETE :: GLenum-gl_SYNC_GPU_COMMANDS_COMPLETE = 0x9117-gl_SLUMINANCE8_ALPHA8_EXT :: GLenum-gl_SLUMINANCE8_ALPHA8_EXT = 0x8C45-gl_TEXTURE_BUFFER_OFFSET :: GLenum-gl_TEXTURE_BUFFER_OFFSET = 0x919D-gl_PROXY_COLOR_TABLE :: GLenum-gl_PROXY_COLOR_TABLE = 0x80D3-gl_FIXED :: GLenum-gl_FIXED = 0x140C-gl_SRGB8 :: GLenum-gl_SRGB8 = 0x8C41-gl_COMPRESSED_RGBA :: GLenum-gl_COMPRESSED_RGBA = 0x84EE-gl_IMAGE_BINDING_FORMAT :: GLenum-gl_IMAGE_BINDING_FORMAT = 0x906E-gl_MAX_RENDERBUFFER_SIZE_OES :: GLenum-gl_MAX_RENDERBUFFER_SIZE_OES = 0x84E8-gl_DEBUG_SOURCE_API :: GLenum-gl_DEBUG_SOURCE_API = 0x8246-gl_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH :: GLenum-gl_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49-gl_CLIP_PLANE3_IMG :: GLenum-gl_CLIP_PLANE3_IMG = 0x3003-gl_TEXTURE16 :: GLenum-gl_TEXTURE16 = 0x84D0-gl_FRAGMENTS_INSTRUMENT_SGIX :: GLenum-gl_FRAGMENTS_INSTRUMENT_SGIX = 0x8313-gl_MATRIX8_ARB :: GLenum-gl_MATRIX8_ARB = 0x88C8-gl_DOUBLE_MAT2x4 :: GLenum-gl_DOUBLE_MAT2x4 = 0x8F4A-gl_DRAW_BUFFER9_ATI :: GLenum-gl_DRAW_BUFFER9_ATI = 0x882E-gl_CURRENT_TEXTURE_COORDS :: GLenum-gl_CURRENT_TEXTURE_COORDS = 0x0B03-gl_DOT_PRODUCT_TEXTURE_3D_NV :: GLenum-gl_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF-gl_SECONDARY_COLOR_ARRAY_STRIDE_EXT :: GLenum-gl_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C-gl_UNSIGNED_INT_IMAGE_2D_ARRAY :: GLenum-gl_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069-gl_FRAMEBUFFER_BARRIER_BIT :: GLenum-gl_FRAMEBUFFER_BARRIER_BIT = 0x00000400-gl_MAX_SAMPLES_IMG :: GLenum-gl_MAX_SAMPLES_IMG = 0x9135-gl_TESS_CONTROL_SHADER_BIT_EXT :: GLenum-gl_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008-gl_PROGRAM_NATIVE_TEMPORARIES_ARB :: GLenum-gl_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6-gl_COMPRESSED_RGB_PVRTC_4BPPV1_IMG :: GLenum-gl_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00-gl_VERTEX_PROGRAM_ARB :: GLenum-gl_VERTEX_PROGRAM_ARB = 0x8620-gl_MAP2_BINORMAL_EXT :: GLenum-gl_MAP2_BINORMAL_EXT = 0x8447-gl_ETC1_RGB8_OES :: GLenum-gl_ETC1_RGB8_OES = 0x8D64-gl_PROGRAM_MATRIX_STACK_DEPTH_EXT :: GLenum-gl_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F-gl_TEXTURE_USAGE_ANGLE :: GLenum-gl_TEXTURE_USAGE_ANGLE = 0x93A2-gl_TEXTURE_MATRIX :: GLenum-gl_TEXTURE_MATRIX = 0x0BA8-gl_INT_SAMPLER_CUBE_MAP_ARRAY_EXT :: GLenum-gl_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900E-gl_INDEX_ARRAY_STRIDE :: GLenum-gl_INDEX_ARRAY_STRIDE = 0x8086-gl_POST_COLOR_MATRIX_BLUE_SCALE :: GLenum-gl_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6-gl_TESS_CONTROL_OUTPUT_VERTICES :: GLenum-gl_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75-gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET :: GLenum-gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E-gl_COMPRESSED_RGBA_ASTC_6x6_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4-gl_INTERNALFORMAT_SHARED_SIZE :: GLenum-gl_INTERNALFORMAT_SHARED_SIZE = 0x8277-gl_SOURCE1_RGB_EXT :: GLenum-gl_SOURCE1_RGB_EXT = 0x8581-gl_STENCIL_PASS_DEPTH_FAIL :: GLenum-gl_STENCIL_PASS_DEPTH_FAIL = 0x0B95-gl_MATRIX_PALETTE_OES :: GLenum-gl_MATRIX_PALETTE_OES = 0x8840-gl_MIN_FRAGMENT_INTERPOLATION_OFFSET :: GLenum-gl_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B-gl_DOT3_RGBA_EXT :: GLenum-gl_DOT3_RGBA_EXT = 0x8741-gl_CLIP_VOLUME_CLIPPING_HINT_EXT :: GLenum-gl_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0-gl_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV :: GLenum-gl_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80-gl_FONT_X_MIN_BOUNDS_BIT_NV :: GLenum-gl_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000-gl_WRAP_BORDER_SUN :: GLenum-gl_WRAP_BORDER_SUN = 0x81D4-gl_MAP_INVALIDATE_RANGE_BIT :: GLenum-gl_MAP_INVALIDATE_RANGE_BIT = 0x0004-gl_PATH_MODELVIEW_NV :: GLenum-gl_PATH_MODELVIEW_NV = 0x1700-gl_TESS_CONTROL_SHADER :: GLenum-gl_TESS_CONTROL_SHADER = 0x8E88-gl_VERTEX_STREAM1_ATI :: GLenum-gl_VERTEX_STREAM1_ATI = 0x876D-gl_R3_G3_B2 :: GLenum-gl_R3_G3_B2 = 0x2A10-gl_LARGE_CW_ARC_TO_NV :: GLenum-gl_LARGE_CW_ARC_TO_NV = 0x18-gl_PRIMITIVE_BOUNDING_BOX_EXT :: GLenum-gl_PRIMITIVE_BOUNDING_BOX_EXT = 0x92BE-gl_ALPHA_BIAS :: GLenum-gl_ALPHA_BIAS = 0x0D1D-gl_DST_IN_NV :: GLenum-gl_DST_IN_NV = 0x928B-gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT :: GLenum-gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3-gl_NUM_FILL_STREAMS_NV :: GLenum-gl_NUM_FILL_STREAMS_NV = 0x8E29-gl_ATTRIB_ARRAY_POINTER_NV :: GLenum-gl_ATTRIB_ARRAY_POINTER_NV = 0x8645-gl_SOURCE0_RGB_ARB :: GLenum-gl_SOURCE0_RGB_ARB = 0x8580-gl_MAX_PROGRAM_TEXEL_OFFSET_EXT :: GLenum-gl_MAX_PROGRAM_TEXEL_OFFSET_EXT = 0x8905-gl_MATRIX27_ARB :: GLenum-gl_MATRIX27_ARB = 0x88DB-gl_R11F_G11F_B10F :: GLenum-gl_R11F_G11F_B10F = 0x8C3A-gl_ATOMIC_COUNTER_BUFFER_INDEX :: GLenum-gl_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301-gl_TEXTURE_SWIZZLE_R_EXT :: GLenum-gl_TEXTURE_SWIZZLE_R_EXT = 0x8E42-gl_MAX_ASYNC_READ_PIXELS_SGIX :: GLenum-gl_MAX_ASYNC_READ_PIXELS_SGIX = 0x8361-gl_ACTIVE_TEXTURE_ARB :: GLenum-gl_ACTIVE_TEXTURE_ARB = 0x84E0-gl_VERTEX_SHADER_LOCAL_CONSTANTS_EXT :: GLenum-gl_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2-gl_REFERENCE_PLANE_SGIX :: GLenum-gl_REFERENCE_PLANE_SGIX = 0x817D-gl_UNPACK_CLIENT_STORAGE_APPLE :: GLenum-gl_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2-gl_SKIP_DECODE_EXT :: GLenum-gl_SKIP_DECODE_EXT = 0x8A4A-gl_MAP2_VERTEX_ATTRIB10_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A-gl_ALIASED_POINT_SIZE_RANGE :: GLenum-gl_ALIASED_POINT_SIZE_RANGE = 0x846D-gl_MATRIX1_NV :: GLenum-gl_MATRIX1_NV = 0x8631-gl_CCW :: GLenum-gl_CCW = 0x0901-gl_SIGNED_RGB_UNSIGNED_ALPHA_NV :: GLenum-gl_SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C-gl_TEXTURE_BUFFER_BINDING_EXT :: GLenum-gl_TEXTURE_BUFFER_BINDING_EXT = 0x8C2A-gl_LINEAR_ATTENUATION :: GLenum-gl_LINEAR_ATTENUATION = 0x1208-gl_FACTOR_MIN_AMD :: GLenum-gl_FACTOR_MIN_AMD = 0x901C-gl_POINT_SPRITE_NV :: GLenum-gl_POINT_SPRITE_NV = 0x8861-gl_IMAGE_FORMAT_COMPATIBILITY_TYPE :: GLenum-gl_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7-gl_QUERY_DEPTH_FAIL_EVENT_BIT_AMD :: GLenum-gl_QUERY_DEPTH_FAIL_EVENT_BIT_AMD = 0x00000002-gl_MAP2_VERTEX_ATTRIB4_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674-gl_PATCHES_EXT :: GLenum-gl_PATCHES_EXT = 0x000E-gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS :: GLenum-gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A-gl_OUTPUT_TEXTURE_COORD14_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB-gl_V3F :: GLenum-gl_V3F = 0x2A21-gl_4PASS_2_EXT :: GLenum-gl_4PASS_2_EXT = 0x80A6-gl_SAMPLES_3DFX :: GLenum-gl_SAMPLES_3DFX = 0x86B4-gl_MINOR_VERSION :: GLenum-gl_MINOR_VERSION = 0x821C-gl_MAX_DEBUG_LOGGED_MESSAGES_ARB :: GLenum-gl_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144-gl_FUNC_REVERSE_SUBTRACT :: GLenum-gl_FUNC_REVERSE_SUBTRACT = 0x800B-gl_LAYOUT_LINEAR_CPU_CACHED_INTEL :: GLenum-gl_LAYOUT_LINEAR_CPU_CACHED_INTEL = 2-gl_MULTISAMPLE_BUFFER_BIT1_QCOM :: GLenum-gl_MULTISAMPLE_BUFFER_BIT1_QCOM = 0x02000000-gl_SIGNED_RGB8_UNSIGNED_ALPHA8_NV :: GLenum-gl_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D-gl_PATH_COVER_DEPTH_FUNC_NV :: GLenum-gl_PATH_COVER_DEPTH_FUNC_NV = 0x90BF-gl_MAX_FRAGMENT_IMAGE_UNIFORMS :: GLenum-gl_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE-gl_PROXY_TEXTURE_COLOR_TABLE_SGI :: GLenum-gl_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD-gl_PIXEL_MAP_I_TO_A_SIZE :: GLenum-gl_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5-gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX :: GLenum-gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0-gl_FRAME_NV :: GLenum-gl_FRAME_NV = 0x8E26-gl_FLOAT_R_NV :: GLenum-gl_FLOAT_R_NV = 0x8880-gl_REFLECTION_MAP_EXT :: GLenum-gl_REFLECTION_MAP_EXT = 0x8512-gl_RG_SNORM :: GLenum-gl_RG_SNORM = 0x8F91-gl_REPLACE_MIDDLE_SUN :: GLenum-gl_REPLACE_MIDDLE_SUN = 0x0002-gl_COMBINER_MAPPING_NV :: GLenum-gl_COMBINER_MAPPING_NV = 0x8543-gl_ELEMENT_ARRAY_BUFFER_ARB :: GLenum-gl_ELEMENT_ARRAY_BUFFER_ARB = 0x8893-gl_SECONDARY_COLOR_ARRAY_LENGTH_NV :: GLenum-gl_SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31-gl_INTERPOLATE_ARB :: GLenum-gl_INTERPOLATE_ARB = 0x8575-gl_POSITION :: GLenum-gl_POSITION = 0x1203-gl_PIXEL_MAP_S_TO_S :: GLenum-gl_PIXEL_MAP_S_TO_S = 0x0C71-gl_READ_ONLY_ARB :: GLenum-gl_READ_ONLY_ARB = 0x88B8-gl_INVALID_FRAMEBUFFER_OPERATION_OES :: GLenum-gl_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506-gl_3DC_X_AMD :: GLenum-gl_3DC_X_AMD = 0x87F9-gl_FRAGMENT_LIGHT2_SGIX :: GLenum-gl_FRAGMENT_LIGHT2_SGIX = 0x840E-gl_IMAGE_SCALE_Y_HP :: GLenum-gl_IMAGE_SCALE_Y_HP = 0x8156-gl_READ_FRAMEBUFFER_APPLE :: GLenum-gl_READ_FRAMEBUFFER_APPLE = 0x8CA8-gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES :: GLenum-gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6-gl_INDEX_MATERIAL_PARAMETER_EXT :: GLenum-gl_INDEX_MATERIAL_PARAMETER_EXT = 0x81B9-gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH :: GLenum-gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76-gl_CUBIC_CURVE_TO_NV :: GLenum-gl_CUBIC_CURVE_TO_NV = 0x0C-gl_QUAD_ALPHA4_SGIS :: GLenum-gl_QUAD_ALPHA4_SGIS = 0x811E-gl_FORCE_BLUE_TO_ONE_NV :: GLenum-gl_FORCE_BLUE_TO_ONE_NV = 0x8860-gl_DOT_PRODUCT_DEPTH_REPLACE_NV :: GLenum-gl_DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED-gl_MAX_VERTEX_OUTPUT_COMPONENTS :: GLenum-gl_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122-gl_COMPRESSED_RGBA_ASTC_4x4x3_OES :: GLenum-gl_COMPRESSED_RGBA_ASTC_4x4x3_OES = 0x93C2-gl_COLOR_INDEX1_EXT :: GLenum-gl_COLOR_INDEX1_EXT = 0x80E2-gl_RELATIVE_CUBIC_CURVE_TO_NV :: GLenum-gl_RELATIVE_CUBIC_CURVE_TO_NV = 0x0D-gl_NOR :: GLenum-gl_NOR = 0x1508-gl_CLIPPING_OUTPUT_PRIMITIVES_ARB :: GLenum-gl_CLIPPING_OUTPUT_PRIMITIVES_ARB = 0x82F7-gl_VERTEX_ATTRIB_ARRAY12_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY12_NV = 0x865C-gl_LINE_BIT :: GLenum-gl_LINE_BIT = 0x00000004-gl_FOG_COORDINATE_ARRAY_STRIDE :: GLenum-gl_FOG_COORDINATE_ARRAY_STRIDE = 0x8455-gl_DUP_FIRST_CUBIC_CURVE_TO_NV :: GLenum-gl_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2-gl_FRAMEBUFFER_INCOMPLETE_FORMATS_OES :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA-gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS :: GLenum-gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E-gl_PATH_MAX_MODELVIEW_STACK_DEPTH_NV :: GLenum-gl_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = 0x0D36-gl_FRAGMENT_LIGHT1_SGIX :: GLenum-gl_FRAGMENT_LIGHT1_SGIX = 0x840D-gl_PALETTE8_R5_G6_B5_OES :: GLenum-gl_PALETTE8_R5_G6_B5_OES = 0x8B97-gl_DUAL_INTENSITY4_SGIS :: GLenum-gl_DUAL_INTENSITY4_SGIS = 0x8118-gl_TEXTURE_RANGE_LENGTH_APPLE :: GLenum-gl_TEXTURE_RANGE_LENGTH_APPLE = 0x85B7-gl_TEXTURE_RECTANGLE_ARB :: GLenum-gl_TEXTURE_RECTANGLE_ARB = 0x84F5-gl_LUMINANCE16F_EXT :: GLenum-gl_LUMINANCE16F_EXT = 0x881E-gl_DEPTH_COMPONENT16_ARB :: GLenum-gl_DEPTH_COMPONENT16_ARB = 0x81A5-gl_BUMP_TARGET_ATI :: GLenum-gl_BUMP_TARGET_ATI = 0x877C-gl_MAX_CUBE_MAP_TEXTURE_SIZE_ARB :: GLenum-gl_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C-gl_DOUBLE_MAT3_EXT :: GLenum-gl_DOUBLE_MAT3_EXT = 0x8F47-gl_QUERY_BY_REGION_NO_WAIT_INVERTED :: GLenum-gl_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A-gl_MAX_PROGRAM_TEX_INDIRECTIONS_ARB :: GLenum-gl_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D-gl_QUADS :: GLenum-gl_QUADS = 0x0007-gl_ALPHA_INTEGER_EXT :: GLenum-gl_ALPHA_INTEGER_EXT = 0x8D97-gl_VERTEX_SHADER_BIT_EXT :: GLenum-gl_VERTEX_SHADER_BIT_EXT = 0x00000001-gl_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX :: GLenum-gl_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175-gl_COLOR_MATERIAL_FACE :: GLenum-gl_COLOR_MATERIAL_FACE = 0x0B55-gl_LIGHT_MODEL_TWO_SIDE :: GLenum-gl_LIGHT_MODEL_TWO_SIDE = 0x0B52-gl_INTERLEAVED_ATTRIBS :: GLenum-gl_INTERLEAVED_ATTRIBS = 0x8C8C-gl_RGBA16I :: GLenum-gl_RGBA16I = 0x8D88-gl_VERTEX_ATTRIB_ARRAY_TYPE_ARB :: GLenum-gl_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625-gl_DEBUG_SEVERITY_LOW_AMD :: GLenum-gl_DEBUG_SEVERITY_LOW_AMD = 0x9148-gl_POINT_SPRITE_COORD_ORIGIN :: GLenum-gl_POINT_SPRITE_COORD_ORIGIN = 0x8CA0-gl_DRAW_BUFFER8 :: GLenum-gl_DRAW_BUFFER8 = 0x882D-gl_SPOT_DIRECTION :: GLenum-gl_SPOT_DIRECTION = 0x1204-gl_SAMPLE_COVERAGE_INVERT_ARB :: GLenum-gl_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB-gl_PERFQUERY_COUNTER_RAW_INTEL :: GLenum-gl_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4-gl_STRICT_SCISSOR_HINT_PGI :: GLenum-gl_STRICT_SCISSOR_HINT_PGI = 0x1A218-gl_LUMINANCE16_EXT :: GLenum-gl_LUMINANCE16_EXT = 0x8042-gl_UNPACK_ALIGNMENT :: GLenum-gl_UNPACK_ALIGNMENT = 0x0CF5-gl_BIAS_BIT_ATI :: GLenum-gl_BIAS_BIT_ATI = 0x00000008-gl_LARGE_CCW_ARC_TO_NV :: GLenum-gl_LARGE_CCW_ARC_TO_NV = 0x16-gl_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB :: GLenum-gl_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0-gl_FASTEST :: GLenum-gl_FASTEST = 0x1101-gl_LUMINANCE8_ALPHA8 :: GLenum-gl_LUMINANCE8_ALPHA8 = 0x8045-gl_CONVOLUTION_FILTER_BIAS_EXT :: GLenum-gl_CONVOLUTION_FILTER_BIAS_EXT = 0x8015-gl_VIEW_CLASS_S3TC_DXT5_RGBA :: GLenum-gl_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF-gl_DEPTH32F_STENCIL8_NV :: GLenum-gl_DEPTH32F_STENCIL8_NV = 0x8DAC-gl_TRACE_OPERATIONS_BIT_MESA :: GLenum-gl_TRACE_OPERATIONS_BIT_MESA = 0x0001-gl_QUERY_RESULT_EXT :: GLenum-gl_QUERY_RESULT_EXT = 0x8866-gl_TRANSFORM_FEEDBACK_BINDING_NV :: GLenum-gl_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25-gl_REG_10_ATI :: GLenum-gl_REG_10_ATI = 0x892B-gl_MATRIX16_ARB :: GLenum-gl_MATRIX16_ARB = 0x88D0-gl_FONT_HAS_KERNING_BIT_NV :: GLenum-gl_FONT_HAS_KERNING_BIT_NV = 0x10000000-gl_INNOCENT_CONTEXT_RESET_EXT :: GLenum-gl_INNOCENT_CONTEXT_RESET_EXT = 0x8254-gl_VIDEO_CAPTURE_FRAME_HEIGHT_NV :: GLenum-gl_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039-gl_NATIVE_GRAPHICS_END_HINT_PGI :: GLenum-gl_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204-gl_HISTOGRAM_LUMINANCE_SIZE_EXT :: GLenum-gl_HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C-gl_COMBINER0_NV :: GLenum-gl_COMBINER0_NV = 0x8550-gl_COORD_REPLACE_OES :: GLenum-gl_COORD_REPLACE_OES = 0x8862-gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT :: GLenum-gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80-gl_TIMESTAMP_EXT :: GLenum-gl_TIMESTAMP_EXT = 0x8E28-gl_MAX_IMAGE_UNITS_EXT :: GLenum-gl_MAX_IMAGE_UNITS_EXT = 0x8F38-gl_POINT_SIZE_MAX_ARB :: GLenum-gl_POINT_SIZE_MAX_ARB = 0x8127-gl_DEPTH_WRITEMASK :: GLenum-gl_DEPTH_WRITEMASK = 0x0B72-gl_FOG_COORDINATE_ARRAY_STRIDE_EXT :: GLenum-gl_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455-gl_BUMP_NUM_TEX_UNITS_ATI :: GLenum-gl_BUMP_NUM_TEX_UNITS_ATI = 0x8777-gl_INT_SAMPLER_1D_EXT :: GLenum-gl_INT_SAMPLER_1D_EXT = 0x8DC9-gl_INDEX_MODE :: GLenum-gl_INDEX_MODE = 0x0C30-gl_422_EXT :: GLenum-gl_422_EXT = 0x80CC-gl_ATOMIC_COUNTER_BUFFER_START :: GLenum-gl_ATOMIC_COUNTER_BUFFER_START = 0x92C2-gl_GPU_ADDRESS_NV :: GLenum-gl_GPU_ADDRESS_NV = 0x8F34-gl_REG_19_ATI :: GLenum-gl_REG_19_ATI = 0x8934-gl_IMAGE_BUFFER :: GLenum-gl_IMAGE_BUFFER = 0x9051-gl_HISTOGRAM_GREEN_SIZE :: GLenum-gl_HISTOGRAM_GREEN_SIZE = 0x8029-gl_VERTEX_ATTRIB_ARRAY_ADDRESS_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20-gl_INTENSITY8_SNORM :: GLenum-gl_INTENSITY8_SNORM = 0x9017-gl_DEBUG_TYPE_MARKER :: GLenum-gl_DEBUG_TYPE_MARKER = 0x8268-gl_VERTEX_PROGRAM_TWO_SIDE_ARB :: GLenum-gl_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643-gl_INDEX_MATERIAL_FACE_EXT :: GLenum-gl_INDEX_MATERIAL_FACE_EXT = 0x81BA-gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB :: GLenum-gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D-gl_CMYKA_EXT :: GLenum-gl_CMYKA_EXT = 0x800D-gl_MAP_ATTRIB_V_ORDER_NV :: GLenum-gl_MAP_ATTRIB_V_ORDER_NV = 0x86C4-gl_OFFSET_HILO_TEXTURE_2D_NV :: GLenum-gl_OFFSET_HILO_TEXTURE_2D_NV = 0x8854-gl_CALLIGRAPHIC_FRAGMENT_SGIX :: GLenum-gl_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183-gl_MAX_PROGRAM_PARAMETERS_ARB :: GLenum-gl_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9-gl_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV :: GLenum-gl_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F-gl_MAP_READ_BIT :: GLenum-gl_MAP_READ_BIT = 0x0001-gl_IMAGE_1D_EXT :: GLenum-gl_IMAGE_1D_EXT = 0x904C-gl_READ_BUFFER :: GLenum-gl_READ_BUFFER = 0x0C02-gl_POST_CONVOLUTION_RED_SCALE :: GLenum-gl_POST_CONVOLUTION_RED_SCALE = 0x801C-gl_MATRIX23_ARB :: GLenum-gl_MATRIX23_ARB = 0x88D7-gl_MAX_SAMPLES_NV :: GLenum-gl_MAX_SAMPLES_NV = 0x8D57-gl_RGB8_SNORM :: GLenum-gl_RGB8_SNORM = 0x8F96-gl_MATRIX5_NV :: GLenum-gl_MATRIX5_NV = 0x8635-gl_UNPACK_SWAP_BYTES :: GLenum-gl_UNPACK_SWAP_BYTES = 0x0CF0-gl_TABLE_TOO_LARGE :: GLenum-gl_TABLE_TOO_LARGE = 0x8031-gl_MIN_SAMPLE_SHADING_VALUE_OES :: GLenum-gl_MIN_SAMPLE_SHADING_VALUE_OES = 0x8C37-gl_SWIZZLE_STQ_DQ_ATI :: GLenum-gl_SWIZZLE_STQ_DQ_ATI = 0x8979-gl_BUFFER_IMMUTABLE_STORAGE :: GLenum-gl_BUFFER_IMMUTABLE_STORAGE = 0x821F-gl_ELEMENT_ARRAY_TYPE_APPLE :: GLenum-gl_ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D-gl_POST_COLOR_MATRIX_BLUE_BIAS_SGI :: GLenum-gl_POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA-gl_PARTIAL_SUCCESS_NV :: GLenum-gl_PARTIAL_SUCCESS_NV = 0x902E-gl_LOCAL_CONSTANT_EXT :: GLenum-gl_LOCAL_CONSTANT_EXT = 0x87C3-gl_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517-gl_GEOMETRY_DEFORMATION_SGIX :: GLenum-gl_GEOMETRY_DEFORMATION_SGIX = 0x8194-gl_SAMPLER_CUBE_MAP_ARRAY_EXT :: GLenum-gl_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900C-gl_STENCIL_BACK_PASS_DEPTH_PASS_ATI :: GLenum-gl_STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803-gl_DISJOINT_NV :: GLenum-gl_DISJOINT_NV = 0x9283-gl_FLOAT_MAT4x3 :: GLenum-gl_FLOAT_MAT4x3 = 0x8B6A-gl_TRANSFORM_FEEDBACK_PAUSED :: GLenum-gl_TRANSFORM_FEEDBACK_PAUSED = 0x8E23-gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION :: GLenum-gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C-gl_RG8_EXT :: GLenum-gl_RG8_EXT = 0x822B-gl_RECT_NV :: GLenum-gl_RECT_NV = 0xF6-gl_GEOMETRY_OUTPUT_TYPE_ARB :: GLenum-gl_GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC-gl_DEBUG_SOURCE_API_ARB :: GLenum-gl_DEBUG_SOURCE_API_ARB = 0x8246-gl_COLOR_ATTACHMENT15 :: GLenum-gl_COLOR_ATTACHMENT15 = 0x8CEF-gl_MAX_VARYING_FLOATS_ARB :: GLenum-gl_MAX_VARYING_FLOATS_ARB = 0x8B4B-gl_MAX_DRAW_BUFFERS_NV :: GLenum-gl_MAX_DRAW_BUFFERS_NV = 0x8824-gl_VERTEX_BLEND_ARB :: GLenum-gl_VERTEX_BLEND_ARB = 0x86A7-gl_DOUBLE_MAT2x3_EXT :: GLenum-gl_DOUBLE_MAT2x3_EXT = 0x8F49-gl_MAX_DEBUG_LOGGED_MESSAGES_AMD :: GLenum-gl_MAX_DEBUG_LOGGED_MESSAGES_AMD = 0x9144-gl_VERTICES_SUBMITTED_ARB :: GLenum-gl_VERTICES_SUBMITTED_ARB = 0x82EE-gl_UNSIGNED_SHORT_4_4_4_4_REV_IMG :: GLenum-gl_UNSIGNED_SHORT_4_4_4_4_REV_IMG = 0x8365-gl_STATE_RESTORE :: GLenum-gl_STATE_RESTORE = 0x8BDC-gl_MAX_COLOR_ATTACHMENTS_EXT :: GLenum-gl_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF-gl_INDEX_LOGIC_OP :: GLenum-gl_INDEX_LOGIC_OP = 0x0BF1-gl_PRIMITIVE_RESTART_NV :: GLenum-gl_PRIMITIVE_RESTART_NV = 0x8558-gl_FLOAT_MAT3x2_NV :: GLenum-gl_FLOAT_MAT3x2_NV = 0x8B67-gl_VERTEX_CONSISTENT_HINT_PGI :: GLenum-gl_VERTEX_CONSISTENT_HINT_PGI = 0x1A22B-gl_LUMINANCE_ALPHA16F_EXT :: GLenum-gl_LUMINANCE_ALPHA16F_EXT = 0x881F-gl_FLOAT_VEC2_ARB :: GLenum-gl_FLOAT_VEC2_ARB = 0x8B50-gl_TEXTURE_SWIZZLE_RGBA :: GLenum-gl_TEXTURE_SWIZZLE_RGBA = 0x8E46-gl_PROGRAM_SEPARABLE_EXT :: GLenum-gl_PROGRAM_SEPARABLE_EXT = 0x8258-gl_COMPRESSED_RGBA_ASTC_10x8_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA-gl_DEPTH_ATTACHMENT_EXT :: GLenum-gl_DEPTH_ATTACHMENT_EXT = 0x8D00-gl_FRAMEBUFFER_UNSUPPORTED_OES :: GLenum-gl_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD-gl_OPERAND1_ALPHA :: GLenum-gl_OPERAND1_ALPHA = 0x8599-gl_PIXEL_MAP_I_TO_B_SIZE :: GLenum-gl_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4-gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT :: GLenum-gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A-gl_EVAL_2D_NV :: GLenum-gl_EVAL_2D_NV = 0x86C0-gl_GREEN_MIN_CLAMP_INGR :: GLenum-gl_GREEN_MIN_CLAMP_INGR = 0x8561-gl_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS :: GLenum-gl_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0-gl_VERTEX_ARRAY_RANGE_NV :: GLenum-gl_VERTEX_ARRAY_RANGE_NV = 0x851D-gl_CONTEXT_LOST_WEBGL :: GLenum-gl_CONTEXT_LOST_WEBGL = 0x9242-gl_MAX_VERTEX_UNIFORM_BLOCKS :: GLenum-gl_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B-gl_VERTEX_ATTRIB_MAP2_COEFF_APPLE :: GLenum-gl_VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07-gl_TEXTURE_MAX_CLAMP_T_SGIX :: GLenum-gl_TEXTURE_MAX_CLAMP_T_SGIX = 0x836A-gl_LUMINANCE_SNORM :: GLenum-gl_LUMINANCE_SNORM = 0x9011-gl_PIXEL_UNPACK_BUFFER_BINDING :: GLenum-gl_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF-gl_RGBA8_SNORM :: GLenum-gl_RGBA8_SNORM = 0x8F97-gl_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX :: GLenum-gl_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX = 0x9048-gl_PIXEL_SUBSAMPLE_2424_SGIX :: GLenum-gl_PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3-gl_TEXTURE_GATHER_SHADOW :: GLenum-gl_TEXTURE_GATHER_SHADOW = 0x82A3-gl_VIEWPORT_INDEX_PROVOKING_VERTEX :: GLenum-gl_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F-gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT :: GLenum-gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB-gl_UNSIGNED_INT_IMAGE_CUBE :: GLenum-gl_UNSIGNED_INT_IMAGE_CUBE = 0x9066-gl_WEIGHT_ARRAY_POINTER_OES :: GLenum-gl_WEIGHT_ARRAY_POINTER_OES = 0x86AC-gl_ALL_ATTRIB_BITS :: GLenum-gl_ALL_ATTRIB_BITS = 0xFFFFFFFF-gl_PERFQUERY_COUNTER_TIMESTAMP_INTEL :: GLenum-gl_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5-gl_TESS_EVALUATION_SHADER_EXT :: GLenum-gl_TESS_EVALUATION_SHADER_EXT = 0x8E87-gl_BUFFER_OBJECT_EXT :: GLenum-gl_BUFFER_OBJECT_EXT = 0x9151-gl_TIMESTAMP :: GLenum-gl_TIMESTAMP = 0x8E28-gl_RGBA_INTEGER_EXT :: GLenum-gl_RGBA_INTEGER_EXT = 0x8D99-gl_RGB16UI :: GLenum-gl_RGB16UI = 0x8D77-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4-gl_SAMPLE_SHADING_OES :: GLenum-gl_SAMPLE_SHADING_OES = 0x8C36-gl_CONVOLUTION_BORDER_COLOR :: GLenum-gl_CONVOLUTION_BORDER_COLOR = 0x8154-gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV :: GLenum-gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1-gl_VERTEX_ARRAY_BUFFER_BINDING :: GLenum-gl_VERTEX_ARRAY_BUFFER_BINDING = 0x8896-gl_DEPTH_CLAMP_NEAR_AMD :: GLenum-gl_DEPTH_CLAMP_NEAR_AMD = 0x901E-gl_POLYGON_TOKEN :: GLenum-gl_POLYGON_TOKEN = 0x0703-gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C-gl_R8_SNORM :: GLenum-gl_R8_SNORM = 0x8F94-gl_DS_BIAS_NV :: GLenum-gl_DS_BIAS_NV = 0x8716-gl_2X_BIT_ATI :: GLenum-gl_2X_BIT_ATI = 0x00000001-gl_ALREADY_SIGNALED :: GLenum-gl_ALREADY_SIGNALED = 0x911A-gl_2D :: GLenum-gl_2D = 0x0600-gl_MAX_VERTEX_UNIFORM_COMPONENTS :: GLenum-gl_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A-gl_DEBUG_CATEGORY_PERFORMANCE_AMD :: GLenum-gl_DEBUG_CATEGORY_PERFORMANCE_AMD = 0x914D-gl_OVERLAY_NV :: GLenum-gl_OVERLAY_NV = 0x9296-gl_ATOMIC_COUNTER_BUFFER_SIZE :: GLenum-gl_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3-gl_COLOR_ATTACHMENT10_EXT :: GLenum-gl_COLOR_ATTACHMENT10_EXT = 0x8CEA-gl_COLOR_TABLE_BLUE_SIZE_SGI :: GLenum-gl_COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC-gl_ADD_SIGNED_EXT :: GLenum-gl_ADD_SIGNED_EXT = 0x8574-gl_INT_SAMPLER_2D_ARRAY_EXT :: GLenum-gl_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF-gl_TRANSFORM_FEEDBACK_BUFFER_INDEX :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B-gl_REFERENCED_BY_TESS_CONTROL_SHADER :: GLenum-gl_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307-gl_FIELD_LOWER_NV :: GLenum-gl_FIELD_LOWER_NV = 0x9023-gl_POST_COLOR_MATRIX_RED_SCALE :: GLenum-gl_POST_COLOR_MATRIX_RED_SCALE = 0x80B4-gl_IMAGE_BUFFER_EXT :: GLenum-gl_IMAGE_BUFFER_EXT = 0x9051-gl_3D_COLOR_TEXTURE :: GLenum-gl_3D_COLOR_TEXTURE = 0x0603-gl_DEBUG_CALLBACK_FUNCTION_KHR :: GLenum-gl_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244-gl_SCISSOR_BIT :: GLenum-gl_SCISSOR_BIT = 0x00080000-gl_IMAGE_TRANSLATE_X_HP :: GLenum-gl_IMAGE_TRANSLATE_X_HP = 0x8157-gl_PIXEL_MAP_I_TO_A :: GLenum-gl_PIXEL_MAP_I_TO_A = 0x0C75-gl_VERTEX_SUBROUTINE :: GLenum-gl_VERTEX_SUBROUTINE = 0x92E8-gl_TEXTURE4_ARB :: GLenum-gl_TEXTURE4_ARB = 0x84C4-gl_PACK_COMPRESSED_BLOCK_DEPTH :: GLenum-gl_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D-gl_SHADER_STORAGE_BLOCK :: GLenum-gl_SHADER_STORAGE_BLOCK = 0x92E6-gl_SIGNED_ALPHA_NV :: GLenum-gl_SIGNED_ALPHA_NV = 0x8705-gl_BLEND_DST_ALPHA_EXT :: GLenum-gl_BLEND_DST_ALPHA_EXT = 0x80CA-gl_MAP2_VERTEX_ATTRIB9_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679-gl_HILO8_NV :: GLenum-gl_HILO8_NV = 0x885E-gl_SHADER_BINARY_FORMATS :: GLenum-gl_SHADER_BINARY_FORMATS = 0x8DF8-gl_DEBUG_OUTPUT_SYNCHRONOUS :: GLenum-gl_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242-gl_TEXTURE_GEN_R :: GLenum-gl_TEXTURE_GEN_R = 0x0C62-gl_PERFORMANCE_MONITOR_AMD :: GLenum-gl_PERFORMANCE_MONITOR_AMD = 0x9152-gl_INTENSITY_FLOAT16_APPLE :: GLenum-gl_INTENSITY_FLOAT16_APPLE = 0x881D-gl_PROGRAM_PIPELINE :: GLenum-gl_PROGRAM_PIPELINE = 0x82E4-gl_COLOR_BUFFER_BIT5_QCOM :: GLenum-gl_COLOR_BUFFER_BIT5_QCOM = 0x00000020-gl_MAX_GEOMETRY_VARYING_COMPONENTS_EXT :: GLenum-gl_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD-gl_DEBUG_TYPE_PORTABILITY_KHR :: GLenum-gl_DEBUG_TYPE_PORTABILITY_KHR = 0x824F-gl_RGB16F_ARB :: GLenum-gl_RGB16F_ARB = 0x881B-gl_PRIMITIVES_GENERATED_EXT :: GLenum-gl_PRIMITIVES_GENERATED_EXT = 0x8C87-gl_PROGRAM_BINARY_FORMATS_OES :: GLenum-gl_PROGRAM_BINARY_FORMATS_OES = 0x87FF-gl_AMBIENT :: GLenum-gl_AMBIENT = 0x1200-gl_QUERY_BY_REGION_NO_WAIT_NV :: GLenum-gl_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16-gl_VIEW_CLASS_RGTC2_RG :: GLenum-gl_VIEW_CLASS_RGTC2_RG = 0x82D1-gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT :: GLenum-gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = 0x8A57-gl_DRAW_BUFFER2_EXT :: GLenum-gl_DRAW_BUFFER2_EXT = 0x8827-gl_TEXTURE_BUFFER_BINDING :: GLenum-gl_TEXTURE_BUFFER_BINDING = 0x8C2A-gl_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT :: GLenum-gl_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = 0x8A55-gl_OPERAND3_ALPHA_NV :: GLenum-gl_OPERAND3_ALPHA_NV = 0x859B-gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV :: GLenum-gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58-gl_LINEAR_SHARPEN_SGIS :: GLenum-gl_LINEAR_SHARPEN_SGIS = 0x80AD-gl_MAP_UNSYNCHRONIZED_BIT_EXT :: GLenum-gl_MAP_UNSYNCHRONIZED_BIT_EXT = 0x0020-gl_MODELVIEW28_ARB :: GLenum-gl_MODELVIEW28_ARB = 0x873C-gl_EDGE_FLAG_ARRAY_LIST_IBM :: GLenum-gl_EDGE_FLAG_ARRAY_LIST_IBM = 103075-gl_PALETTE4_RGB5_A1_OES :: GLenum-gl_PALETTE4_RGB5_A1_OES = 0x8B94-gl_MULTIPLY_KHR :: GLenum-gl_MULTIPLY_KHR = 0x9294-gl_GPU_OPTIMIZED_QCOM :: GLenum-gl_GPU_OPTIMIZED_QCOM = 0x8FB2-gl_FOG_FUNC_POINTS_SGIS :: GLenum-gl_FOG_FUNC_POINTS_SGIS = 0x812B-gl_MAX_IMAGE_SAMPLES :: GLenum-gl_MAX_IMAGE_SAMPLES = 0x906D-gl_DRAW_BUFFER3_NV :: GLenum-gl_DRAW_BUFFER3_NV = 0x8828-gl_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS :: GLenum-gl_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47-gl_RESET_NOTIFICATION_STRATEGY_ARB :: GLenum-gl_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256-gl_MAX_TEXTURE_STACK_DEPTH :: GLenum-gl_MAX_TEXTURE_STACK_DEPTH = 0x0D39-gl_INT64_NV :: GLenum-gl_INT64_NV = 0x140E-gl_DEBUG_SOURCE_APPLICATION :: GLenum-gl_DEBUG_SOURCE_APPLICATION = 0x824A-gl_STENCIL_CLEAR_VALUE :: GLenum-gl_STENCIL_CLEAR_VALUE = 0x0B91-gl_SRC1_COLOR :: GLenum-gl_SRC1_COLOR = 0x88F9-gl_LIGHT4 :: GLenum-gl_LIGHT4 = 0x4004-gl_PIXEL_PACK_BUFFER_BINDING :: GLenum-gl_PIXEL_PACK_BUFFER_BINDING = 0x88ED-gl_MAX_LIGHTS :: GLenum-gl_MAX_LIGHTS = 0x0D31-gl_OPERAND1_ALPHA_EXT :: GLenum-gl_OPERAND1_ALPHA_EXT = 0x8599-gl_PIXEL_MAP_B_TO_B_SIZE :: GLenum-gl_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8-gl_COLOR_TABLE_FORMAT_SGI :: GLenum-gl_COLOR_TABLE_FORMAT_SGI = 0x80D8-gl_MODELVIEW22_ARB :: GLenum-gl_MODELVIEW22_ARB = 0x8736-gl_UNSIGNED_INT64_VEC4_NV :: GLenum-gl_UNSIGNED_INT64_VEC4_NV = 0x8FF7-gl_COLOR_ARRAY_TYPE_EXT :: GLenum-gl_COLOR_ARRAY_TYPE_EXT = 0x8082-gl_LOSE_CONTEXT_ON_RESET_EXT :: GLenum-gl_LOSE_CONTEXT_ON_RESET_EXT = 0x8252-gl_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV :: GLenum-gl_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034-gl_TEXTURE_PRIORITY_EXT :: GLenum-gl_TEXTURE_PRIORITY_EXT = 0x8066-gl_UNPACK_COMPRESSED_SIZE_SGIX :: GLenum-gl_UNPACK_COMPRESSED_SIZE_SGIX = 0x831A-gl_SEPARATE_ATTRIBS_EXT :: GLenum-gl_SEPARATE_ATTRIBS_EXT = 0x8C8D-gl_IMAGE_BINDING_LAYERED :: GLenum-gl_IMAGE_BINDING_LAYERED = 0x8F3C-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8-gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE :: GLenum-gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B-gl_READ_ONLY :: GLenum-gl_READ_ONLY = 0x88B8-gl_TEXTURE_3D_BINDING_OES :: GLenum-gl_TEXTURE_3D_BINDING_OES = 0x806A-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER :: GLenum-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7-gl_COVERAGE_ALL_FRAGMENTS_NV :: GLenum-gl_COVERAGE_ALL_FRAGMENTS_NV = 0x8ED5-gl_SRC2_ALPHA :: GLenum-gl_SRC2_ALPHA = 0x858A-gl_PRIMITIVE_ID_NV :: GLenum-gl_PRIMITIVE_ID_NV = 0x8C7C-gl_VIDEO_COLOR_CONVERSION_MAX_NV :: GLenum-gl_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A-gl_MAP2_TANGENT_EXT :: GLenum-gl_MAP2_TANGENT_EXT = 0x8445-gl_LIGHTING :: GLenum-gl_LIGHTING = 0x0B50-gl_PROGRAM_UNDER_NATIVE_LIMITS_ARB :: GLenum-gl_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6-gl_VERTEX_ATTRIB_ARRAY2_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY2_NV = 0x8652-gl_PRESENT_TIME_NV :: GLenum-gl_PRESENT_TIME_NV = 0x8E2A-gl_PATCH_DEFAULT_INNER_LEVEL :: GLenum-gl_PATCH_DEFAULT_INNER_LEVEL = 0x8E73-gl_NEVER :: GLenum-gl_NEVER = 0x0200-gl_PATH_STROKE_WIDTH_NV :: GLenum-gl_PATH_STROKE_WIDTH_NV = 0x9075-gl_INVERT_RGB_NV :: GLenum-gl_INVERT_RGB_NV = 0x92A3-gl_BUFFER_MAP_POINTER_ARB :: GLenum-gl_BUFFER_MAP_POINTER_ARB = 0x88BD-gl_MAP2_GRID_SEGMENTS :: GLenum-gl_MAP2_GRID_SEGMENTS = 0x0DD3-gl_INVALID_VALUE :: GLenum-gl_INVALID_VALUE = 0x0501-gl_BLEND_EQUATION_ALPHA_OES :: GLenum-gl_BLEND_EQUATION_ALPHA_OES = 0x883D-gl_MAX_RATIONAL_EVAL_ORDER_NV :: GLenum-gl_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7-gl_VERTEX_ATTRIB_ARRAY10_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY10_NV = 0x865A-gl_UNPACK_IMAGE_DEPTH_SGIS :: GLenum-gl_UNPACK_IMAGE_DEPTH_SGIS = 0x8133-gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES = 0x8CDC-gl_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS :: GLenum-gl_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266-gl_TRANSPOSE_PROJECTION_MATRIX_ARB :: GLenum-gl_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4-gl_REDUCE_EXT :: GLenum-gl_REDUCE_EXT = 0x8016-gl_RGB8UI_EXT :: GLenum-gl_RGB8UI_EXT = 0x8D7D-gl_MAX_CLIENT_ATTRIB_STACK_DEPTH :: GLenum-gl_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B-gl_RGB9_E5_EXT :: GLenum-gl_RGB9_E5_EXT = 0x8C3D-gl_OUTPUT_TEXTURE_COORD18_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF-gl_COLOR_ATTACHMENT0_EXT :: GLenum-gl_COLOR_ATTACHMENT0_EXT = 0x8CE0-gl_ALPHA_SCALE :: GLenum-gl_ALPHA_SCALE = 0x0D1C-gl_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV :: GLenum-gl_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD-gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216-gl_BLEND_SRC :: GLenum-gl_BLEND_SRC = 0x0BE1-gl_TEXTURE_MAX_CLAMP_R_SGIX :: GLenum-gl_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B-gl_MAX_PROGRAM_TEXEL_OFFSET_NV :: GLenum-gl_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905-gl_TEXTURE_LOD_BIAS_R_SGIX :: GLenum-gl_TEXTURE_LOD_BIAS_R_SGIX = 0x8190-gl_UNSIGNED_INT_SAMPLER_2D :: GLenum-gl_UNSIGNED_INT_SAMPLER_2D = 0x8DD2-gl_TEXTURE_FILTER_CONTROL_EXT :: GLenum-gl_TEXTURE_FILTER_CONTROL_EXT = 0x8500-gl_VARIABLE_G_NV :: GLenum-gl_VARIABLE_G_NV = 0x8529-gl_SELECTION_BUFFER_POINTER :: GLenum-gl_SELECTION_BUFFER_POINTER = 0x0DF3-gl_INT_SAMPLER_1D :: GLenum-gl_INT_SAMPLER_1D = 0x8DC9-gl_COMBINE_ALPHA :: GLenum-gl_COMBINE_ALPHA = 0x8572-gl_FONT_Y_MAX_BOUNDS_BIT_NV :: GLenum-gl_FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000-gl_UNIFORM_BARRIER_BIT :: GLenum-gl_UNIFORM_BARRIER_BIT = 0x00000004-gl_TEXTURE_BLUE_TYPE_ARB :: GLenum-gl_TEXTURE_BLUE_TYPE_ARB = 0x8C12-gl_STENCIL_INDEX16 :: GLenum-gl_STENCIL_INDEX16 = 0x8D49-gl_SRC_OVER_NV :: GLenum-gl_SRC_OVER_NV = 0x9288-gl_INT_SAMPLER_2D_MULTISAMPLE :: GLenum-gl_INT_SAMPLER_2D_MULTISAMPLE = 0x9109-gl_COLOR_TABLE_GREEN_SIZE_SGI :: GLenum-gl_COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB-gl_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV :: GLenum-gl_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4-gl_TEXTURE_COMPRESSED_IMAGE_SIZE :: GLenum-gl_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0-gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV :: GLenum-gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5C-gl_REFERENCED_BY_TESS_EVALUATION_SHADER :: GLenum-gl_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308-gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210-gl_MAX_HEIGHT :: GLenum-gl_MAX_HEIGHT = 0x827F-gl_ALPHA32F_ARB :: GLenum-gl_ALPHA32F_ARB = 0x8816-gl_COLOR_ATTACHMENT13 :: GLenum-gl_COLOR_ATTACHMENT13 = 0x8CED-gl_OP_SET_GE_EXT :: GLenum-gl_OP_SET_GE_EXT = 0x878C-gl_RGBA16_EXT :: GLenum-gl_RGBA16_EXT = 0x805B-gl_OPERAND3_RGB_NV :: GLenum-gl_OPERAND3_RGB_NV = 0x8593-gl_RENDERBUFFER_BLUE_SIZE_OES :: GLenum-gl_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52-gl_LUMINANCE_ALPHA_FLOAT16_ATI :: GLenum-gl_LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F-gl_VERTEX_ATTRIB_ARRAY_DIVISOR_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = 0x88FE-gl_PERFQUERY_COUNTER_DURATION_RAW_INTEL :: GLenum-gl_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2-gl_MAX_DEPTH :: GLenum-gl_MAX_DEPTH = 0x8280-gl_LINEAR_MIPMAP_NEAREST :: GLenum-gl_LINEAR_MIPMAP_NEAREST = 0x2701-gl_UNSIGNED_INT_8_8_S8_S8_REV_NV :: GLenum-gl_UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB-gl_N3F_V3F :: GLenum-gl_N3F_V3F = 0x2A25-gl_PACK_MAX_COMPRESSED_SIZE_SGIX :: GLenum-gl_PACK_MAX_COMPRESSED_SIZE_SGIX = 0x831B-gl_QUERY_BUFFER_BINDING_AMD :: GLenum-gl_QUERY_BUFFER_BINDING_AMD = 0x9193-gl_FOG_MODE :: GLenum-gl_FOG_MODE = 0x0B65-gl_RGBA32F :: GLenum-gl_RGBA32F = 0x8814-gl_FRAGMENT_SHADER_DERIVATIVE_HINT :: GLenum-gl_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B-gl_UNPACK_SKIP_ROWS_EXT :: GLenum-gl_UNPACK_SKIP_ROWS_EXT = 0x0CF3-gl_LINES :: GLenum-gl_LINES = 0x0001-gl_SPOT_EXPONENT :: GLenum-gl_SPOT_EXPONENT = 0x1205-gl_MAX_NUM_COMPATIBLE_SUBROUTINES :: GLenum-gl_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8-gl_RGBA_FLOAT32_APPLE :: GLenum-gl_RGBA_FLOAT32_APPLE = 0x8814-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT :: GLenum-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE-gl_BLEND_EQUATION_ALPHA :: GLenum-gl_BLEND_EQUATION_ALPHA = 0x883D-gl_PATH_MODELVIEW_STACK_DEPTH_NV :: GLenum-gl_PATH_MODELVIEW_STACK_DEPTH_NV = 0x0BA3-gl_TEXTURE_SHARED_SIZE_EXT :: GLenum-gl_TEXTURE_SHARED_SIZE_EXT = 0x8C3F-gl_RGBA16 :: GLenum-gl_RGBA16 = 0x805B-gl_UNDEFINED_VERTEX_EXT :: GLenum-gl_UNDEFINED_VERTEX_EXT = 0x8260-gl_PALETTE8_RGB5_A1_OES :: GLenum-gl_PALETTE8_RGB5_A1_OES = 0x8B99-gl_MAX_GEOMETRY_OUTPUT_VERTICES_EXT :: GLenum-gl_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0-gl_IMAGE_CLASS_11_11_10 :: GLenum-gl_IMAGE_CLASS_11_11_10 = 0x82C2-gl_HISTOGRAM_GREEN_SIZE_EXT :: GLenum-gl_HISTOGRAM_GREEN_SIZE_EXT = 0x8029-gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT :: GLenum-gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8-gl_MAX_COMPUTE_IMAGE_UNIFORMS :: GLenum-gl_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD-gl_MAX_PATCH_VERTICES_EXT :: GLenum-gl_MAX_PATCH_VERTICES_EXT = 0x8E7D-gl_ISOLINES :: GLenum-gl_ISOLINES = 0x8E7A-gl_LUMINANCE_ALPHA_SNORM :: GLenum-gl_LUMINANCE_ALPHA_SNORM = 0x9012-gl_PROGRAM_PIPELINE_BINDING_EXT :: GLenum-gl_PROGRAM_PIPELINE_BINDING_EXT = 0x825A-gl_FIRST_VERTEX_CONVENTION_EXT :: GLenum-gl_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D-gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT :: GLenum-gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86-gl_UTF16_NV :: GLenum-gl_UTF16_NV = 0x909B-gl_PRESENT_DURATION_NV :: GLenum-gl_PRESENT_DURATION_NV = 0x8E2B-gl_TEXTURE_SAMPLES :: GLenum-gl_TEXTURE_SAMPLES = 0x9106-gl_BGR :: GLenum-gl_BGR = 0x80E0-gl_CULL_VERTEX_OBJECT_POSITION_EXT :: GLenum-gl_CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC-gl_FRAGMENT_PROGRAM_POSITION_MESA :: GLenum-gl_FRAGMENT_PROGRAM_POSITION_MESA = 0x8BB0-gl_FLOAT_RG_NV :: GLenum-gl_FLOAT_RG_NV = 0x8881-gl_PROXY_TEXTURE_2D_MULTISAMPLE :: GLenum-gl_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101-gl_CON_21_ATI :: GLenum-gl_CON_21_ATI = 0x8956-gl_MAX_GEOMETRY_IMAGE_UNIFORMS :: GLenum-gl_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD-gl_FLOAT_MAT3x4_NV :: GLenum-gl_FLOAT_MAT3x4_NV = 0x8B68-gl_BUFFER_VARIABLE :: GLenum-gl_BUFFER_VARIABLE = 0x92E5-gl_ANY_SAMPLES_PASSED_EXT :: GLenum-gl_ANY_SAMPLES_PASSED_EXT = 0x8C2F-gl_TEXTURE_GEN_Q :: GLenum-gl_TEXTURE_GEN_Q = 0x0C63-gl_GEOMETRY_VERTICES_OUT_ARB :: GLenum-gl_GEOMETRY_VERTICES_OUT_ARB = 0x8DDA-gl_POLYGON_SMOOTH_HINT :: GLenum-gl_POLYGON_SMOOTH_HINT = 0x0C53-gl_TEXTURE_BINDING_CUBE_MAP_ARRAY :: GLenum-gl_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A-gl_SEPARABLE_2D_EXT :: GLenum-gl_SEPARABLE_2D_EXT = 0x8012-gl_VERSION_ES_CL_1_0 :: GLenum-gl_VERSION_ES_CL_1_0 = 1-gl_VERTEX_PROGRAM_PARAMETER_BUFFER_NV :: GLenum-gl_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2-gl_RED_INTEGER :: GLenum-gl_RED_INTEGER = 0x8D94-gl_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD :: GLenum-gl_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = 0x914A-gl_OFFSET_TEXTURE_RECTANGLE_NV :: GLenum-gl_OFFSET_TEXTURE_RECTANGLE_NV = 0x864C-gl_TEXTURE_COORD_ARRAY_TYPE_EXT :: GLenum-gl_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089-gl_INT8_NV :: GLenum-gl_INT8_NV = 0x8FE0-gl_VIDEO_COLOR_CONVERSION_MIN_NV :: GLenum-gl_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV :: GLenum-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8C4D-gl_FRAMEBUFFER_ATTACHMENT_ANGLE :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3-gl_SRC1_RGB :: GLenum-gl_SRC1_RGB = 0x8581-gl_CON_24_ATI :: GLenum-gl_CON_24_ATI = 0x8959-gl_DEBUG_CALLBACK_USER_PARAM :: GLenum-gl_DEBUG_CALLBACK_USER_PARAM = 0x8245-gl_MALI_SHADER_BINARY_ARM :: GLenum-gl_MALI_SHADER_BINARY_ARM = 0x8F60-gl_VIEW_CLASS_16_BITS :: GLenum-gl_VIEW_CLASS_16_BITS = 0x82CA-gl_DITHER :: GLenum-gl_DITHER = 0x0BD0-gl_PATH_STROKE_COVER_MODE_NV :: GLenum-gl_PATH_STROKE_COVER_MODE_NV = 0x9083-gl_BGR_INTEGER :: GLenum-gl_BGR_INTEGER = 0x8D9A-gl_TEXTURE_MATERIAL_PARAMETER_EXT :: GLenum-gl_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352-gl_COMPRESSED_RGBA_ASTC_5x4_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1-gl_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT :: GLenum-gl_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4-gl_POST_CONVOLUTION_GREEN_BIAS_EXT :: GLenum-gl_POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021-gl_PATH_ERROR_POSITION_NV :: GLenum-gl_PATH_ERROR_POSITION_NV = 0x90AB-gl_SAMPLE_ALPHA_TO_COVERAGE :: GLenum-gl_SAMPLE_ALPHA_TO_COVERAGE = 0x809E-gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: GLenum-gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D-gl_NUM_COMPATIBLE_SUBROUTINES :: GLenum-gl_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A-gl_RGBA16UI_EXT :: GLenum-gl_RGBA16UI_EXT = 0x8D76-gl_VERTEX_SHADER_ARB :: GLenum-gl_VERTEX_SHADER_ARB = 0x8B31-gl_RGB :: GLenum-gl_RGB = 0x1907-gl_MAP_PERSISTENT_BIT :: GLenum-gl_MAP_PERSISTENT_BIT = 0x0040-gl_QUERY_COUNTER_BITS_ARB :: GLenum-gl_QUERY_COUNTER_BITS_ARB = 0x8864-gl_BLEND_EQUATION_RGB_OES :: GLenum-gl_BLEND_EQUATION_RGB_OES = 0x8009-gl_FRAGMENT_SHADER_BIT :: GLenum-gl_FRAGMENT_SHADER_BIT = 0x00000002-gl_MATRIX_INDEX_ARRAY_ARB :: GLenum-gl_MATRIX_INDEX_ARRAY_ARB = 0x8844-gl_OUTPUT_TEXTURE_COORD29_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA-gl_HISTOGRAM_FORMAT :: GLenum-gl_HISTOGRAM_FORMAT = 0x8027-gl_MAX_ASYNC_HISTOGRAM_SGIX :: GLenum-gl_MAX_ASYNC_HISTOGRAM_SGIX = 0x832D-gl_MAX_VERTEX_ATTRIBS_ARB :: GLenum-gl_MAX_VERTEX_ATTRIBS_ARB = 0x8869-gl_SAMPLE_MASK_NV :: GLenum-gl_SAMPLE_MASK_NV = 0x8E51-gl_COLOR_INDEXES :: GLenum-gl_COLOR_INDEXES = 0x1603-gl_QUAD_TEXTURE_SELECT_SGIS :: GLenum-gl_QUAD_TEXTURE_SELECT_SGIS = 0x8125-gl_RG16_SNORM :: GLenum-gl_RG16_SNORM = 0x8F99-gl_ACTIVE_SUBROUTINE_MAX_LENGTH :: GLenum-gl_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48-gl_LOGIC_OP_MODE :: GLenum-gl_LOGIC_OP_MODE = 0x0BF0-gl_DEPTH_COMPONENT16_NONLINEAR_NV :: GLenum-gl_DEPTH_COMPONENT16_NONLINEAR_NV = 0x8E2C-gl_PRIMITIVE_RESTART_INDEX_NV :: GLenum-gl_PRIMITIVE_RESTART_INDEX_NV = 0x8559-gl_UNKNOWN_CONTEXT_RESET :: GLenum-gl_UNKNOWN_CONTEXT_RESET = 0x8255-gl_VBO_FREE_MEMORY_ATI :: GLenum-gl_VBO_FREE_MEMORY_ATI = 0x87FB-gl_TEXTURE_CUBE_MAP_POSITIVE_X_OES :: GLenum-gl_TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515-gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR :: GLenum-gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC-gl_TEXTURE_2D_STACK_MESAX :: GLenum-gl_TEXTURE_2D_STACK_MESAX = 0x875A-gl_DRAW_BUFFER10 :: GLenum-gl_DRAW_BUFFER10 = 0x882F-gl_FLOAT16_VEC4_NV :: GLenum-gl_FLOAT16_VEC4_NV = 0x8FFB-gl_SIGNED_HILO16_NV :: GLenum-gl_SIGNED_HILO16_NV = 0x86FA-gl_BUFFER_MAPPED_OES :: GLenum-gl_BUFFER_MAPPED_OES = 0x88BC-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1-gl_DRAW_BUFFER5_EXT :: GLenum-gl_DRAW_BUFFER5_EXT = 0x882A-gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8-gl_NUM_EXTENSIONS :: GLenum-gl_NUM_EXTENSIONS = 0x821D-gl_WARP_SIZE_NV :: GLenum-gl_WARP_SIZE_NV = 0x9339-gl_TEXTURE23 :: GLenum-gl_TEXTURE23 = 0x84D7-gl_INT_SAMPLER_2D_RECT_EXT :: GLenum-gl_INT_SAMPLER_2D_RECT_EXT = 0x8DCD-gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES = 0x8CDB-gl_REG_4_ATI :: GLenum-gl_REG_4_ATI = 0x8925-gl_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG :: GLenum-gl_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137-gl_FOG_INDEX :: GLenum-gl_FOG_INDEX = 0x0B61-gl_QUADRATIC_ATTENUATION :: GLenum-gl_QUADRATIC_ATTENUATION = 0x1209-gl_COLOR_MATERIAL :: GLenum-gl_COLOR_MATERIAL = 0x0B57-gl_SAMPLE_MASK :: GLenum-gl_SAMPLE_MASK = 0x8E51-gl_DRAW_FRAMEBUFFER_BINDING_EXT :: GLenum-gl_DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6-gl_MULTISAMPLE_BUFFER_BIT5_QCOM :: GLenum-gl_MULTISAMPLE_BUFFER_BIT5_QCOM = 0x20000000-gl_DEPTH_STENCIL_OES :: GLenum-gl_DEPTH_STENCIL_OES = 0x84F9-gl_STENCIL_BITS :: GLenum-gl_STENCIL_BITS = 0x0D57-gl_CURRENT_VERTEX_ATTRIB_ARB :: GLenum-gl_CURRENT_VERTEX_ATTRIB_ARB = 0x8626-gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9-gl_COORD_REPLACE_ARB :: GLenum-gl_COORD_REPLACE_ARB = 0x8862-gl_RGBA32I_EXT :: GLenum-gl_RGBA32I_EXT = 0x8D82-gl_TEXTURE6 :: GLenum-gl_TEXTURE6 = 0x84C6-gl_FLOAT_RGB16_NV :: GLenum-gl_FLOAT_RGB16_NV = 0x8888-gl_TEXTURE_IMMUTABLE_FORMAT :: GLenum-gl_TEXTURE_IMMUTABLE_FORMAT = 0x912F-gl_ZERO_EXT :: GLenum-gl_ZERO_EXT = 0x87DD-gl_SOFTLIGHT_NV :: GLenum-gl_SOFTLIGHT_NV = 0x929C-gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9-gl_TEXTURE_BASE_LEVEL :: GLenum-gl_TEXTURE_BASE_LEVEL = 0x813C-gl_COMPRESSED_SRGB_ALPHA :: GLenum-gl_COMPRESSED_SRGB_ALPHA = 0x8C49-gl_TEXTURE18_ARB :: GLenum-gl_TEXTURE18_ARB = 0x84D2-gl_AND_INVERTED :: GLenum-gl_AND_INVERTED = 0x1504-gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F-gl_ARRAY_BUFFER_ARB :: GLenum-gl_ARRAY_BUFFER_ARB = 0x8892-gl_RGBA32F_EXT :: GLenum-gl_RGBA32F_EXT = 0x8814-gl_BLEND_EQUATION_RGB_EXT :: GLenum-gl_BLEND_EQUATION_RGB_EXT = 0x8009-gl_FRONT_FACE :: GLenum-gl_FRONT_FACE = 0x0B46-gl_SINGLE_COLOR_EXT :: GLenum-gl_SINGLE_COLOR_EXT = 0x81F9-gl_QUERY_COUNTER_BITS_EXT :: GLenum-gl_QUERY_COUNTER_BITS_EXT = 0x8864-gl_TESS_CONTROL_SHADER_PATCHES_ARB :: GLenum-gl_TESS_CONTROL_SHADER_PATCHES_ARB = 0x82F1-gl_SPOT_CUTOFF :: GLenum-gl_SPOT_CUTOFF = 0x1206-gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A-gl_OUTPUT_TEXTURE_COORD6_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3-gl_COLOR_ATTACHMENT13_NV :: GLenum-gl_COLOR_ATTACHMENT13_NV = 0x8CED-gl_COMPRESSED_RGBA_S3TC_DXT3_EXT :: GLenum-gl_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2-gl_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV :: GLenum-gl_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = 0x8E5A-gl_TRANSPOSE_TEXTURE_MATRIX :: GLenum-gl_TRANSPOSE_TEXTURE_MATRIX = 0x84E5-gl_MULTISAMPLE_ARB :: GLenum-gl_MULTISAMPLE_ARB = 0x809D-gl_DEPTH_COMPONENT24 :: GLenum-gl_DEPTH_COMPONENT24 = 0x81A6-gl_PIXEL_MAP_G_TO_G :: GLenum-gl_PIXEL_MAP_G_TO_G = 0x0C77-gl_NAMED_STRING_LENGTH_ARB :: GLenum-gl_NAMED_STRING_LENGTH_ARB = 0x8DE9-gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT :: GLenum-gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83-gl_UNIFORM_SIZE :: GLenum-gl_UNIFORM_SIZE = 0x8A38-gl_MODELVIEW21_ARB :: GLenum-gl_MODELVIEW21_ARB = 0x8735-gl_FRAGMENT_LIGHT7_SGIX :: GLenum-gl_FRAGMENT_LIGHT7_SGIX = 0x8413-gl_DRAW_BUFFER3_ARB :: GLenum-gl_DRAW_BUFFER3_ARB = 0x8828-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = 0x93E8-gl_UNSIGNED_SHORT :: GLenum-gl_UNSIGNED_SHORT = 0x1403-gl_MULTISAMPLE_BIT_ARB :: GLenum-gl_MULTISAMPLE_BIT_ARB = 0x20000000-gl_FOG :: GLenum-gl_FOG = 0x0B60-gl_TEXTURE_COMPARE_MODE :: GLenum-gl_TEXTURE_COMPARE_MODE = 0x884C-gl_SPHERE_MAP :: GLenum-gl_SPHERE_MAP = 0x2402-gl_TIMEOUT_EXPIRED_APPLE :: GLenum-gl_TIMEOUT_EXPIRED_APPLE = 0x911B-gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT :: GLenum-gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F-gl_PROXY_TEXTURE_1D_ARRAY :: GLenum-gl_PROXY_TEXTURE_1D_ARRAY = 0x8C19-gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6-gl_TEXTURE_BINDING_CUBE_MAP :: GLenum-gl_TEXTURE_BINDING_CUBE_MAP = 0x8514-gl_COLOR_ATTACHMENT14 :: GLenum-gl_COLOR_ATTACHMENT14 = 0x8CEE-gl_STENCIL_BUFFER_BIT :: GLenum-gl_STENCIL_BUFFER_BIT = 0x00000400-gl_SIGNALED :: GLenum-gl_SIGNALED = 0x9119-gl_TEXTURE_WIDTH :: GLenum-gl_TEXTURE_WIDTH = 0x1000-gl_EVAL_BIT :: GLenum-gl_EVAL_BIT = 0x00010000-gl_REG_28_ATI :: GLenum-gl_REG_28_ATI = 0x893D-gl_TEXTURE_BIT :: GLenum-gl_TEXTURE_BIT = 0x00040000-gl_CONTEXT_ROBUST_ACCESS_EXT :: GLenum-gl_CONTEXT_ROBUST_ACCESS_EXT = 0x90F3-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV :: GLenum-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80-gl_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB :: GLenum-gl_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = 0x82ED-gl_DEPTH_BUFFER_BIT :: GLenum-gl_DEPTH_BUFFER_BIT = 0x00000100-gl_TEXCOORD2_BIT_PGI :: GLenum-gl_TEXCOORD2_BIT_PGI = 0x20000000-gl_POST_CONVOLUTION_RED_SCALE_EXT :: GLenum-gl_POST_CONVOLUTION_RED_SCALE_EXT = 0x801C-gl_QUERY_KHR :: GLenum-gl_QUERY_KHR = 0x82E3-gl_PACK_IMAGE_HEIGHT_EXT :: GLenum-gl_PACK_IMAGE_HEIGHT_EXT = 0x806C-gl_COMPRESSED_RGBA_ASTC_5x5_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2-gl_MAX_VERTEX_UNIFORM_COMPONENTS_ARB :: GLenum-gl_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A-gl_DEPTH_STENCIL_ATTACHMENT :: GLenum-gl_DEPTH_STENCIL_ATTACHMENT = 0x821A-gl_HSL_HUE_KHR :: GLenum-gl_HSL_HUE_KHR = 0x92AD-gl_ATC_RGB_AMD :: GLenum-gl_ATC_RGB_AMD = 0x8C92-gl_DECR_WRAP :: GLenum-gl_DECR_WRAP = 0x8508-gl_GEOMETRY_VERTICES_OUT :: GLenum-gl_GEOMETRY_VERTICES_OUT = 0x8916-gl_OFFSET_TEXTURE_BIAS_NV :: GLenum-gl_OFFSET_TEXTURE_BIAS_NV = 0x86E3-gl_COLOR_ATTACHMENT5_NV :: GLenum-gl_COLOR_ATTACHMENT5_NV = 0x8CE5-gl_POINT_SIZE_ARRAY_POINTER_OES :: GLenum-gl_POINT_SIZE_ARRAY_POINTER_OES = 0x898C-gl_TEXTURE_COMPARE_FAIL_VALUE_ARB :: GLenum-gl_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF-gl_RENDERBUFFER_COLOR_SAMPLES_NV :: GLenum-gl_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10-gl_CON_10_ATI :: GLenum-gl_CON_10_ATI = 0x894B-gl_IMAGE_ROTATE_ANGLE_HP :: GLenum-gl_IMAGE_ROTATE_ANGLE_HP = 0x8159-gl_UNIFORM_BUFFER_UNIFIED_NV :: GLenum-gl_UNIFORM_BUFFER_UNIFIED_NV = 0x936E-gl_INTENSITY4 :: GLenum-gl_INTENSITY4 = 0x804A-gl_DEBUG_LOGGED_MESSAGES_KHR :: GLenum-gl_DEBUG_LOGGED_MESSAGES_KHR = 0x9145-gl_MINUS_CLAMPED_NV :: GLenum-gl_MINUS_CLAMPED_NV = 0x92B3-gl_BUFFER_SIZE :: GLenum-gl_BUFFER_SIZE = 0x8764-gl_SRGB_EXT :: GLenum-gl_SRGB_EXT = 0x8C40-gl_PIXEL_TEX_GEN_Q_ROUND_SGIX :: GLenum-gl_PIXEL_TEX_GEN_Q_ROUND_SGIX = 0x8185-gl_R16I :: GLenum-gl_R16I = 0x8233-gl_COLOR_COMPONENTS :: GLenum-gl_COLOR_COMPONENTS = 0x8283-gl_TEXTURE_VIEW_NUM_LEVELS :: GLenum-gl_TEXTURE_VIEW_NUM_LEVELS = 0x82DC-gl_COLOR_ATTACHMENT11 :: GLenum-gl_COLOR_ATTACHMENT11 = 0x8CEB-gl_OBJECT_PLANE :: GLenum-gl_OBJECT_PLANE = 0x2501-gl_IMAGE_3D_EXT :: GLenum-gl_IMAGE_3D_EXT = 0x904E-gl_MAX_GEOMETRY_INPUT_COMPONENTS :: GLenum-gl_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123-gl_TEXTURE_COORD_ARRAY_LIST_IBM :: GLenum-gl_TEXTURE_COORD_ARRAY_LIST_IBM = 103074-gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS :: GLenum-gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C-gl_CLIENT_ACTIVE_TEXTURE :: GLenum-gl_CLIENT_ACTIVE_TEXTURE = 0x84E1-gl_MAX_GEOMETRY_VARYING_COMPONENTS_ARB :: GLenum-gl_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD-gl_OPERAND1_RGB :: GLenum-gl_OPERAND1_RGB = 0x8591-gl_POINT_SIZE_ARRAY_OES :: GLenum-gl_POINT_SIZE_ARRAY_OES = 0x8B9C-gl_GLYPH_VERTICAL_BEARING_Y_BIT_NV :: GLenum-gl_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40-gl_MODELVIEW6_ARB :: GLenum-gl_MODELVIEW6_ARB = 0x8726-gl_DEBUG_OUTPUT_SYNCHRONOUS_KHR :: GLenum-gl_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242-gl_AND_REVERSE :: GLenum-gl_AND_REVERSE = 0x1502-gl_CLAMP_TO_BORDER_NV :: GLenum-gl_CLAMP_TO_BORDER_NV = 0x812D-gl_GUILTY_CONTEXT_RESET_ARB :: GLenum-gl_GUILTY_CONTEXT_RESET_ARB = 0x8253-gl_INT64_VEC2_NV :: GLenum-gl_INT64_VEC2_NV = 0x8FE9-gl_C3F_V3F :: GLenum-gl_C3F_V3F = 0x2A24-gl_OBJECT_LINEAR_NV :: GLenum-gl_OBJECT_LINEAR_NV = 0x2401-gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT :: GLenum-gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F-gl_TEXTURE_FLOAT_COMPONENTS_NV :: GLenum-gl_TEXTURE_FLOAT_COMPONENTS_NV = 0x888C-gl_SOURCE3_ALPHA_NV :: GLenum-gl_SOURCE3_ALPHA_NV = 0x858B-gl_OPERAND2_ALPHA_EXT :: GLenum-gl_OPERAND2_ALPHA_EXT = 0x859A-gl_CON_12_ATI :: GLenum-gl_CON_12_ATI = 0x894D-gl_SYNC_STATUS :: GLenum-gl_SYNC_STATUS = 0x9114-gl_BLEND_SRC_RGB_EXT :: GLenum-gl_BLEND_SRC_RGB_EXT = 0x80C9-gl_DEBUG_SOURCE_WINDOW_SYSTEM_ARB :: GLenum-gl_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247-gl_TEXTURE_2D_MULTISAMPLE_ARRAY :: GLenum-gl_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102-gl_LEFT :: GLenum-gl_LEFT = 0x0406-gl_UNSIGNED_INT_SAMPLER_1D :: GLenum-gl_UNSIGNED_INT_SAMPLER_1D = 0x8DD1-gl_PIXEL_MAP_I_TO_R_SIZE :: GLenum-gl_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2-gl_VERTEX_ARRAY_BINDING_OES :: GLenum-gl_VERTEX_ARRAY_BINDING_OES = 0x85B5-gl_COMBINE_ALPHA_EXT :: GLenum-gl_COMBINE_ALPHA_EXT = 0x8572-gl_TRANSFORM_FEEDBACK_ATTRIBS_NV :: GLenum-gl_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E-gl_CURRENT_WEIGHT_ARB :: GLenum-gl_CURRENT_WEIGHT_ARB = 0x86A8-gl_RASTERIZER_DISCARD_NV :: GLenum-gl_RASTERIZER_DISCARD_NV = 0x8C89-gl_SRC_IN_NV :: GLenum-gl_SRC_IN_NV = 0x928A-gl_OBJECT_DISTANCE_TO_POINT_SGIS :: GLenum-gl_OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1-gl_COMPRESSED_RGB8_ETC2 :: GLenum-gl_COMPRESSED_RGB8_ETC2 = 0x9274-gl_MAX_VERTEX_SHADER_STORAGE_BLOCKS :: GLenum-gl_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6-gl_RGB_SNORM :: GLenum-gl_RGB_SNORM = 0x8F92-gl_INTENSITY4_EXT :: GLenum-gl_INTENSITY4_EXT = 0x804A-gl_R8I :: GLenum-gl_R8I = 0x8231-gl_MAX_SUBROUTINE_UNIFORM_LOCATIONS :: GLenum-gl_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8-gl_EDGEFLAG_BIT_PGI :: GLenum-gl_EDGEFLAG_BIT_PGI = 0x00040000-gl_MAX_FRAMEBUFFER_SAMPLES :: GLenum-gl_MAX_FRAMEBUFFER_SAMPLES = 0x9318-gl_SECONDARY_COLOR_ARRAY_TYPE :: GLenum-gl_SECONDARY_COLOR_ARRAY_TYPE = 0x845B-gl_ALL_BARRIER_BITS_EXT :: GLenum-gl_ALL_BARRIER_BITS_EXT = 0xFFFFFFFF-gl_TEXTURE14 :: GLenum-gl_TEXTURE14 = 0x84CE-gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER :: GLenum-gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1-gl_SRC0_ALPHA :: GLenum-gl_SRC0_ALPHA = 0x8588-gl_MODELVIEW16_ARB :: GLenum-gl_MODELVIEW16_ARB = 0x8730-gl_DARKEN_NV :: GLenum-gl_DARKEN_NV = 0x9297-gl_INTENSITY_EXT :: GLenum-gl_INTENSITY_EXT = 0x8049-gl_CURRENT_BIT :: GLenum-gl_CURRENT_BIT = 0x00000001-gl_FLOAT_RGBA32_NV :: GLenum-gl_FLOAT_RGBA32_NV = 0x888B-gl_SHADOW_ATTENUATION_EXT :: GLenum-gl_SHADOW_ATTENUATION_EXT = 0x834E-gl_COMPRESSED_SRGB8_ETC2 :: GLenum-gl_COMPRESSED_SRGB8_ETC2 = 0x9275-gl_DRAW_BUFFER15 :: GLenum-gl_DRAW_BUFFER15 = 0x8834-gl_COMPARE_R_TO_TEXTURE_ARB :: GLenum-gl_COMPARE_R_TO_TEXTURE_ARB = 0x884E-gl_R11F_G11F_B10F_EXT :: GLenum-gl_R11F_G11F_B10F_EXT = 0x8C3A-gl_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG :: GLenum-gl_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = 0x9138-gl_MULTISAMPLE_BUFFER_BIT6_QCOM :: GLenum-gl_MULTISAMPLE_BUFFER_BIT6_QCOM = 0x40000000-gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT :: GLenum-gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = 0x8F67-gl_FEEDBACK_BUFFER_TYPE :: GLenum-gl_FEEDBACK_BUFFER_TYPE = 0x0DF2-gl_IMAGE_BINDING_FORMAT_EXT :: GLenum-gl_IMAGE_BINDING_FORMAT_EXT = 0x906E-gl_PROXY_TEXTURE_2D_EXT :: GLenum-gl_PROXY_TEXTURE_2D_EXT = 0x8064-gl_DEPTH32F_STENCIL8 :: GLenum-gl_DEPTH32F_STENCIL8 = 0x8CAD-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS :: GLenum-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B-gl_TESS_EVALUATION_SUBROUTINE :: GLenum-gl_TESS_EVALUATION_SUBROUTINE = 0x92EA-gl_TEXTURE_LOD_BIAS_T_SGIX :: GLenum-gl_TEXTURE_LOD_BIAS_T_SGIX = 0x818F-gl_COVERAGE_COMPONENT4_NV :: GLenum-gl_COVERAGE_COMPONENT4_NV = 0x8ED1-gl_TEXTURE6_ARB :: GLenum-gl_TEXTURE6_ARB = 0x84C6-gl_MAX_3D_TEXTURE_SIZE_EXT :: GLenum-gl_MAX_3D_TEXTURE_SIZE_EXT = 0x8073-gl_TEXTURE_RESIDENT :: GLenum-gl_TEXTURE_RESIDENT = 0x8067-gl_FOG_COORD_ARRAY_TYPE :: GLenum-gl_FOG_COORD_ARRAY_TYPE = 0x8454-gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR :: GLenum-gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D-gl_QUERY_BY_REGION_WAIT :: GLenum-gl_QUERY_BY_REGION_WAIT = 0x8E15-gl_SLUMINANCE_ALPHA :: GLenum-gl_SLUMINANCE_ALPHA = 0x8C44-gl_INT_SAMPLER_CUBE :: GLenum-gl_INT_SAMPLER_CUBE = 0x8DCC-gl_UNSIGNED_SHORT_4_4_4_4_REV :: GLenum-gl_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365-gl_MAX_PROGRAM_NATIVE_PARAMETERS_ARB :: GLenum-gl_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB-gl_LUMINANCE4_ALPHA4_EXT :: GLenum-gl_LUMINANCE4_ALPHA4_EXT = 0x8043-gl_OPERAND0_RGB_ARB :: GLenum-gl_OPERAND0_RGB_ARB = 0x8590-gl_PROXY_TEXTURE_2D_STACK_MESAX :: GLenum-gl_PROXY_TEXTURE_2D_STACK_MESAX = 0x875C-gl_TEXTURE_3D_EXT :: GLenum-gl_TEXTURE_3D_EXT = 0x806F-gl_STREAM_RASTERIZATION_AMD :: GLenum-gl_STREAM_RASTERIZATION_AMD = 0x91A0-gl_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT :: GLenum-gl_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6-gl_DEPTH_COMPONENT32_SGIX :: GLenum-gl_DEPTH_COMPONENT32_SGIX = 0x81A7-gl_LINE_STRIP :: GLenum-gl_LINE_STRIP = 0x0003-gl_CON_25_ATI :: GLenum-gl_CON_25_ATI = 0x895A-gl_SLIM10U_SGIX :: GLenum-gl_SLIM10U_SGIX = 0x831E-gl_COLOR_INDEX2_EXT :: GLenum-gl_COLOR_INDEX2_EXT = 0x80E3-gl_CON_22_ATI :: GLenum-gl_CON_22_ATI = 0x8957-gl_DEFORMATIONS_MASK_SGIX :: GLenum-gl_DEFORMATIONS_MASK_SGIX = 0x8196-gl_INVERSE_TRANSPOSE_NV :: GLenum-gl_INVERSE_TRANSPOSE_NV = 0x862D-gl_MULT :: GLenum-gl_MULT = 0x0103-gl_ATTRIB_ARRAY_STRIDE_NV :: GLenum-gl_ATTRIB_ARRAY_STRIDE_NV = 0x8624-gl_RGBA16_SNORM :: GLenum-gl_RGBA16_SNORM = 0x8F9B-gl_MIN_SAMPLE_SHADING_VALUE :: GLenum-gl_MIN_SAMPLE_SHADING_VALUE = 0x8C37-gl_RG8_SNORM :: GLenum-gl_RG8_SNORM = 0x8F95-gl_OBJECT_ATTACHED_OBJECTS_ARB :: GLenum-gl_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85-gl_UNPACK_SKIP_PIXELS_EXT :: GLenum-gl_UNPACK_SKIP_PIXELS_EXT = 0x0CF4-gl_ACTIVE_VERTEX_UNITS_ARB :: GLenum-gl_ACTIVE_VERTEX_UNITS_ARB = 0x86A5-gl_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT :: GLenum-gl_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5-gl_INTERNALFORMAT_RED_TYPE :: GLenum-gl_INTERNALFORMAT_RED_TYPE = 0x8278-gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV :: GLenum-gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0-gl_FLOAT_RGB_NV :: GLenum-gl_FLOAT_RGB_NV = 0x8882-gl_MAP_FLUSH_EXPLICIT_BIT_EXT :: GLenum-gl_MAP_FLUSH_EXPLICIT_BIT_EXT = 0x0010-gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8-gl_HALF_FLOAT_NV :: GLenum-gl_HALF_FLOAT_NV = 0x140B-gl_DEPTH_STENCIL :: GLenum-gl_DEPTH_STENCIL = 0x84F9-gl_PROGRAM_ERROR_POSITION_ARB :: GLenum-gl_PROGRAM_ERROR_POSITION_ARB = 0x864B-gl_TRACE_ERRORS_BIT_MESA :: GLenum-gl_TRACE_ERRORS_BIT_MESA = 0x0020-gl_STENCIL_OP_VALUE_AMD :: GLenum-gl_STENCIL_OP_VALUE_AMD = 0x874C-gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6-gl_COMPRESSED_SIGNED_R11_EAC :: GLenum-gl_COMPRESSED_SIGNED_R11_EAC = 0x9271-gl_FLOAT_MAT3x2 :: GLenum-gl_FLOAT_MAT3x2 = 0x8B67-gl_PROGRAM_ERROR_STRING_NV :: GLenum-gl_PROGRAM_ERROR_STRING_NV = 0x8874-gl_VERTEX_ID_NV :: GLenum-gl_VERTEX_ID_NV = 0x8C7B-gl_VERTEX_BINDING_OFFSET :: GLenum-gl_VERTEX_BINDING_OFFSET = 0x82D7-gl_RESTART_SUN :: GLenum-gl_RESTART_SUN = 0x0001-gl_INT_IMAGE_CUBE_MAP_ARRAY_EXT :: GLenum-gl_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F-gl_COLOR_INDEX :: GLenum-gl_COLOR_INDEX = 0x1900-gl_TEXTURE31_ARB :: GLenum-gl_TEXTURE31_ARB = 0x84DF-gl_MAX_DRAW_BUFFERS_ARB :: GLenum-gl_MAX_DRAW_BUFFERS_ARB = 0x8824-gl_MAX_IMAGE_UNITS :: GLenum-gl_MAX_IMAGE_UNITS = 0x8F38-gl_OUTPUT_TEXTURE_COORD4_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1-gl_COLOR_ARRAY_POINTER :: GLenum-gl_COLOR_ARRAY_POINTER = 0x8090-gl_MAX_COLOR_TEXTURE_SAMPLES :: GLenum-gl_MAX_COLOR_TEXTURE_SAMPLES = 0x910E-gl_SIGNED_NEGATE_NV :: GLenum-gl_SIGNED_NEGATE_NV = 0x853D-gl_MAX_GEOMETRY_UNIFORM_BLOCKS :: GLenum-gl_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C-gl_DEBUG_TYPE_ERROR :: GLenum-gl_DEBUG_TYPE_ERROR = 0x824C-gl_HISTOGRAM_RED_SIZE_EXT :: GLenum-gl_HISTOGRAM_RED_SIZE_EXT = 0x8028-gl_SECONDARY_COLOR_ARRAY_POINTER_EXT :: GLenum-gl_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D-gl_UNSIGNALED :: GLenum-gl_UNSIGNALED = 0x9118-gl_CON_8_ATI :: GLenum-gl_CON_8_ATI = 0x8949-gl_COMPRESSED_RED :: GLenum-gl_COMPRESSED_RED = 0x8225-gl_RGBA2_EXT :: GLenum-gl_RGBA2_EXT = 0x8055-gl_T2F_C3F_V3F :: GLenum-gl_T2F_C3F_V3F = 0x2A2A-gl_SECONDARY_COLOR_ARRAY :: GLenum-gl_SECONDARY_COLOR_ARRAY = 0x845E-gl_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT :: GLenum-gl_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD-gl_COLOR3_BIT_PGI :: GLenum-gl_COLOR3_BIT_PGI = 0x00010000-gl_CLIP_DISTANCE3 :: GLenum-gl_CLIP_DISTANCE3 = 0x3003-gl_TEXTURE_SWIZZLE_G_EXT :: GLenum-gl_TEXTURE_SWIZZLE_G_EXT = 0x8E43-gl_SAMPLER_CUBE_MAP_ARRAY :: GLenum-gl_SAMPLER_CUBE_MAP_ARRAY = 0x900C-gl_4PASS_3_SGIS :: GLenum-gl_4PASS_3_SGIS = 0x80A7-gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7-gl_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT :: GLenum-gl_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = 0x92D5-gl_VERTEX_ARRAY_STRIDE :: GLenum-gl_VERTEX_ARRAY_STRIDE = 0x807C-gl_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS :: GLenum-gl_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314-gl_TEXTURE_SWIZZLE_A :: GLenum-gl_TEXTURE_SWIZZLE_A = 0x8E45-gl_DOUBLE_MAT3x2 :: GLenum-gl_DOUBLE_MAT3x2 = 0x8F4B-gl_TEXTURE_UPDATE_BARRIER_BIT_EXT :: GLenum-gl_TEXTURE_UPDATE_BARRIER_BIT_EXT = 0x00000100-gl_SHADING_LANGUAGE_VERSION :: GLenum-gl_SHADING_LANGUAGE_VERSION = 0x8B8C-gl_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP :: GLenum-gl_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162-gl_FIXED_ONLY_ARB :: GLenum-gl_FIXED_ONLY_ARB = 0x891D-gl_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI :: GLenum-gl_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973-gl_CON_19_ATI :: GLenum-gl_CON_19_ATI = 0x8954-gl_CONTEXT_RELEASE_BEHAVIOR :: GLenum-gl_CONTEXT_RELEASE_BEHAVIOR = 0x82FB-gl_ARRAY_BUFFER_BINDING :: GLenum-gl_ARRAY_BUFFER_BINDING = 0x8894-gl_UNPACK_COLORSPACE_CONVERSION_WEBGL :: GLenum-gl_UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243-gl_CONVEX_HULL_NV :: GLenum-gl_CONVEX_HULL_NV = 0x908B-gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB :: GLenum-gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D-gl_FIRST_TO_REST_NV :: GLenum-gl_FIRST_TO_REST_NV = 0x90AF-gl_MAX_TEXTURE_COORDS :: GLenum-gl_MAX_TEXTURE_COORDS = 0x8871-gl_TEXTURE_DEPTH :: GLenum-gl_TEXTURE_DEPTH = 0x8071-gl_LIGHT0 :: GLenum-gl_LIGHT0 = 0x4000-gl_VERTEX_STREAM4_ATI :: GLenum-gl_VERTEX_STREAM4_ATI = 0x8770-gl_POST_COLOR_MATRIX_ALPHA_BIAS_SGI :: GLenum-gl_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB-gl_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS :: GLenum-gl_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC-gl_SAMPLER_2D_RECT_SHADOW_ARB :: GLenum-gl_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64-gl_DRAW_BUFFER1_ATI :: GLenum-gl_DRAW_BUFFER1_ATI = 0x8826-gl_SAMPLE_BUFFERS_SGIS :: GLenum-gl_SAMPLE_BUFFERS_SGIS = 0x80A8-gl_SIGNED_LUMINANCE_ALPHA_NV :: GLenum-gl_SIGNED_LUMINANCE_ALPHA_NV = 0x8703-gl_R16_SNORM :: GLenum-gl_R16_SNORM = 0x8F98-gl_DRAW_BUFFER13_ATI :: GLenum-gl_DRAW_BUFFER13_ATI = 0x8832-gl_TEXTURE_LIGHT_EXT :: GLenum-gl_TEXTURE_LIGHT_EXT = 0x8350-gl_BOOL_ARB :: GLenum-gl_BOOL_ARB = 0x8B56-gl_BGRA_IMG :: GLenum-gl_BGRA_IMG = 0x80E1-gl_SRGB_ALPHA_EXT :: GLenum-gl_SRGB_ALPHA_EXT = 0x8C42-gl_RELATIVE_ROUNDED_RECT2_NV :: GLenum-gl_RELATIVE_ROUNDED_RECT2_NV = 0xEB-gl_LUMINANCE16UI_EXT :: GLenum-gl_LUMINANCE16UI_EXT = 0x8D7A-gl_MATRIX7_NV :: GLenum-gl_MATRIX7_NV = 0x8637-gl_INTENSITY16 :: GLenum-gl_INTENSITY16 = 0x804D-gl_DRAW_INDIRECT_BUFFER :: GLenum-gl_DRAW_INDIRECT_BUFFER = 0x8F3F-gl_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM :: GLenum-gl_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085-gl_MAX_IMAGE_SAMPLES_EXT :: GLenum-gl_MAX_IMAGE_SAMPLES_EXT = 0x906D-gl_DEBUG_SOURCE_OTHER_ARB :: GLenum-gl_DEBUG_SOURCE_OTHER_ARB = 0x824B-gl_POINT_BIT :: GLenum-gl_POINT_BIT = 0x00000002-gl_MAX_VARYING_VECTORS :: GLenum-gl_MAX_VARYING_VECTORS = 0x8DFC-gl_SUBTRACT_ARB :: GLenum-gl_SUBTRACT_ARB = 0x84E7-gl_INT_SAMPLER_BUFFER_AMD :: GLenum-gl_INT_SAMPLER_BUFFER_AMD = 0x9002-gl_SAMPLE_MASK_INVERT_SGIS :: GLenum-gl_SAMPLE_MASK_INVERT_SGIS = 0x80AB-gl_POINT_DISTANCE_ATTENUATION_ARB :: GLenum-gl_POINT_DISTANCE_ATTENUATION_ARB = 0x8129-gl_GREEN_BIT_ATI :: GLenum-gl_GREEN_BIT_ATI = 0x00000002-gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT :: GLenum-gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA-gl_FRAMEBUFFER :: GLenum-gl_FRAMEBUFFER = 0x8D40-gl_TEXTURE_COMPRESSION_HINT_ARB :: GLenum-gl_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF-gl_PROGRAM_INPUT :: GLenum-gl_PROGRAM_INPUT = 0x92E3-gl_SCREEN_NV :: GLenum-gl_SCREEN_NV = 0x9295-gl_TEXTURE_CUBE_MAP_ARRAY_EXT :: GLenum-gl_TEXTURE_CUBE_MAP_ARRAY_EXT = 0x9009-gl_FENCE_STATUS_NV :: GLenum-gl_FENCE_STATUS_NV = 0x84F3-gl_MAX_BINDABLE_UNIFORM_SIZE_EXT :: GLenum-gl_MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED-gl_PACK_COMPRESSED_BLOCK_WIDTH :: GLenum-gl_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B-gl_RELATIVE_VERTICAL_LINE_TO_NV :: GLenum-gl_RELATIVE_VERTICAL_LINE_TO_NV = 0x09-gl_POST_COLOR_MATRIX_COLOR_TABLE_SGI :: GLenum-gl_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2-gl_ALPHA_INTEGER :: GLenum-gl_ALPHA_INTEGER = 0x8D97-gl_MAX_SUBROUTINES :: GLenum-gl_MAX_SUBROUTINES = 0x8DE7-gl_UNSIGNED_INT_VEC3_EXT :: GLenum-gl_UNSIGNED_INT_VEC3_EXT = 0x8DC7-gl_ELEMENT_ARRAY_ATI :: GLenum-gl_ELEMENT_ARRAY_ATI = 0x8768-gl_ONE_MINUS_CONSTANT_COLOR :: GLenum-gl_ONE_MINUS_CONSTANT_COLOR = 0x8002-gl_MODELVIEW18_ARB :: GLenum-gl_MODELVIEW18_ARB = 0x8732-gl_CONSTANT_ARB :: GLenum-gl_CONSTANT_ARB = 0x8576-gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV :: GLenum-gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3-gl_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL :: GLenum-gl_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD-gl_DRAW_BUFFER_EXT :: GLenum-gl_DRAW_BUFFER_EXT = 0x0C01-gl_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT :: GLenum-gl_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = 0x9068-gl_FLOAT_MAT2x4_NV :: GLenum-gl_FLOAT_MAT2x4_NV = 0x8B66-gl_CULL_VERTEX_EXT :: GLenum-gl_CULL_VERTEX_EXT = 0x81AA-gl_MATRIX_PALETTE_ARB :: GLenum-gl_MATRIX_PALETTE_ARB = 0x8840-gl_VERTEX_PROGRAM_POINT_SIZE_ARB :: GLenum-gl_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642-gl_FLOAT_RG16_NV :: GLenum-gl_FLOAT_RG16_NV = 0x8886-gl_CON_1_ATI :: GLenum-gl_CON_1_ATI = 0x8942-gl_BLEND_EQUATION_RGB :: GLenum-gl_BLEND_EQUATION_RGB = 0x8009-gl_OP_CROSS_PRODUCT_EXT :: GLenum-gl_OP_CROSS_PRODUCT_EXT = 0x8797-gl_VERTEX_WEIGHT_ARRAY_STRIDE_EXT :: GLenum-gl_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F-gl_TESS_CONTROL_PROGRAM_NV :: GLenum-gl_TESS_CONTROL_PROGRAM_NV = 0x891E-gl_FIXED_ONLY :: GLenum-gl_FIXED_ONLY = 0x891D-gl_4PASS_1_EXT :: GLenum-gl_4PASS_1_EXT = 0x80A5-gl_SAMPLER_2D_MULTISAMPLE_ARRAY_OES :: GLenum-gl_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910B-gl_UNSIGNED_INT_8_8_8_8_REV :: GLenum-gl_UNSIGNED_INT_8_8_8_8_REV = 0x8367-gl_UNIFORM_BLOCK_ACTIVE_UNIFORMS :: GLenum-gl_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42-gl_SLUMINANCE_ALPHA_NV :: GLenum-gl_SLUMINANCE_ALPHA_NV = 0x8C44-gl_PROXY_TEXTURE_CUBE_MAP :: GLenum-gl_PROXY_TEXTURE_CUBE_MAP = 0x851B-gl_IMAGE_CLASS_1_X_32 :: GLenum-gl_IMAGE_CLASS_1_X_32 = 0x82BB-gl_STACK_OVERFLOW_KHR :: GLenum-gl_STACK_OVERFLOW_KHR = 0x0503-gl_COMPRESSED_RGBA_ASTC_5x5x5_OES :: GLenum-gl_COMPRESSED_RGBA_ASTC_5x5x5_OES = 0x93C6-gl_CLOSE_PATH_NV :: GLenum-gl_CLOSE_PATH_NV = 0x00-gl_PIXEL_COUNT_AVAILABLE_NV :: GLenum-gl_PIXEL_COUNT_AVAILABLE_NV = 0x8867-gl_PATH_DASH_OFFSET_NV :: GLenum-gl_PATH_DASH_OFFSET_NV = 0x907E-gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV :: GLenum-gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = 0x8C8A-gl_GLOBAL_ALPHA_FACTOR_SUN :: GLenum-gl_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA-gl_INDEX_ARRAY_COUNT_EXT :: GLenum-gl_INDEX_ARRAY_COUNT_EXT = 0x8087-gl_PACK_RESAMPLE_OML :: GLenum-gl_PACK_RESAMPLE_OML = 0x8984-gl_LAYER_NV :: GLenum-gl_LAYER_NV = 0x8DAA-gl_DRAW_FRAMEBUFFER :: GLenum-gl_DRAW_FRAMEBUFFER = 0x8CA9-gl_LINEAR_DETAIL_ALPHA_SGIS :: GLenum-gl_LINEAR_DETAIL_ALPHA_SGIS = 0x8098-gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT :: GLenum-gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89-gl_EDGE_FLAG_ARRAY :: GLenum-gl_EDGE_FLAG_ARRAY = 0x8079-gl_TEXTURE_DEFORMATION_BIT_SGIX :: GLenum-gl_TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001-gl_SOURCE1_RGB :: GLenum-gl_SOURCE1_RGB = 0x8581-gl_TEXTURE_3D_OES :: GLenum-gl_TEXTURE_3D_OES = 0x806F-gl_ALLOW_DRAW_OBJ_HINT_PGI :: GLenum-gl_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E-gl_PATH_STROKE_BOUNDING_BOX_NV :: GLenum-gl_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2-gl_HINT_BIT :: GLenum-gl_HINT_BIT = 0x00008000-gl_VERTICAL_LINE_TO_NV :: GLenum-gl_VERTICAL_LINE_TO_NV = 0x08-gl_MAX_TEXTURE_BUFFER_SIZE_EXT :: GLenum-gl_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B-gl_MAX_DRAW_BUFFERS_ATI :: GLenum-gl_MAX_DRAW_BUFFERS_ATI = 0x8824-gl_R8_EXT :: GLenum-gl_R8_EXT = 0x8229-gl_TEXTURE_COVERAGE_SAMPLES_NV :: GLenum-gl_TEXTURE_COVERAGE_SAMPLES_NV = 0x9045-gl_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV :: GLenum-gl_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025-gl_REFERENCED_BY_VERTEX_SHADER :: GLenum-gl_REFERENCED_BY_VERTEX_SHADER = 0x9306-gl_FLOAT_RG32_NV :: GLenum-gl_FLOAT_RG32_NV = 0x8887-gl_TESSELLATION_FACTOR_AMD :: GLenum-gl_TESSELLATION_FACTOR_AMD = 0x9005-gl_MAX_PROGRAM_TEMPORARIES_ARB :: GLenum-gl_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5-gl_COMPRESSED_RGBA_ASTC_12x12_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD-gl_PROJECTION :: GLenum-gl_PROJECTION = 0x1701-gl_S :: GLenum-gl_S = 0x2000-gl_ALPHA_FLOAT32_APPLE :: GLenum-gl_ALPHA_FLOAT32_APPLE = 0x8816-gl_LUMINANCE8_ALPHA8_OES :: GLenum-gl_LUMINANCE8_ALPHA8_OES = 0x8045-gl_4_BYTES_NV :: GLenum-gl_4_BYTES_NV = 0x1409-gl_CONST_EYE_NV :: GLenum-gl_CONST_EYE_NV = 0x86E5-gl_MAT_SPECULAR_BIT_PGI :: GLenum-gl_MAT_SPECULAR_BIT_PGI = 0x04000000-gl_TEXTURE1_ARB :: GLenum-gl_TEXTURE1_ARB = 0x84C1-gl_LINE_WIDTH_GRANULARITY :: GLenum-gl_LINE_WIDTH_GRANULARITY = 0x0B23-gl_DRAW_INDIRECT_BUFFER_BINDING :: GLenum-gl_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43-gl_BLEND_EQUATION :: GLenum-gl_BLEND_EQUATION = 0x8009-gl_RGBA8UI_EXT :: GLenum-gl_RGBA8UI_EXT = 0x8D7C-gl_NORMALIZE :: GLenum-gl_NORMALIZE = 0x0BA1-gl_LUMINANCE_ALPHA_FLOAT16_APPLE :: GLenum-gl_LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F-gl_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX :: GLenum-gl_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX = 0x9049-gl_INVERSE_NV :: GLenum-gl_INVERSE_NV = 0x862B-gl_TEXTURE_SWIZZLE_A_EXT :: GLenum-gl_TEXTURE_SWIZZLE_A_EXT = 0x8E45-gl_DEPTH24_STENCIL8_OES :: GLenum-gl_DEPTH24_STENCIL8_OES = 0x88F0-gl_UNPACK_COMPRESSED_BLOCK_HEIGHT :: GLenum-gl_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128-gl_RGBA32UI :: GLenum-gl_RGBA32UI = 0x8D70-gl_MAP1_COLOR_4 :: GLenum-gl_MAP1_COLOR_4 = 0x0D90-gl_MAX_ELEMENTS_VERTICES :: GLenum-gl_MAX_ELEMENTS_VERTICES = 0x80E8-gl_CLIENT_VERTEX_ARRAY_BIT :: GLenum-gl_CLIENT_VERTEX_ARRAY_BIT = 0x00000002-gl_TEXTURE_GREEN_TYPE :: GLenum-gl_TEXTURE_GREEN_TYPE = 0x8C11-gl_TEXTURE_BINDING_BUFFER_ARB :: GLenum-gl_TEXTURE_BINDING_BUFFER_ARB = 0x8C2C-gl_MAX_RECTANGLE_TEXTURE_SIZE_NV :: GLenum-gl_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8-gl_INTERNALFORMAT_GREEN_TYPE :: GLenum-gl_INTERNALFORMAT_GREEN_TYPE = 0x8279-gl_OP_ADD_EXT :: GLenum-gl_OP_ADD_EXT = 0x8787-gl_UNSIGNED_INT_24_8 :: GLenum-gl_UNSIGNED_INT_24_8 = 0x84FA-gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS :: GLenum-gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32-gl_3D_COLOR :: GLenum-gl_3D_COLOR = 0x0602-gl_MODULATE_COLOR_IMG :: GLenum-gl_MODULATE_COLOR_IMG = 0x8C04-gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518-gl_TEXTURE_CLIPMAP_FRAME_SGIX :: GLenum-gl_TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172-gl_NORMAL_ARRAY_STRIDE_EXT :: GLenum-gl_NORMAL_ARRAY_STRIDE_EXT = 0x807F-gl_R16 :: GLenum-gl_R16 = 0x822A-gl_PIXEL_PACK_BUFFER :: GLenum-gl_PIXEL_PACK_BUFFER = 0x88EB-gl_SOFTLIGHT_KHR :: GLenum-gl_SOFTLIGHT_KHR = 0x929C-gl_POST_CONVOLUTION_BLUE_SCALE :: GLenum-gl_POST_CONVOLUTION_BLUE_SCALE = 0x801E-gl_INTERLEAVED_ATTRIBS_NV :: GLenum-gl_INTERLEAVED_ATTRIBS_NV = 0x8C8C-gl_COLOR_ATTACHMENT8 :: GLenum-gl_COLOR_ATTACHMENT8 = 0x8CE8-gl_DEBUG_TYPE_PUSH_GROUP_KHR :: GLenum-gl_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269-gl_PERFQUERY_COUNTER_DATA_UINT64_INTEL :: GLenum-gl_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9-gl_MOV_ATI :: GLenum-gl_MOV_ATI = 0x8961-gl_PROGRAM_SEPARABLE :: GLenum-gl_PROGRAM_SEPARABLE = 0x8258-gl_REG_20_ATI :: GLenum-gl_REG_20_ATI = 0x8935-gl_DOUBLE_VEC3 :: GLenum-gl_DOUBLE_VEC3 = 0x8FFD-gl_8X_BIT_ATI :: GLenum-gl_8X_BIT_ATI = 0x00000004-gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: GLenum-gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C-gl_MATRIX26_ARB :: GLenum-gl_MATRIX26_ARB = 0x88DA-gl_PROXY_TEXTURE_RECTANGLE_ARB :: GLenum-gl_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7-gl_TRANSFORM_HINT_APPLE :: GLenum-gl_TRANSFORM_HINT_APPLE = 0x85B1-gl_UNPACK_ROW_BYTES_APPLE :: GLenum-gl_UNPACK_ROW_BYTES_APPLE = 0x8A16-gl_POST_COLOR_MATRIX_ALPHA_SCALE_SGI :: GLenum-gl_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7-gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB :: GLenum-gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F-gl_ONE_MINUS_CONSTANT_COLOR_EXT :: GLenum-gl_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002-gl_TEXTURE_BINDING_CUBE_MAP_OES :: GLenum-gl_TEXTURE_BINDING_CUBE_MAP_OES = 0x8514-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT :: GLenum-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E-gl_VERTEX_ARRAY_STORAGE_HINT_APPLE :: GLenum-gl_VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F-gl_VERTEX_BINDING_BUFFER :: GLenum-gl_VERTEX_BINDING_BUFFER = 0x8F4F-gl_FRAGMENT_LIGHT0_SGIX :: GLenum-gl_FRAGMENT_LIGHT0_SGIX = 0x840C-gl_GLYPH_HORIZONTAL_BEARING_X_BIT_NV :: GLenum-gl_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04-gl_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT :: GLenum-gl_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE-gl_SRC2_RGB :: GLenum-gl_SRC2_RGB = 0x8582-gl_NUM_COMPRESSED_TEXTURE_FORMATS :: GLenum-gl_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2-gl_OUTPUT_TEXTURE_COORD2_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD2_EXT = 0x879F-gl_DEPTH_TEXTURE_MODE :: GLenum-gl_DEPTH_TEXTURE_MODE = 0x884B-gl_SAMPLE_PATTERN_EXT :: GLenum-gl_SAMPLE_PATTERN_EXT = 0x80AC-gl_ELEMENT_ARRAY_APPLE :: GLenum-gl_ELEMENT_ARRAY_APPLE = 0x8A0C-gl_MAX_FOG_FUNC_POINTS_SGIS :: GLenum-gl_MAX_FOG_FUNC_POINTS_SGIS = 0x812C-gl_TEXTURE_APPLICATION_MODE_EXT :: GLenum-gl_TEXTURE_APPLICATION_MODE_EXT = 0x834F-gl_COLOR_ARRAY_SIZE_EXT :: GLenum-gl_COLOR_ARRAY_SIZE_EXT = 0x8081-gl_VERTEX_SOURCE_ATI :: GLenum-gl_VERTEX_SOURCE_ATI = 0x8774-gl_MAP2_VERTEX_ATTRIB3_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673-gl_LIGHTEN_KHR :: GLenum-gl_LIGHTEN_KHR = 0x9298-gl_INT_SAMPLER_1D_ARRAY :: GLenum-gl_INT_SAMPLER_1D_ARRAY = 0x8DCE-gl_UNSIGNED_INT_10F_11F_11F_REV_EXT :: GLenum-gl_UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B-gl_LUMINANCE8 :: GLenum-gl_LUMINANCE8 = 0x8040-gl_ACCUM_ALPHA_BITS :: GLenum-gl_ACCUM_ALPHA_BITS = 0x0D5B-gl_MINMAX_FORMAT :: GLenum-gl_MINMAX_FORMAT = 0x802F-gl_NOOP :: GLenum-gl_NOOP = 0x1505-gl_READ_FRAMEBUFFER_EXT :: GLenum-gl_READ_FRAMEBUFFER_EXT = 0x8CA8-gl_SHADER :: GLenum-gl_SHADER = 0x82E1-gl_UNSIGNED_INT_10_10_10_2_OES :: GLenum-gl_UNSIGNED_INT_10_10_10_2_OES = 0x8DF6-gl_TEXTURE_COMPRESSED_BLOCK_WIDTH :: GLenum-gl_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1-gl_DEBUG_OUTPUT_KHR :: GLenum-gl_DEBUG_OUTPUT_KHR = 0x92E0-gl_SOURCE0_ALPHA_ARB :: GLenum-gl_SOURCE0_ALPHA_ARB = 0x8588-gl_SAMPLER_1D_ARRAY_EXT :: GLenum-gl_SAMPLER_1D_ARRAY_EXT = 0x8DC0-gl_T2F_V3F :: GLenum-gl_T2F_V3F = 0x2A27-gl_SAMPLE_MASK_SGIS :: GLenum-gl_SAMPLE_MASK_SGIS = 0x80A0-gl_CIRCULAR_TANGENT_ARC_TO_NV :: GLenum-gl_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC-gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS :: GLenum-gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83-gl_MAX_DEBUG_LOGGED_MESSAGES :: GLenum-gl_MAX_DEBUG_LOGGED_MESSAGES = 0x9144-gl_SOURCE1_ALPHA :: GLenum-gl_SOURCE1_ALPHA = 0x8589-gl_RGB_422_APPLE :: GLenum-gl_RGB_422_APPLE = 0x8A1F-gl_COLOR_TABLE :: GLenum-gl_COLOR_TABLE = 0x80D0-gl_MAP1_TEXTURE_COORD_3 :: GLenum-gl_MAP1_TEXTURE_COORD_3 = 0x0D95-gl_DEBUG_SEVERITY_HIGH_AMD :: GLenum-gl_DEBUG_SEVERITY_HIGH_AMD = 0x9146-gl_UNSIGNED_INT :: GLenum-gl_UNSIGNED_INT = 0x1405-gl_VERTEX_PROGRAM_CALLBACK_MESA :: GLenum-gl_VERTEX_PROGRAM_CALLBACK_MESA = 0x8BB5-gl_BLOCK_INDEX :: GLenum-gl_BLOCK_INDEX = 0x92FD-gl_FLOAT :: GLenum-gl_FLOAT = 0x1406-gl_TRACE_PIXELS_BIT_MESA :: GLenum-gl_TRACE_PIXELS_BIT_MESA = 0x0010-gl_BACK :: GLenum-gl_BACK = 0x0405-gl_PATH_JOIN_STYLE_NV :: GLenum-gl_PATH_JOIN_STYLE_NV = 0x9079-gl_LUMINANCE_ALPHA16I_EXT :: GLenum-gl_LUMINANCE_ALPHA16I_EXT = 0x8D8D-gl_FLOAT_MAT2 :: GLenum-gl_FLOAT_MAT2 = 0x8B5A-gl_SIGNED_IDENTITY_NV :: GLenum-gl_SIGNED_IDENTITY_NV = 0x853C-gl_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA :: GLenum-gl_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA = 0x8BB3-gl_DEPTH_PASS_INSTRUMENT_MAX_SGIX :: GLenum-gl_DEPTH_PASS_INSTRUMENT_MAX_SGIX = 0x8312-gl_CLIP_DEPTH_MODE :: GLenum-gl_CLIP_DEPTH_MODE = 0x935D-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = 0x8D6C-gl_CULL_FACE :: GLenum-gl_CULL_FACE = 0x0B44-gl_DETAIL_TEXTURE_LEVEL_SGIS :: GLenum-gl_DETAIL_TEXTURE_LEVEL_SGIS = 0x809A-gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB :: GLenum-gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243-gl_PACK_SKIP_ROWS :: GLenum-gl_PACK_SKIP_ROWS = 0x0D03-gl_COEFF :: GLenum-gl_COEFF = 0x0A00-gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT :: GLenum-gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E-gl_NUM_INSTRUCTIONS_PER_PASS_ATI :: GLenum-gl_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971-gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB :: GLenum-gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1-gl_RGBA8 :: GLenum-gl_RGBA8 = 0x8058-gl_TESS_GEN_VERTEX_ORDER :: GLenum-gl_TESS_GEN_VERTEX_ORDER = 0x8E78-gl_TEXTURE_CUBE_MAP :: GLenum-gl_TEXTURE_CUBE_MAP = 0x8513-gl_VERTEX_PRECLIP_HINT_SGIX :: GLenum-gl_VERTEX_PRECLIP_HINT_SGIX = 0x83EF-gl_NUM_SHADING_LANGUAGE_VERSIONS :: GLenum-gl_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9-gl_OUTPUT_TEXTURE_COORD9_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6-gl_MAX_PROGRAM_GENERIC_RESULTS_NV :: GLenum-gl_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6-gl_COLOR_ATTACHMENT7_NV :: GLenum-gl_COLOR_ATTACHMENT7_NV = 0x8CE7-gl_OUT_OF_MEMORY :: GLenum-gl_OUT_OF_MEMORY = 0x0505-gl_TEXTURE_COORD_ARRAY_POINTER_EXT :: GLenum-gl_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092-gl_FLOAT_MAT2_ARB :: GLenum-gl_FLOAT_MAT2_ARB = 0x8B5A-gl_COMBINER_AB_DOT_PRODUCT_NV :: GLenum-gl_COMBINER_AB_DOT_PRODUCT_NV = 0x8545-gl_INDEX_ARRAY_POINTER_EXT :: GLenum-gl_INDEX_ARRAY_POINTER_EXT = 0x8091-gl_WRITE_PIXEL_DATA_RANGE_POINTER_NV :: GLenum-gl_WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C-gl_3D :: GLenum-gl_3D = 0x0601-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = 0x93E7-gl_UPPER_LEFT :: GLenum-gl_UPPER_LEFT = 0x8CA2-gl_IMAGE_1D_ARRAY_EXT :: GLenum-gl_IMAGE_1D_ARRAY_EXT = 0x9052-gl_GREEN :: GLenum-gl_GREEN = 0x1904-gl_RGB12 :: GLenum-gl_RGB12 = 0x8053-gl_GEOMETRY_DEFORMATION_BIT_SGIX :: GLenum-gl_GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002-gl_LUMINANCE_ALPHA_FLOAT32_ATI :: GLenum-gl_LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819-gl_INT_SAMPLER_CUBE_MAP_ARRAY :: GLenum-gl_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E-gl_EVAL_TRIANGULAR_2D_NV :: GLenum-gl_EVAL_TRIANGULAR_2D_NV = 0x86C1-gl_QUERY_BY_REGION_WAIT_INVERTED :: GLenum-gl_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19-gl_CONTEXT_ROBUST_ACCESS_KHR :: GLenum-gl_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3-gl_STREAM_READ_ARB :: GLenum-gl_STREAM_READ_ARB = 0x88E1-gl_INT_IMAGE_1D_ARRAY_EXT :: GLenum-gl_INT_IMAGE_1D_ARRAY_EXT = 0x905D-gl_QUERY_NO_WAIT_INVERTED :: GLenum-gl_QUERY_NO_WAIT_INVERTED = 0x8E18-gl_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT :: GLenum-gl_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF-gl_COLOR_ATTACHMENT4_EXT :: GLenum-gl_COLOR_ATTACHMENT4_EXT = 0x8CE4-gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR :: GLenum-gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E-gl_LOSE_CONTEXT_ON_RESET :: GLenum-gl_LOSE_CONTEXT_ON_RESET = 0x8252-gl_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM :: GLenum-gl_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084-gl_REPLACEMENT_CODE_SUN :: GLenum-gl_REPLACEMENT_CODE_SUN = 0x81D8-gl_422_REV_EXT :: GLenum-gl_422_REV_EXT = 0x80CD-gl_COMPILE_STATUS :: GLenum-gl_COMPILE_STATUS = 0x8B81-gl_VERTEX_ATTRIB_MAP1_COEFF_APPLE :: GLenum-gl_VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03-gl_TRANSPOSE_COLOR_MATRIX :: GLenum-gl_TRANSPOSE_COLOR_MATRIX = 0x84E6-gl_COLOR_TABLE_FORMAT :: GLenum-gl_COLOR_TABLE_FORMAT = 0x80D8-gl_VERSION_ES_CM_1_1 :: GLenum-gl_VERSION_ES_CM_1_1 = 1-gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24-gl_BUFFER_STORAGE_FLAGS :: GLenum-gl_BUFFER_STORAGE_FLAGS = 0x8220-gl_UNSIGNED_NORMALIZED_EXT :: GLenum-gl_UNSIGNED_NORMALIZED_EXT = 0x8C17-gl_LIGHT_MODEL_SPECULAR_VECTOR_APPLE :: GLenum-gl_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0-gl_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT :: GLenum-gl_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001-gl_3_BYTES :: GLenum-gl_3_BYTES = 0x1408-gl_CND0_ATI :: GLenum-gl_CND0_ATI = 0x896B-gl_TEXTURE_MAX_LEVEL_APPLE :: GLenum-gl_TEXTURE_MAX_LEVEL_APPLE = 0x813D-gl_POINT :: GLenum-gl_POINT = 0x1B00-gl_MODELVIEW11_ARB :: GLenum-gl_MODELVIEW11_ARB = 0x872B-gl_RED_BITS :: GLenum-gl_RED_BITS = 0x0D52-gl_PIXEL_TILE_GRID_WIDTH_SGIX :: GLenum-gl_PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142-gl_DRAW_BUFFER7_NV :: GLenum-gl_DRAW_BUFFER7_NV = 0x882C-gl_OP_SET_LT_EXT :: GLenum-gl_OP_SET_LT_EXT = 0x878D-gl_TEXTURE24_ARB :: GLenum-gl_TEXTURE24_ARB = 0x84D8-gl_TESS_GEN_POINT_MODE :: GLenum-gl_TESS_GEN_POINT_MODE = 0x8E79-gl_INTERNALFORMAT_PREFERRED :: GLenum-gl_INTERNALFORMAT_PREFERRED = 0x8270-gl_VERTEX_SHADER_VARIANTS_EXT :: GLenum-gl_VERTEX_SHADER_VARIANTS_EXT = 0x87D0-gl_COMBINER_CD_OUTPUT_NV :: GLenum-gl_COMBINER_CD_OUTPUT_NV = 0x854B-gl_TRANSPOSE_CURRENT_MATRIX_ARB :: GLenum-gl_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7-gl_MAX_ARRAY_TEXTURE_LAYERS_EXT :: GLenum-gl_MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF-gl_UNSIGNED_SHORT_8_8_MESA :: GLenum-gl_UNSIGNED_SHORT_8_8_MESA = 0x85BA-gl_BLEND_ADVANCED_COHERENT_NV :: GLenum-gl_BLEND_ADVANCED_COHERENT_NV = 0x9285-gl_VERTEX_ARRAY_EXT :: GLenum-gl_VERTEX_ARRAY_EXT = 0x8074-gl_BOOL_VEC4_ARB :: GLenum-gl_BOOL_VEC4_ARB = 0x8B59-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV :: GLenum-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853-gl_UNSIGNED_SHORT_5_5_5_1 :: GLenum-gl_UNSIGNED_SHORT_5_5_5_1 = 0x8034-gl_SHADE_MODEL :: GLenum-gl_SHADE_MODEL = 0x0B54-gl_MIRROR_CLAMP_TO_EDGE :: GLenum-gl_MIRROR_CLAMP_TO_EDGE = 0x8743-gl_RGB5_EXT :: GLenum-gl_RGB5_EXT = 0x8050-gl_TEXTURE_GEN_S :: GLenum-gl_TEXTURE_GEN_S = 0x0C60-gl_TEXTURE_COMPRESSED :: GLenum-gl_TEXTURE_COMPRESSED = 0x86A1-gl_FRAMEBUFFER_BLEND :: GLenum-gl_FRAMEBUFFER_BLEND = 0x828B-gl_REPLACE_VALUE_AMD :: GLenum-gl_REPLACE_VALUE_AMD = 0x874B-gl_YCRCB_SGIX :: GLenum-gl_YCRCB_SGIX = 0x8318-gl_UNIFORM_BLOCK_INDEX :: GLenum-gl_UNIFORM_BLOCK_INDEX = 0x8A3A-gl_TEXTURE_TOO_LARGE_EXT :: GLenum-gl_TEXTURE_TOO_LARGE_EXT = 0x8065-gl_MIRRORED_REPEAT_ARB :: GLenum-gl_MIRRORED_REPEAT_ARB = 0x8370-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER :: GLenum-gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB-gl_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB :: GLenum-gl_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B-gl_MAX_SAMPLES :: GLenum-gl_MAX_SAMPLES = 0x8D57-gl_ATTENUATION_EXT :: GLenum-gl_ATTENUATION_EXT = 0x834D-gl_MIRROR_CLAMP_EXT :: GLenum-gl_MIRROR_CLAMP_EXT = 0x8742-gl_DEBUG_LOGGED_MESSAGES :: GLenum-gl_DEBUG_LOGGED_MESSAGES = 0x9145-gl_DOT3_ATI :: GLenum-gl_DOT3_ATI = 0x8966-gl_EMBOSS_CONSTANT_NV :: GLenum-gl_EMBOSS_CONSTANT_NV = 0x855E-gl_OUTPUT_TEXTURE_COORD11_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8-gl_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL :: GLenum-gl_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8-gl_INDEX :: GLenum-gl_INDEX = 0x8222-gl_CURRENT_MATRIX_ARB :: GLenum-gl_CURRENT_MATRIX_ARB = 0x8641-gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS :: GLenum-gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4-gl_MAX_DRAW_BUFFERS_EXT :: GLenum-gl_MAX_DRAW_BUFFERS_EXT = 0x8824-gl_ADD_BLEND_IMG :: GLenum-gl_ADD_BLEND_IMG = 0x8C09-gl_CLIP_FAR_HINT_PGI :: GLenum-gl_CLIP_FAR_HINT_PGI = 0x1A221-gl_POST_CONVOLUTION_COLOR_TABLE :: GLenum-gl_POST_CONVOLUTION_COLOR_TABLE = 0x80D1-gl_RGBA4_OES :: GLenum-gl_RGBA4_OES = 0x8056-gl_QUERY_RESULT_AVAILABLE_ARB :: GLenum-gl_QUERY_RESULT_AVAILABLE_ARB = 0x8867-gl_RGB8UI :: GLenum-gl_RGB8UI = 0x8D7D-gl_DYNAMIC_READ :: GLenum-gl_DYNAMIC_READ = 0x88E9-gl_TEXTURE_BINDING_2D_MULTISAMPLE :: GLenum-gl_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104-gl_OBJECT_TYPE_APPLE :: GLenum-gl_OBJECT_TYPE_APPLE = 0x9112-gl_PERCENTAGE_AMD :: GLenum-gl_PERCENTAGE_AMD = 0x8BC3-gl_LIGHT_MODEL_LOCAL_VIEWER :: GLenum-gl_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51-gl_SPARE0_PLUS_SECONDARY_COLOR_NV :: GLenum-gl_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532-gl_OP_INDEX_EXT :: GLenum-gl_OP_INDEX_EXT = 0x8782-gl_VIEW_CLASS_S3TC_DXT3_RGBA :: GLenum-gl_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE-gl_TEXTURE_DEPTH_TYPE_ARB :: GLenum-gl_TEXTURE_DEPTH_TYPE_ARB = 0x8C16-gl_TEXTURE_ALPHA_SIZE :: GLenum-gl_TEXTURE_ALPHA_SIZE = 0x805F-gl_YCRCB_422_SGIX :: GLenum-gl_YCRCB_422_SGIX = 0x81BB-gl_INDEX_ARRAY_LENGTH_NV :: GLenum-gl_INDEX_ARRAY_LENGTH_NV = 0x8F2E-gl_TRANSPOSE_AFFINE_3D_NV :: GLenum-gl_TRANSPOSE_AFFINE_3D_NV = 0x9098-gl_MATRIX17_ARB :: GLenum-gl_MATRIX17_ARB = 0x88D1-gl_SRGB_ALPHA :: GLenum-gl_SRGB_ALPHA = 0x8C42-gl_MAP_TESSELLATION_NV :: GLenum-gl_MAP_TESSELLATION_NV = 0x86C2-gl_PACK_SKIP_VOLUMES_SGIS :: GLenum-gl_PACK_SKIP_VOLUMES_SGIS = 0x8130-gl_COLOR_BUFFER_BIT :: GLenum-gl_COLOR_BUFFER_BIT = 0x00004000-gl_REG_6_ATI :: GLenum-gl_REG_6_ATI = 0x8927-gl_ATOMIC_COUNTER_BUFFER_BINDING :: GLenum-gl_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1-gl_POST_CONVOLUTION_ALPHA_BIAS :: GLenum-gl_POST_CONVOLUTION_ALPHA_BIAS = 0x8023-gl_HARDLIGHT_NV :: GLenum-gl_HARDLIGHT_NV = 0x929B-gl_INTENSITY16_SNORM :: GLenum-gl_INTENSITY16_SNORM = 0x901B-gl_TEXCOORD1_BIT_PGI :: GLenum-gl_TEXCOORD1_BIT_PGI = 0x10000000-gl_DEBUG_CALLBACK_FUNCTION :: GLenum-gl_DEBUG_CALLBACK_FUNCTION = 0x8244-gl_TEXTURE8_ARB :: GLenum-gl_TEXTURE8_ARB = 0x84C8-gl_DOUBLE_VEC2_EXT :: GLenum-gl_DOUBLE_VEC2_EXT = 0x8FFC-gl_TRIANGLES_ADJACENCY :: GLenum-gl_TRIANGLES_ADJACENCY = 0x000C-gl_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER :: GLenum-gl_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44-gl_R16F :: GLenum-gl_R16F = 0x822D-gl_OUTPUT_TEXTURE_COORD19_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0-gl_QUAD_LUMINANCE4_SGIS :: GLenum-gl_QUAD_LUMINANCE4_SGIS = 0x8120-gl_SAMPLER_OBJECT_AMD :: GLenum-gl_SAMPLER_OBJECT_AMD = 0x9155-gl_COMPRESSED_RGBA_S3TC_DXT3_ANGLE :: GLenum-gl_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2-gl_UNSIGNED_INT_IMAGE_2D :: GLenum-gl_UNSIGNED_INT_IMAGE_2D = 0x9063-gl_ALPHA_TEST :: GLenum-gl_ALPHA_TEST = 0x0BC0-gl_CONVOLUTION_WIDTH :: GLenum-gl_CONVOLUTION_WIDTH = 0x8018-gl_SLUMINANCE_NV :: GLenum-gl_SLUMINANCE_NV = 0x8C46-gl_FRAMEBUFFER_UNDEFINED_OES :: GLenum-gl_FRAMEBUFFER_UNDEFINED_OES = 0x8219-gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23-gl_HALF_FLOAT_OES :: GLenum-gl_HALF_FLOAT_OES = 0x8D61-gl_CONVOLUTION_FORMAT_EXT :: GLenum-gl_CONVOLUTION_FORMAT_EXT = 0x8017-gl_FALSE :: GLenum-gl_FALSE = 0-gl_ADD_ATI :: GLenum-gl_ADD_ATI = 0x8963-gl_STENCIL_BACK_FAIL :: GLenum-gl_STENCIL_BACK_FAIL = 0x8801-gl_DOUBLE_VEC4 :: GLenum-gl_DOUBLE_VEC4 = 0x8FFE-gl_STANDARD_FONT_NAME_NV :: GLenum-gl_STANDARD_FONT_NAME_NV = 0x9072-gl_ALPHA4_EXT :: GLenum-gl_ALPHA4_EXT = 0x803B-gl_EXPAND_NORMAL_NV :: GLenum-gl_EXPAND_NORMAL_NV = 0x8538-gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB :: GLenum-gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A-gl_TRACE_MASK_MESA :: GLenum-gl_TRACE_MASK_MESA = 0x8755-gl_VARIABLE_B_NV :: GLenum-gl_VARIABLE_B_NV = 0x8524-gl_RGB16_EXT :: GLenum-gl_RGB16_EXT = 0x8054-gl_TEXTURE :: GLenum-gl_TEXTURE = 0x1702-gl_PIXEL_UNPACK_BUFFER_BINDING_EXT :: GLenum-gl_PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF-gl_IMAGE_CLASS_1_X_8 :: GLenum-gl_IMAGE_CLASS_1_X_8 = 0x82C1-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56-gl_BOOL_VEC2_ARB :: GLenum-gl_BOOL_VEC2_ARB = 0x8B57-gl_MAP2_VERTEX_3 :: GLenum-gl_MAP2_VERTEX_3 = 0x0DB7-gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH :: GLenum-gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243-gl_TEXTURE_WRAP_S :: GLenum-gl_TEXTURE_WRAP_S = 0x2802-gl_TEXTURE_CUBE_MAP_NEGATIVE_X :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516-gl_TEXTURE_CUBE_MAP_ARRAY :: GLenum-gl_TEXTURE_CUBE_MAP_ARRAY = 0x9009-gl_TEXTURE_ALPHA_TYPE :: GLenum-gl_TEXTURE_ALPHA_TYPE = 0x8C13-gl_MAX_COLOR_ATTACHMENTS_NV :: GLenum-gl_MAX_COLOR_ATTACHMENTS_NV = 0x8CDF-gl_MAX_CUBE_MAP_TEXTURE_SIZE :: GLenum-gl_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C-gl_ANY_SAMPLES_PASSED :: GLenum-gl_ANY_SAMPLES_PASSED = 0x8C2F-gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213-gl_COLOR_ARRAY_STRIDE :: GLenum-gl_COLOR_ARRAY_STRIDE = 0x8083-gl_MULTISAMPLE_BIT_EXT :: GLenum-gl_MULTISAMPLE_BIT_EXT = 0x20000000-gl_VERTEX_ATTRIB_ARRAY_DIVISOR :: GLenum-gl_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE-gl_UNSIGNED_INT64_VEC3_NV :: GLenum-gl_UNSIGNED_INT64_VEC3_NV = 0x8FF6-gl_WAIT_FAILED_APPLE :: GLenum-gl_WAIT_FAILED_APPLE = 0x911D-gl_DRAW_BUFFER5_ATI :: GLenum-gl_DRAW_BUFFER5_ATI = 0x882A-gl_MAX_CUBE_MAP_TEXTURE_SIZE_EXT :: GLenum-gl_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C-gl_ONE_MINUS_CONSTANT_ALPHA_EXT :: GLenum-gl_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004-gl_UNSIGNED_INT_8_24_REV_MESA :: GLenum-gl_UNSIGNED_INT_8_24_REV_MESA = 0x8752-gl_MAX_PROGRAM_ENV_PARAMETERS_ARB :: GLenum-gl_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5-gl_MAX_VERTEX_VARYING_COMPONENTS_EXT :: GLenum-gl_MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE-gl_CURRENT_TANGENT_EXT :: GLenum-gl_CURRENT_TANGENT_EXT = 0x843B-gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB :: GLenum-gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE-gl_ALPHA16 :: GLenum-gl_ALPHA16 = 0x803E-gl_MAP1_VERTEX_4 :: GLenum-gl_MAP1_VERTEX_4 = 0x0D98-gl_SAMPLER_CUBE_SHADOW_NV :: GLenum-gl_SAMPLER_CUBE_SHADOW_NV = 0x8DC5-gl_SAMPLER_2D_SHADOW_ARB :: GLenum-gl_SAMPLER_2D_SHADOW_ARB = 0x8B62-gl_PROGRAM_LENGTH_NV :: GLenum-gl_PROGRAM_LENGTH_NV = 0x8627-gl_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM :: GLenum-gl_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086-gl_IGNORE_BORDER_HP :: GLenum-gl_IGNORE_BORDER_HP = 0x8150-gl_DEBUG_SOURCE_SHADER_COMPILER :: GLenum-gl_DEBUG_SOURCE_SHADER_COMPILER = 0x8248-gl_TEXTURE_BORDER_VALUES_NV :: GLenum-gl_TEXTURE_BORDER_VALUES_NV = 0x871A-gl_FRAGMENT_SUBROUTINE :: GLenum-gl_FRAGMENT_SUBROUTINE = 0x92EC-gl_MAX_DEPTH_TEXTURE_SAMPLES :: GLenum-gl_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F-gl_VERTEX_ATTRIB_ARRAY_POINTER :: GLenum-gl_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645-gl_COLOR_ATTACHMENT7 :: GLenum-gl_COLOR_ATTACHMENT7 = 0x8CE7-gl_LAST_VERTEX_CONVENTION_EXT :: GLenum-gl_LAST_VERTEX_CONVENTION_EXT = 0x8E4E-gl_TEXTURE_LO_SIZE_NV :: GLenum-gl_TEXTURE_LO_SIZE_NV = 0x871C-gl_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER :: GLenum-gl_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46-gl_COMPRESSED_RGB8_ETC2_OES :: GLenum-gl_COMPRESSED_RGB8_ETC2_OES = 0x9274-gl_NORMAL_MAP_NV :: GLenum-gl_NORMAL_MAP_NV = 0x8511-gl_COLOR_ARRAY_COUNT_EXT :: GLenum-gl_COLOR_ARRAY_COUNT_EXT = 0x8084-gl_TEXTURE_COMPARE_MODE_EXT :: GLenum-gl_TEXTURE_COMPARE_MODE_EXT = 0x884C-gl_BINORMAL_ARRAY_TYPE_EXT :: GLenum-gl_BINORMAL_ARRAY_TYPE_EXT = 0x8440-gl_OPERAND0_RGB_EXT :: GLenum-gl_OPERAND0_RGB_EXT = 0x8590-gl_MAX_VERTEX_VARYING_COMPONENTS_ARB :: GLenum-gl_MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE-gl_PIXEL_MIN_FILTER_EXT :: GLenum-gl_PIXEL_MIN_FILTER_EXT = 0x8332-gl_ACCUM_ADJACENT_PAIRS_NV :: GLenum-gl_ACCUM_ADJACENT_PAIRS_NV = 0x90AD-gl_BLEND_DST :: GLenum-gl_BLEND_DST = 0x0BE0-gl_W_EXT :: GLenum-gl_W_EXT = 0x87D8-gl_RENDERBUFFER_COVERAGE_SAMPLES_NV :: GLenum-gl_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB-gl_STENCIL_FUNC :: GLenum-gl_STENCIL_FUNC = 0x0B92-gl_MAX_VERTEX_STREAMS :: GLenum-gl_MAX_VERTEX_STREAMS = 0x8E71-gl_GEOMETRY_INPUT_TYPE :: GLenum-gl_GEOMETRY_INPUT_TYPE = 0x8917-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV :: GLenum-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857-gl_MINMAX_SINK_EXT :: GLenum-gl_MINMAX_SINK_EXT = 0x8030-gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC-gl_DOUBLE_MAT2x3 :: GLenum-gl_DOUBLE_MAT2x3 = 0x8F49-gl_FRACTIONAL_EVEN_EXT :: GLenum-gl_FRACTIONAL_EVEN_EXT = 0x8E7C-gl_VERTEX_ARRAY_TYPE_EXT :: GLenum-gl_VERTEX_ARRAY_TYPE_EXT = 0x807B-gl_BINORMAL_ARRAY_POINTER_EXT :: GLenum-gl_BINORMAL_ARRAY_POINTER_EXT = 0x8443-gl_SAMPLE_MASK_EXT :: GLenum-gl_SAMPLE_MASK_EXT = 0x80A0-gl_TESS_CONTROL_SHADER_EXT :: GLenum-gl_TESS_CONTROL_SHADER_EXT = 0x8E88-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT :: GLenum-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80-gl_TANGENT_ARRAY_STRIDE_EXT :: GLenum-gl_TANGENT_ARRAY_STRIDE_EXT = 0x843F-gl_GET_TEXTURE_IMAGE_TYPE :: GLenum-gl_GET_TEXTURE_IMAGE_TYPE = 0x8292-gl_OFFSET :: GLenum-gl_OFFSET = 0x92FC-gl_ALL_STATIC_DATA_IBM :: GLenum-gl_ALL_STATIC_DATA_IBM = 103060-gl_READ_PIXEL_DATA_RANGE_LENGTH_NV :: GLenum-gl_READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B-gl_CONSTANT_COLOR :: GLenum-gl_CONSTANT_COLOR = 0x8001-gl_UNSIGNED_SHORT_1_5_5_5_REV_EXT :: GLenum-gl_UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366-gl_MATERIAL_SIDE_HINT_PGI :: GLenum-gl_MATERIAL_SIDE_HINT_PGI = 0x1A22C-gl_UNPACK_RESAMPLE_OML :: GLenum-gl_UNPACK_RESAMPLE_OML = 0x8985-gl_SAMPLE_SHADING :: GLenum-gl_SAMPLE_SHADING = 0x8C36-gl_OUTPUT_TEXTURE_COORD13_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA-gl_MAX_COLOR_MATRIX_STACK_DEPTH :: GLenum-gl_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3-gl_INT64_VEC3_NV :: GLenum-gl_INT64_VEC3_NV = 0x8FEA-gl_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV :: GLenum-gl_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010-gl_TEXTURE_STACK_DEPTH :: GLenum-gl_TEXTURE_STACK_DEPTH = 0x0BA5-gl_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL :: GLenum-gl_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500-gl_FRAMEBUFFER_UNSUPPORTED_EXT :: GLenum-gl_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD-gl_QUERY_TARGET :: GLenum-gl_QUERY_TARGET = 0x82EA-gl_LUMINANCE4_ALPHA4 :: GLenum-gl_LUMINANCE4_ALPHA4 = 0x8043-gl_TRANSFORM_FEEDBACK_BARRIER_BIT :: GLenum-gl_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800-gl_RGB32UI :: GLenum-gl_RGB32UI = 0x8D71-gl_STATIC_DRAW :: GLenum-gl_STATIC_DRAW = 0x88E4-gl_MAX_COMPUTE_UNIFORM_BLOCKS :: GLenum-gl_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB-gl_PALETTE4_RGBA8_OES :: GLenum-gl_PALETTE4_RGBA8_OES = 0x8B91-gl_UNPACK_PREMULTIPLY_ALPHA_WEBGL :: GLenum-gl_UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241-gl_TEXTURE21 :: GLenum-gl_TEXTURE21 = 0x84D5-gl_RGB32I :: GLenum-gl_RGB32I = 0x8D83-gl_MAX_TEXTURE_LOD_BIAS_EXT :: GLenum-gl_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD-gl_PATH_GEN_COLOR_FORMAT_NV :: GLenum-gl_PATH_GEN_COLOR_FORMAT_NV = 0x90B2-gl_RGB10_A2UI :: GLenum-gl_RGB10_A2UI = 0x906F-gl_GREEN_BITS :: GLenum-gl_GREEN_BITS = 0x0D53-gl_POLYGON_MODE :: GLenum-gl_POLYGON_MODE = 0x0B40-gl_SUCCESS_NV :: GLenum-gl_SUCCESS_NV = 0x902F-gl_RGBA12 :: GLenum-gl_RGBA12 = 0x805A-gl_PATCHES :: GLenum-gl_PATCHES = 0x000E-gl_ACCUM :: GLenum-gl_ACCUM = 0x0100-gl_NUM_PASSES_ATI :: GLenum-gl_NUM_PASSES_ATI = 0x8970-gl_DEBUG_TYPE_ERROR_ARB :: GLenum-gl_DEBUG_TYPE_ERROR_ARB = 0x824C-gl_TEXTURE_LIGHTING_MODE_HP :: GLenum-gl_TEXTURE_LIGHTING_MODE_HP = 0x8167-gl_HISTOGRAM_SINK_EXT :: GLenum-gl_HISTOGRAM_SINK_EXT = 0x802D-gl_POINT_SIZE_GRANULARITY :: GLenum-gl_POINT_SIZE_GRANULARITY = 0x0B13-gl_R32F :: GLenum-gl_R32F = 0x822E-gl_STATIC_COPY :: GLenum-gl_STATIC_COPY = 0x88E6-gl_FOG_COORDINATE_ARRAY_TYPE_EXT :: GLenum-gl_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454-gl_SPARE0_NV :: GLenum-gl_SPARE0_NV = 0x852E-gl_3DC_XY_AMD :: GLenum-gl_3DC_XY_AMD = 0x87FA-gl_LUMINANCE_ALPHA32F_ARB :: GLenum-gl_LUMINANCE_ALPHA32F_ARB = 0x8819-gl_VERTEX_ARRAY_RANGE_VALID_NV :: GLenum-gl_VERTEX_ARRAY_RANGE_VALID_NV = 0x851F-gl_DEPTH_BUFFER_BIT6_QCOM :: GLenum-gl_DEPTH_BUFFER_BIT6_QCOM = 0x00004000-gl_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX :: GLenum-gl_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX = 0x8314-gl_LINE_WIDTH :: GLenum-gl_LINE_WIDTH = 0x0B21-gl_FOG_OFFSET_SGIX :: GLenum-gl_FOG_OFFSET_SGIX = 0x8198-gl_GEOMETRY_SHADER_BIT_EXT :: GLenum-gl_GEOMETRY_SHADER_BIT_EXT = 0x00000004-gl_TEXTURE_BLUE_SIZE :: GLenum-gl_TEXTURE_BLUE_SIZE = 0x805E-gl_TEXTURE_SHADER_NV :: GLenum-gl_TEXTURE_SHADER_NV = 0x86DE-gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV :: GLenum-gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5F-gl_FRAMEZOOM_SGIX :: GLenum-gl_FRAMEZOOM_SGIX = 0x818B-gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT :: GLenum-gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D-gl_DEPTH_RENDERABLE :: GLenum-gl_DEPTH_RENDERABLE = 0x8287-gl_MAX_TEXTURE_BUFFER_SIZE :: GLenum-gl_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B-gl_COLOR_ALPHA_PAIRING_ATI :: GLenum-gl_COLOR_ALPHA_PAIRING_ATI = 0x8975-gl_PACK_REVERSE_ROW_ORDER_ANGLE :: GLenum-gl_PACK_REVERSE_ROW_ORDER_ANGLE = 0x93A4-gl_VERTEX_ATTRIB_ARRAY_NORMALIZED :: GLenum-gl_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A-gl_OP_MADD_EXT :: GLenum-gl_OP_MADD_EXT = 0x8788-gl_TEXTURE7 :: GLenum-gl_TEXTURE7 = 0x84C7-gl_RGB32I_EXT :: GLenum-gl_RGB32I_EXT = 0x8D83-gl_RED_BIAS :: GLenum-gl_RED_BIAS = 0x0D15-gl_FLOAT_VEC2 :: GLenum-gl_FLOAT_VEC2 = 0x8B50-gl_HALF_APPLE :: GLenum-gl_HALF_APPLE = 0x140B-gl_SGX_BINARY_IMG :: GLenum-gl_SGX_BINARY_IMG = 0x8C0A-gl_CON_28_ATI :: GLenum-gl_CON_28_ATI = 0x895D-gl_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP :: GLenum-gl_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163-gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV :: GLenum-gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533-gl_MAP2_VERTEX_ATTRIB2_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672-gl_TRANSFORM_BIT :: GLenum-gl_TRANSFORM_BIT = 0x00001000-gl_R8 :: GLenum-gl_R8 = 0x8229-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = 0x8D56-gl_T :: GLenum-gl_T = 0x2001-gl_TEXTURE_ENV_MODE :: GLenum-gl_TEXTURE_ENV_MODE = 0x2200-gl_HIGH_INT :: GLenum-gl_HIGH_INT = 0x8DF5-gl_TEXTURE_UNSIGNED_REMAP_MODE_NV :: GLenum-gl_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F-gl_MAX_PROGRAM_LOOP_COUNT_NV :: GLenum-gl_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8-gl_PERFQUERY_WAIT_INTEL :: GLenum-gl_PERFQUERY_WAIT_INTEL = 0x83FB-gl_INVALID_FRAMEBUFFER_OPERATION_EXT :: GLenum-gl_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506-gl_TEXTURE_2D_BINDING_EXT :: GLenum-gl_TEXTURE_2D_BINDING_EXT = 0x8069-gl_TEXTURE_NUM_LEVELS_QCOM :: GLenum-gl_TEXTURE_NUM_LEVELS_QCOM = 0x8BD9-gl_TEXTURE_BUFFER_ARB :: GLenum-gl_TEXTURE_BUFFER_ARB = 0x8C2A-gl_TRUE :: GLenum-gl_TRUE = 1-gl_MAX_LAYERS :: GLenum-gl_MAX_LAYERS = 0x8281-gl_MAX_TEXTURE_UNITS_ARB :: GLenum-gl_MAX_TEXTURE_UNITS_ARB = 0x84E2-gl_MAP2_NORMAL :: GLenum-gl_MAP2_NORMAL = 0x0DB2-gl_DUAL_ALPHA16_SGIS :: GLenum-gl_DUAL_ALPHA16_SGIS = 0x8113-gl_PROGRAM_OUTPUT :: GLenum-gl_PROGRAM_OUTPUT = 0x92E4-gl_OUTPUT_TEXTURE_COORD22_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3-gl_SAMPLER_1D_ARB :: GLenum-gl_SAMPLER_1D_ARB = 0x8B5D-gl_POST_CONVOLUTION_GREEN_BIAS :: GLenum-gl_POST_CONVOLUTION_GREEN_BIAS = 0x8021-gl_INT_IMAGE_CUBE :: GLenum-gl_INT_IMAGE_CUBE = 0x905B-gl_CURRENT_VERTEX_WEIGHT_EXT :: GLenum-gl_CURRENT_VERTEX_WEIGHT_EXT = 0x850B-gl_SIGNED_LUMINANCE8_NV :: GLenum-gl_SIGNED_LUMINANCE8_NV = 0x8702-gl_TEXTURE_VIEW_NUM_LAYERS_EXT :: GLenum-gl_TEXTURE_VIEW_NUM_LAYERS_EXT = 0x82DE-gl_RG16F :: GLenum-gl_RG16F = 0x822F-gl_PROGRAM_POINT_SIZE_EXT :: GLenum-gl_PROGRAM_POINT_SIZE_EXT = 0x8642-gl_FILE_NAME_NV :: GLenum-gl_FILE_NAME_NV = 0x9074-gl_INT_IMAGE_BUFFER_EXT :: GLenum-gl_INT_IMAGE_BUFFER_EXT = 0x905C-gl_TEXTURE_UPDATE_BARRIER_BIT :: GLenum-gl_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100-gl_HARDMIX_NV :: GLenum-gl_HARDMIX_NV = 0x92A9-gl_FLOAT_MAT3x4 :: GLenum-gl_FLOAT_MAT3x4 = 0x8B68-gl_TEXTURE_INTERNAL_FORMAT_QCOM :: GLenum-gl_TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5-gl_INTERNALFORMAT_BLUE_SIZE :: GLenum-gl_INTERNALFORMAT_BLUE_SIZE = 0x8273-gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV :: GLenum-gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28-gl_HSL_COLOR_NV :: GLenum-gl_HSL_COLOR_NV = 0x92AF-gl_CONDITION_SATISFIED :: GLenum-gl_CONDITION_SATISFIED = 0x911C-gl_UNIFORM_BUFFER_LENGTH_NV :: GLenum-gl_UNIFORM_BUFFER_LENGTH_NV = 0x9370-gl_ALPHA8UI_EXT :: GLenum-gl_ALPHA8UI_EXT = 0x8D7E-gl_REG_23_ATI :: GLenum-gl_REG_23_ATI = 0x8938-gl_UNSIGNED_SHORT_5_6_5_EXT :: GLenum-gl_UNSIGNED_SHORT_5_6_5_EXT = 0x8363-gl_EDGE_FLAG_ARRAY_LENGTH_NV :: GLenum-gl_EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30-gl_IMAGE_CLASS_1_X_16 :: GLenum-gl_IMAGE_CLASS_1_X_16 = 0x82BE-gl_LUMINANCE8_ALPHA8_SNORM :: GLenum-gl_LUMINANCE8_ALPHA8_SNORM = 0x9016-gl_PATH_FILL_COVER_MODE_NV :: GLenum-gl_PATH_FILL_COVER_MODE_NV = 0x9082-gl_LUMINANCE_ALPHA_FLOAT32_APPLE :: GLenum-gl_LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819-gl_INTENSITY16UI_EXT :: GLenum-gl_INTENSITY16UI_EXT = 0x8D79-gl_RENDERBUFFER_SAMPLES_APPLE :: GLenum-gl_RENDERBUFFER_SAMPLES_APPLE = 0x8CAB-gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE :: GLenum-gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF-gl_LUMINANCE_ALPHA32I_EXT :: GLenum-gl_LUMINANCE_ALPHA32I_EXT = 0x8D87-gl_REGISTER_COMBINERS_NV :: GLenum-gl_REGISTER_COMBINERS_NV = 0x8522-gl_R1UI_N3F_V3F_SUN :: GLenum-gl_R1UI_N3F_V3F_SUN = 0x85C7-gl_FOG_COORDINATE_SOURCE :: GLenum-gl_FOG_COORDINATE_SOURCE = 0x8450-gl_DEBUG_SEVERITY_MEDIUM_AMD :: GLenum-gl_DEBUG_SEVERITY_MEDIUM_AMD = 0x9147-gl_MODELVIEW30_ARB :: GLenum-gl_MODELVIEW30_ARB = 0x873E-gl_COMPRESSED_RGBA_S3TC_DXT5_EXT :: GLenum-gl_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3-gl_DRAW_BUFFER0_NV :: GLenum-gl_DRAW_BUFFER0_NV = 0x8825-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT :: GLenum-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC-gl_ELEMENT_ARRAY_BARRIER_BIT :: GLenum-gl_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002-gl_SHADER_PIXEL_LOCAL_STORAGE_EXT :: GLenum-gl_SHADER_PIXEL_LOCAL_STORAGE_EXT = 0x8F64-gl_FRONT_LEFT :: GLenum-gl_FRONT_LEFT = 0x0400-gl_UNIFORM_BUFFER_BINDING :: GLenum-gl_UNIFORM_BUFFER_BINDING = 0x8A28-gl_SIGNED_RGBA8_NV :: GLenum-gl_SIGNED_RGBA8_NV = 0x86FC-gl_EYE_PLANE :: GLenum-gl_EYE_PLANE = 0x2502-gl_TEXTURE_1D :: GLenum-gl_TEXTURE_1D = 0x0DE0-gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT :: GLenum-gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE-gl_MALI_PROGRAM_BINARY_ARM :: GLenum-gl_MALI_PROGRAM_BINARY_ARM = 0x8F61-gl_SKIP_COMPONENTS3_NV :: GLenum-gl_SKIP_COMPONENTS3_NV = -4-gl_LUMINANCE_ALPHA :: GLenum-gl_LUMINANCE_ALPHA = 0x190A-gl_ACCUM_RED_BITS :: GLenum-gl_ACCUM_RED_BITS = 0x0D58-gl_POLYGON_OFFSET_FACTOR :: GLenum-gl_POLYGON_OFFSET_FACTOR = 0x8038-gl_SAMPLER_2D_ARRAY_SHADOW_NV :: GLenum-gl_SAMPLER_2D_ARRAY_SHADOW_NV = 0x8DC4-gl_VARIABLE_D_NV :: GLenum-gl_VARIABLE_D_NV = 0x8526-gl_TEXTURE_LEQUAL_R_SGIX :: GLenum-gl_TEXTURE_LEQUAL_R_SGIX = 0x819C-gl_INT :: GLenum-gl_INT = 0x1404-gl_IMAGE_TRANSLATE_Y_HP :: GLenum-gl_IMAGE_TRANSLATE_Y_HP = 0x8158-gl_POINT_TOKEN :: GLenum-gl_POINT_TOKEN = 0x0701-gl_RESAMPLE_ZERO_FILL_OML :: GLenum-gl_RESAMPLE_ZERO_FILL_OML = 0x8987-gl_DEBUG_SOURCE_THIRD_PARTY_KHR :: GLenum-gl_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249-gl_TEXTURE_MAG_SIZE_NV :: GLenum-gl_TEXTURE_MAG_SIZE_NV = 0x871F-gl_PER_STAGE_CONSTANTS_NV :: GLenum-gl_PER_STAGE_CONSTANTS_NV = 0x8535-gl_VIRTUAL_PAGE_SIZE_Y_ARB :: GLenum-gl_VIRTUAL_PAGE_SIZE_Y_ARB = 0x9196-gl_SPRITE_EYE_ALIGNED_SGIX :: GLenum-gl_SPRITE_EYE_ALIGNED_SGIX = 0x814E-gl_EVAL_VERTEX_ATTRIB14_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB14_NV = 0x86D4-gl_TRANSFORM_FEEDBACK_VARYINGS_NV :: GLenum-gl_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83-gl_RGB10 :: GLenum-gl_RGB10 = 0x8052-gl_MAX_VIEWPORT_DIMS :: GLenum-gl_MAX_VIEWPORT_DIMS = 0x0D3A-gl_BLUE_MAX_CLAMP_INGR :: GLenum-gl_BLUE_MAX_CLAMP_INGR = 0x8566-gl_INCR_WRAP :: GLenum-gl_INCR_WRAP = 0x8507-gl_VIRTUAL_PAGE_SIZE_X_AMD :: GLenum-gl_VIRTUAL_PAGE_SIZE_X_AMD = 0x9195-gl_BOOL_VEC3 :: GLenum-gl_BOOL_VEC3 = 0x8B58-gl_CON_17_ATI :: GLenum-gl_CON_17_ATI = 0x8952-gl_MAX_CUBE_MAP_TEXTURE_SIZE_OES :: GLenum-gl_MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C-gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT :: GLenum-gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB-gl_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI :: GLenum-gl_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1-gl_MINMAX :: GLenum-gl_MINMAX = 0x802E-gl_CONSTANT_BORDER_HP :: GLenum-gl_CONSTANT_BORDER_HP = 0x8151-gl_SRGB_WRITE :: GLenum-gl_SRGB_WRITE = 0x8298-gl_MAX_TEXTURE_BUFFER_SIZE_ARB :: GLenum-gl_MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV :: GLenum-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856-gl_DECAL :: GLenum-gl_DECAL = 0x2101-gl_REG_7_ATI :: GLenum-gl_REG_7_ATI = 0x8928-gl_TESS_GEN_SPACING_EXT :: GLenum-gl_TESS_GEN_SPACING_EXT = 0x8E77-gl_ELEMENT_ARRAY_LENGTH_NV :: GLenum-gl_ELEMENT_ARRAY_LENGTH_NV = 0x8F33-gl_MATRIX31_ARB :: GLenum-gl_MATRIX31_ARB = 0x88DF-gl_TRANSFORM_FEEDBACK_VARYING :: GLenum-gl_TRANSFORM_FEEDBACK_VARYING = 0x92F4-gl_VERTEX_ATTRIB_ARRAY_SIZE :: GLenum-gl_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623-gl_NOTEQUAL :: GLenum-gl_NOTEQUAL = 0x0205-gl_READ_PIXELS_TYPE :: GLenum-gl_READ_PIXELS_TYPE = 0x828E-gl_MODELVIEW_STACK_DEPTH :: GLenum-gl_MODELVIEW_STACK_DEPTH = 0x0BA3-gl_COMPRESSED_RGBA_ASTC_6x6x5_OES :: GLenum-gl_COMPRESSED_RGBA_ASTC_6x6x5_OES = 0x93C8-gl_COMBINE_EXT :: GLenum-gl_COMBINE_EXT = 0x8570-gl_NICEST :: GLenum-gl_NICEST = 0x1102-gl_MODELVIEW2_ARB :: GLenum-gl_MODELVIEW2_ARB = 0x8722-gl_UNPACK_IMAGE_HEIGHT :: GLenum-gl_UNPACK_IMAGE_HEIGHT = 0x806E-gl_TEXTURE_CUBE_MAP_ARRAY_ARB :: GLenum-gl_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009-gl_DRAW_BUFFER12 :: GLenum-gl_DRAW_BUFFER12 = 0x8831-gl_MAX_FRAGMENT_INTERPOLATION_OFFSET :: GLenum-gl_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C-gl_FRAMEBUFFER_DEFAULT_HEIGHT :: GLenum-gl_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311-gl_DT_BIAS_NV :: GLenum-gl_DT_BIAS_NV = 0x8717-gl_DSDT_NV :: GLenum-gl_DSDT_NV = 0x86F5-gl_IMAGE_CUBE_MAP_ARRAY :: GLenum-gl_IMAGE_CUBE_MAP_ARRAY = 0x9054-gl_STENCIL_INDEX4 :: GLenum-gl_STENCIL_INDEX4 = 0x8D47-gl_ROUND_NV :: GLenum-gl_ROUND_NV = 0x90A4-gl_Y_EXT :: GLenum-gl_Y_EXT = 0x87D6-gl_PATH_DASH_CAPS_NV :: GLenum-gl_PATH_DASH_CAPS_NV = 0x907B-gl_TEXTURE_PRIORITY :: GLenum-gl_TEXTURE_PRIORITY = 0x8066-gl_TEXTURE_4D_BINDING_SGIS :: GLenum-gl_TEXTURE_4D_BINDING_SGIS = 0x814F-gl_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD :: GLenum-gl_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = 0x914C-gl_CULL_MODES_NV :: GLenum-gl_CULL_MODES_NV = 0x86E0-gl_VERTEX_ATTRIB_MAP2_SIZE_APPLE :: GLenum-gl_VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06-gl_REFERENCED_BY_GEOMETRY_SHADER_EXT :: GLenum-gl_REFERENCED_BY_GEOMETRY_SHADER_EXT = 0x9309-gl_MODELVIEW_MATRIX :: GLenum-gl_MODELVIEW_MATRIX = 0x0BA6-gl_VIDEO_BUFFER_NV :: GLenum-gl_VIDEO_BUFFER_NV = 0x9020-gl_TEXTURE12 :: GLenum-gl_TEXTURE12 = 0x84CC-gl_COLORBURN_NV :: GLenum-gl_COLORBURN_NV = 0x929A-gl_COLOR_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898-gl_READ_BUFFER_EXT :: GLenum-gl_READ_BUFFER_EXT = 0x0C02-gl_RENDERBUFFER_RED_SIZE_OES :: GLenum-gl_RENDERBUFFER_RED_SIZE_OES = 0x8D50-gl_TEXTURE_SHARED_SIZE :: GLenum-gl_TEXTURE_SHARED_SIZE = 0x8C3F-gl_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS :: GLenum-gl_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355-gl_ALL_SHADER_BITS_EXT :: GLenum-gl_ALL_SHADER_BITS_EXT = 0xFFFFFFFF-gl_PERFQUERY_SINGLE_CONTEXT_INTEL :: GLenum-gl_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000-gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT :: GLenum-gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82-gl_PERFMON_RESULT_AMD :: GLenum-gl_PERFMON_RESULT_AMD = 0x8BC6-gl_GUILTY_CONTEXT_RESET :: GLenum-gl_GUILTY_CONTEXT_RESET = 0x8253-gl_PREVIOUS :: GLenum-gl_PREVIOUS = 0x8578-gl_UNSIGNED_INT16_VEC3_NV :: GLenum-gl_UNSIGNED_INT16_VEC3_NV = 0x8FF2-gl_VERTEX_ATTRIB_MAP1_APPLE :: GLenum-gl_VERTEX_ATTRIB_MAP1_APPLE = 0x8A00-gl_LIGHT3 :: GLenum-gl_LIGHT3 = 0x4003-gl_TESS_EVALUATION_SUBROUTINE_UNIFORM :: GLenum-gl_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0-gl_DUAL_INTENSITY8_SGIS :: GLenum-gl_DUAL_INTENSITY8_SGIS = 0x8119-gl_PARAMETER_BUFFER_BINDING_ARB :: GLenum-gl_PARAMETER_BUFFER_BINDING_ARB = 0x80EF-gl_CURRENT_SECONDARY_COLOR :: GLenum-gl_CURRENT_SECONDARY_COLOR = 0x8459-gl_RENDERBUFFER_ALPHA_SIZE :: GLenum-gl_RENDERBUFFER_ALPHA_SIZE = 0x8D53-gl_DUAL_INTENSITY12_SGIS :: GLenum-gl_DUAL_INTENSITY12_SGIS = 0x811A-gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING :: GLenum-gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A-gl_OP_MAX_EXT :: GLenum-gl_OP_MAX_EXT = 0x878A-gl_EDGE_FLAG_ARRAY_EXT :: GLenum-gl_EDGE_FLAG_ARRAY_EXT = 0x8079-gl_COLOR_TABLE_LUMINANCE_SIZE :: GLenum-gl_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE-gl_FOG_COORD_ARRAY_ADDRESS_NV :: GLenum-gl_FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28-gl_COPY :: GLenum-gl_COPY = 0x1503-gl_DRAW_BUFFER2_NV :: GLenum-gl_DRAW_BUFFER2_NV = 0x8827-gl_SAMPLER_BINDING :: GLenum-gl_SAMPLER_BINDING = 0x8919-gl_COPY_WRITE_BUFFER :: GLenum-gl_COPY_WRITE_BUFFER = 0x8F37-gl_PIXEL_UNPACK_BUFFER :: GLenum-gl_PIXEL_UNPACK_BUFFER = 0x88EC-gl_VIEW_CLASS_S3TC_DXT1_RGBA :: GLenum-gl_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD-gl_DRAW_FRAMEBUFFER_APPLE :: GLenum-gl_DRAW_FRAMEBUFFER_APPLE = 0x8CA9-gl_PIXEL_MAP_A_TO_A_SIZE :: GLenum-gl_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9-gl_EDGE_FLAG :: GLenum-gl_EDGE_FLAG = 0x0B43-gl_CLIP_DISTANCE2 :: GLenum-gl_CLIP_DISTANCE2 = 0x3002-gl_TEXTURE_GEN_MODE :: GLenum-gl_TEXTURE_GEN_MODE = 0x2500-gl_HALF_BIAS_NORMAL_NV :: GLenum-gl_HALF_BIAS_NORMAL_NV = 0x853A-gl_RESAMPLE_ZERO_FILL_SGIX :: GLenum-gl_RESAMPLE_ZERO_FILL_SGIX = 0x842F-gl_OUTPUT_TEXTURE_COORD12_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9-gl_UNSIGNED_SHORT_8_8_REV_MESA :: GLenum-gl_UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB-gl_PALETTE8_RGBA8_OES :: GLenum-gl_PALETTE8_RGBA8_OES = 0x8B96-gl_TEXTURE_4D_SGIS :: GLenum-gl_TEXTURE_4D_SGIS = 0x8134-gl_PIXEL_PACK_BUFFER_EXT :: GLenum-gl_PIXEL_PACK_BUFFER_EXT = 0x88EB-gl_MAP_ATTRIB_U_ORDER_NV :: GLenum-gl_MAP_ATTRIB_U_ORDER_NV = 0x86C3-gl_FUNC_SUBTRACT :: GLenum-gl_FUNC_SUBTRACT = 0x800A-gl_PIXEL_SUBSAMPLE_4444_SGIX :: GLenum-gl_PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2-gl_TEXTURE_CUBE_MAP_NEGATIVE_Y :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518-gl_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT :: GLenum-gl_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D-gl_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT :: GLenum-gl_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = 0x90CD-gl_DYNAMIC_COPY :: GLenum-gl_DYNAMIC_COPY = 0x88EA-gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A-gl_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT :: GLenum-gl_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3-gl_PROGRAM_LENGTH_ARB :: GLenum-gl_PROGRAM_LENGTH_ARB = 0x8627-gl_MODELVIEW14_ARB :: GLenum-gl_MODELVIEW14_ARB = 0x872E-gl_ITALIC_BIT_NV :: GLenum-gl_ITALIC_BIT_NV = 0x02-gl_OR_INVERTED :: GLenum-gl_OR_INVERTED = 0x150D-gl_CLIP_NEAR_HINT_PGI :: GLenum-gl_CLIP_NEAR_HINT_PGI = 0x1A220-gl_COVERAGE_EDGE_FRAGMENTS_NV :: GLenum-gl_COVERAGE_EDGE_FRAGMENTS_NV = 0x8ED6-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3-gl_PROGRAM_BINARY_LENGTH_OES :: GLenum-gl_PROGRAM_BINARY_LENGTH_OES = 0x8741-gl_DRAW_BUFFER8_ARB :: GLenum-gl_DRAW_BUFFER8_ARB = 0x882D-gl_DRAW_FRAMEBUFFER_EXT :: GLenum-gl_DRAW_FRAMEBUFFER_EXT = 0x8CA9-gl_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET :: GLenum-gl_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9-gl_SYNC_CL_EVENT_ARB :: GLenum-gl_SYNC_CL_EVENT_ARB = 0x8240-gl_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE :: GLenum-gl_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8-gl_MAX_VERTEX_HINT_PGI :: GLenum-gl_MAX_VERTEX_HINT_PGI = 0x1A22D-gl_UNPACK_IMAGE_HEIGHT_EXT :: GLenum-gl_UNPACK_IMAGE_HEIGHT_EXT = 0x806E-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV :: GLenum-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = 0x8C4F-gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214-gl_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB :: GLenum-gl_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49-gl_STENCIL_BACK_REF :: GLenum-gl_STENCIL_BACK_REF = 0x8CA3-gl_CLAMP_READ_COLOR_ARB :: GLenum-gl_CLAMP_READ_COLOR_ARB = 0x891C-gl_INTERNALFORMAT_RED_SIZE :: GLenum-gl_INTERNALFORMAT_RED_SIZE = 0x8271-gl_PATCH_DEFAULT_INNER_LEVEL_EXT :: GLenum-gl_PATCH_DEFAULT_INNER_LEVEL_EXT = 0x8E73-gl_OUTPUT_TEXTURE_COORD27_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8-gl_QUERY_STENCIL_FAIL_EVENT_BIT_AMD :: GLenum-gl_QUERY_STENCIL_FAIL_EVENT_BIT_AMD = 0x00000004-gl_MAX_COMPUTE_TEXTURE_IMAGE_UNITS :: GLenum-gl_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC-gl_LOCATION :: GLenum-gl_LOCATION = 0x930E-gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS :: GLenum-gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82-gl_POST_COLOR_MATRIX_GREEN_SCALE :: GLenum-gl_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9-gl_POST_COLOR_MATRIX_ALPHA_SCALE :: GLenum-gl_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7-gl_HORIZONTAL_LINE_TO_NV :: GLenum-gl_HORIZONTAL_LINE_TO_NV = 0x06-gl_MAX_FRAGMENT_INPUT_COMPONENTS :: GLenum-gl_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125-gl_PROGRAM_STRING_ARB :: GLenum-gl_PROGRAM_STRING_ARB = 0x8628-gl_EDGE_FLAG_ARRAY_ADDRESS_NV :: GLenum-gl_EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26-gl_VENDOR :: GLenum-gl_VENDOR = 0x1F00-gl_CLIPPING_INPUT_PRIMITIVES_ARB :: GLenum-gl_CLIPPING_INPUT_PRIMITIVES_ARB = 0x82F6-gl_TEXTURE_RENDERBUFFER_NV :: GLenum-gl_TEXTURE_RENDERBUFFER_NV = 0x8E55-gl_ELEMENT_ARRAY_ADDRESS_NV :: GLenum-gl_ELEMENT_ARRAY_ADDRESS_NV = 0x8F29-gl_LOCAL_EXT :: GLenum-gl_LOCAL_EXT = 0x87C4-gl_GEOMETRY_SHADER_INVOCATIONS :: GLenum-gl_GEOMETRY_SHADER_INVOCATIONS = 0x887F-gl_INT_VEC4_ARB :: GLenum-gl_INT_VEC4_ARB = 0x8B55-gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217-gl_SEPARATE_ATTRIBS_NV :: GLenum-gl_SEPARATE_ATTRIBS_NV = 0x8C8D-gl_FLOAT_MAT4_ARB :: GLenum-gl_FLOAT_MAT4_ARB = 0x8B5C-gl_COLOR_ATTACHMENT_EXT :: GLenum-gl_COLOR_ATTACHMENT_EXT = 0x90F0-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0-gl_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB :: GLenum-gl_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841-gl_SHININESS :: GLenum-gl_SHININESS = 0x1601-gl_INTERPOLATE_EXT :: GLenum-gl_INTERPOLATE_EXT = 0x8575-gl_TRANSFORM_FEEDBACK :: GLenum-gl_TRANSFORM_FEEDBACK = 0x8E22-gl_TEXTURE_DEPTH_QCOM :: GLenum-gl_TEXTURE_DEPTH_QCOM = 0x8BD4-gl_DOUBLE_MAT4x2 :: GLenum-gl_DOUBLE_MAT4x2 = 0x8F4D-gl_NORMAL_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897-gl_PIXEL_TEX_GEN_SGIX :: GLenum-gl_PIXEL_TEX_GEN_SGIX = 0x8139-gl_TRANSFORM_FEEDBACK_BUFFER_START :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84-gl_GLYPH_WIDTH_BIT_NV :: GLenum-gl_GLYPH_WIDTH_BIT_NV = 0x01-gl_STENCIL_ATTACHMENT_EXT :: GLenum-gl_STENCIL_ATTACHMENT_EXT = 0x8D20-gl_VERTEX_ARRAY_RANGE_POINTER_APPLE :: GLenum-gl_VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521-gl_VERTEX_WEIGHT_ARRAY_TYPE_EXT :: GLenum-gl_VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E-gl_MATRIX4_NV :: GLenum-gl_MATRIX4_NV = 0x8634-gl_READ_FRAMEBUFFER_ANGLE :: GLenum-gl_READ_FRAMEBUFFER_ANGLE = 0x8CA8-gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS :: GLenum-gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS = 0x919A-gl_VERTEX_ARRAY_POINTER_EXT :: GLenum-gl_VERTEX_ARRAY_POINTER_EXT = 0x808E-gl_RELATIVE_ROUNDED_RECT_NV :: GLenum-gl_RELATIVE_ROUNDED_RECT_NV = 0xE9-gl_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV :: GLenum-gl_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11-gl_MAX_PROGRAM_GENERIC_ATTRIBS_NV :: GLenum-gl_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5-gl_TEXTURE_MEMORY_LAYOUT_INTEL :: GLenum-gl_TEXTURE_MEMORY_LAYOUT_INTEL = 0x83FF-gl_REG_0_ATI :: GLenum-gl_REG_0_ATI = 0x8921-gl_VERTEX_ATTRIB_ARRAY15_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY15_NV = 0x865F-gl_RGB12_EXT :: GLenum-gl_RGB12_EXT = 0x8053-gl_FRAGMENT_LIGHT6_SGIX :: GLenum-gl_FRAGMENT_LIGHT6_SGIX = 0x8412-gl_MAX_PROGRAM_ATTRIB_COMPONENTS_NV :: GLenum-gl_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908-gl_QUERY_ALL_EVENT_BITS_AMD :: GLenum-gl_QUERY_ALL_EVENT_BITS_AMD = 0xFFFFFFFF-gl_INTENSITY_FLOAT32_APPLE :: GLenum-gl_INTENSITY_FLOAT32_APPLE = 0x8817-gl_LIST_INDEX :: GLenum-gl_LIST_INDEX = 0x0B33-gl_COMPRESSED_RGB_PVRTC_2BPPV1_IMG :: GLenum-gl_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01-gl_REG_18_ATI :: GLenum-gl_REG_18_ATI = 0x8933-gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT :: GLenum-gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9061-gl_COMPILE :: GLenum-gl_COMPILE = 0x1300-gl_VIEW_CLASS_128_BITS :: GLenum-gl_VIEW_CLASS_128_BITS = 0x82C4-gl_4X_BIT_ATI :: GLenum-gl_4X_BIT_ATI = 0x00000002-gl_CLIENT_PIXEL_STORE_BIT :: GLenum-gl_CLIENT_PIXEL_STORE_BIT = 0x00000001-gl_OPERAND2_RGB :: GLenum-gl_OPERAND2_RGB = 0x8592-gl_MINMAX_FORMAT_EXT :: GLenum-gl_MINMAX_FORMAT_EXT = 0x802F-gl_UNSIGNED_INT_IMAGE_1D :: GLenum-gl_UNSIGNED_INT_IMAGE_1D = 0x9062-gl_INSTRUMENT_MEASUREMENTS_SGIX :: GLenum-gl_INSTRUMENT_MEASUREMENTS_SGIX = 0x8181-gl_VALIDATE_STATUS :: GLenum-gl_VALIDATE_STATUS = 0x8B83-gl_NORMAL_ARRAY_COUNT_EXT :: GLenum-gl_NORMAL_ARRAY_COUNT_EXT = 0x8080-gl_PATH_STENCIL_REF_NV :: GLenum-gl_PATH_STENCIL_REF_NV = 0x90B8-gl_DRAW_BUFFER5_NV :: GLenum-gl_DRAW_BUFFER5_NV = 0x882A-gl_COMPRESSED_RGBA_ARB :: GLenum-gl_COMPRESSED_RGBA_ARB = 0x84EE-gl_MAX_MULTISAMPLE_COVERAGE_MODES_NV :: GLenum-gl_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11-gl_MAX_3D_TEXTURE_SIZE :: GLenum-gl_MAX_3D_TEXTURE_SIZE = 0x8073-gl_FRAGMENT_NORMAL_EXT :: GLenum-gl_FRAGMENT_NORMAL_EXT = 0x834A-gl_SHADER_KHR :: GLenum-gl_SHADER_KHR = 0x82E1-gl_TEXTURE_DEPTH_TYPE :: GLenum-gl_TEXTURE_DEPTH_TYPE = 0x8C16-gl_VERTEX_PROGRAM_CALLBACK_FUNC_MESA :: GLenum-gl_VERTEX_PROGRAM_CALLBACK_FUNC_MESA = 0x8BB6-gl_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE :: GLenum-gl_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0-gl_TEXTURE_2D_STACK_BINDING_MESAX :: GLenum-gl_TEXTURE_2D_STACK_BINDING_MESAX = 0x875E-gl_NUM_COMPRESSED_TEXTURE_FORMATS_ARB :: GLenum-gl_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2-gl_INT_SAMPLER_2D_EXT :: GLenum-gl_INT_SAMPLER_2D_EXT = 0x8DCA-gl_RGBA4_S3TC :: GLenum-gl_RGBA4_S3TC = 0x83A3-gl_MAX_SPOT_EXPONENT_NV :: GLenum-gl_MAX_SPOT_EXPONENT_NV = 0x8505-gl_NEGATIVE_X_EXT :: GLenum-gl_NEGATIVE_X_EXT = 0x87D9-gl_SYNC_X11_FENCE_EXT :: GLenum-gl_SYNC_X11_FENCE_EXT = 0x90E1-gl_OP_DOT3_EXT :: GLenum-gl_OP_DOT3_EXT = 0x8784-gl_LUMINANCE8_SNORM :: GLenum-gl_LUMINANCE8_SNORM = 0x9015-gl_SAMPLE_SHADING_ARB :: GLenum-gl_SAMPLE_SHADING_ARB = 0x8C36-gl_CONVOLUTION_2D_EXT :: GLenum-gl_CONVOLUTION_2D_EXT = 0x8011-gl_MAP2_TEXTURE_COORD_2 :: GLenum-gl_MAP2_TEXTURE_COORD_2 = 0x0DB4-gl_SHADER_IMAGE_LOAD :: GLenum-gl_SHADER_IMAGE_LOAD = 0x82A4-gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85-gl_TEXTURE_VIEW_NUM_LEVELS_EXT :: GLenum-gl_TEXTURE_VIEW_NUM_LEVELS_EXT = 0x82DC-gl_ACTIVE_UNIFORMS :: GLenum-gl_ACTIVE_UNIFORMS = 0x8B86-gl_ACCUM_GREEN_BITS :: GLenum-gl_ACCUM_GREEN_BITS = 0x0D59-gl_TESS_EVALUATION_PROGRAM_NV :: GLenum-gl_TESS_EVALUATION_PROGRAM_NV = 0x891F-gl_COMPRESSED_SLUMINANCE :: GLenum-gl_COMPRESSED_SLUMINANCE = 0x8C4A-gl_COLOR_ATTACHMENT14_EXT :: GLenum-gl_COLOR_ATTACHMENT14_EXT = 0x8CEE-gl_VERTEX23_BIT_PGI :: GLenum-gl_VERTEX23_BIT_PGI = 0x00000004-gl_BUMP_ROT_MATRIX_ATI :: GLenum-gl_BUMP_ROT_MATRIX_ATI = 0x8775-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56-gl_MAX_PALETTE_MATRICES_OES :: GLenum-gl_MAX_PALETTE_MATRICES_OES = 0x8842-gl_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV :: GLenum-gl_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036-gl_CONVOLUTION_BORDER_MODE_EXT :: GLenum-gl_CONVOLUTION_BORDER_MODE_EXT = 0x8013-gl_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE :: GLenum-gl_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05-gl_INTENSITY32I_EXT :: GLenum-gl_INTENSITY32I_EXT = 0x8D85-gl_RASTERIZER_DISCARD_EXT :: GLenum-gl_RASTERIZER_DISCARD_EXT = 0x8C89-gl_MAX_SAMPLES_EXT :: GLenum-gl_MAX_SAMPLES_EXT = 0x8D57-gl_DRAW_BUFFER10_EXT :: GLenum-gl_DRAW_BUFFER10_EXT = 0x882F-gl_INT_IMAGE_2D :: GLenum-gl_INT_IMAGE_2D = 0x9058-gl_PROVOKING_VERTEX :: GLenum-gl_PROVOKING_VERTEX = 0x8E4F-gl_UNPACK_RESAMPLE_SGIX :: GLenum-gl_UNPACK_RESAMPLE_SGIX = 0x842D-gl_SAMPLE_POSITION_NV :: GLenum-gl_SAMPLE_POSITION_NV = 0x8E50-gl_MAX_PROGRAM_MATRICES_ARB :: GLenum-gl_MAX_PROGRAM_MATRICES_ARB = 0x862F-gl_SHADER_STORAGE_BUFFER_BINDING :: GLenum-gl_SHADER_STORAGE_BUFFER_BINDING = 0x90D3-gl_TEXTURE0 :: GLenum-gl_TEXTURE0 = 0x84C0-gl_DSDT_MAG_VIB_NV :: GLenum-gl_DSDT_MAG_VIB_NV = 0x86F7-gl_DOUBLE_MAT4x3 :: GLenum-gl_DOUBLE_MAT4x3 = 0x8F4E-gl_TEXTURE27_ARB :: GLenum-gl_TEXTURE27_ARB = 0x84DB-gl_ACTIVE_ATOMIC_COUNTER_BUFFERS :: GLenum-gl_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9-gl_LUMINANCE32I_EXT :: GLenum-gl_LUMINANCE32I_EXT = 0x8D86-gl_SAMPLER_KHR :: GLenum-gl_SAMPLER_KHR = 0x82E6-gl_MITER_REVERT_NV :: GLenum-gl_MITER_REVERT_NV = 0x90A7-gl_RGB32UI_EXT :: GLenum-gl_RGB32UI_EXT = 0x8D71-gl_DUAL_LUMINANCE12_SGIS :: GLenum-gl_DUAL_LUMINANCE12_SGIS = 0x8116-gl_BOOL_VEC2 :: GLenum-gl_BOOL_VEC2 = 0x8B57-gl_COLOR_ATTACHMENT1_NV :: GLenum-gl_COLOR_ATTACHMENT1_NV = 0x8CE1-gl_MAX_CONVOLUTION_WIDTH :: GLenum-gl_MAX_CONVOLUTION_WIDTH = 0x801A-gl_DRAW_BUFFER14_NV :: GLenum-gl_DRAW_BUFFER14_NV = 0x8833-gl_BLEND_DST_RGB_EXT :: GLenum-gl_BLEND_DST_RGB_EXT = 0x80C8-gl_LUMINANCE12_ALPHA12_EXT :: GLenum-gl_LUMINANCE12_ALPHA12_EXT = 0x8047-gl_DEPTH_BOUNDS_EXT :: GLenum-gl_DEPTH_BOUNDS_EXT = 0x8891-gl_CIRCULAR_CCW_ARC_TO_NV :: GLenum-gl_CIRCULAR_CCW_ARC_TO_NV = 0xF8-gl_COMPRESSED_LUMINANCE_ALPHA :: GLenum-gl_COMPRESSED_LUMINANCE_ALPHA = 0x84EB-gl_SAMPLE_COVERAGE_VALUE_ARB :: GLenum-gl_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA-gl_DEPTH_STENCIL_TO_RGBA_NV :: GLenum-gl_DEPTH_STENCIL_TO_RGBA_NV = 0x886E-gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING :: GLenum-gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C-gl_NAME_LENGTH :: GLenum-gl_NAME_LENGTH = 0x92F9-gl_STENCIL_TEST_TWO_SIDE_EXT :: GLenum-gl_STENCIL_TEST_TWO_SIDE_EXT = 0x8910-gl_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES :: GLenum-gl_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D-gl_VERTEX_ATTRIB_ARRAY_STRIDE_ARB :: GLenum-gl_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624-gl_OUTPUT_TEXTURE_COORD30_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB-gl_MAX_PROGRAM_SUBROUTINE_NUM_NV :: GLenum-gl_MAX_PROGRAM_SUBROUTINE_NUM_NV = 0x8F45-gl_MULTIPLY_NV :: GLenum-gl_MULTIPLY_NV = 0x9294-gl_TEXTURE19 :: GLenum-gl_TEXTURE19 = 0x84D3-gl_INVERT_OVG_NV :: GLenum-gl_INVERT_OVG_NV = 0x92B4-gl_IMPLEMENTATION_COLOR_READ_FORMAT_OES :: GLenum-gl_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B-gl_NEAREST_CLIPMAP_LINEAR_SGIX :: GLenum-gl_NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E-gl_VARIABLE_A_NV :: GLenum-gl_VARIABLE_A_NV = 0x8523-gl_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT :: GLenum-gl_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71-gl_TEXTURE_2D_MULTISAMPLE :: GLenum-gl_TEXTURE_2D_MULTISAMPLE = 0x9100-gl_DEBUG_SOURCE_THIRD_PARTY :: GLenum-gl_DEBUG_SOURCE_THIRD_PARTY = 0x8249-gl_DRAW_BUFFER7_ARB :: GLenum-gl_DRAW_BUFFER7_ARB = 0x882C-gl_MAX_DRAW_BUFFERS :: GLenum-gl_MAX_DRAW_BUFFERS = 0x8824-gl_MAX_SERVER_WAIT_TIMEOUT :: GLenum-gl_MAX_SERVER_WAIT_TIMEOUT = 0x9111-gl_COMPRESSED_SIGNED_RG11_EAC :: GLenum-gl_COMPRESSED_SIGNED_RG11_EAC = 0x9273-gl_VERTEX_PROGRAM_POINT_SIZE :: GLenum-gl_VERTEX_PROGRAM_POINT_SIZE = 0x8642-gl_STENCIL_PASS_DEPTH_PASS :: GLenum-gl_STENCIL_PASS_DEPTH_PASS = 0x0B96-gl_RENDERBUFFER_STENCIL_SIZE :: GLenum-gl_RENDERBUFFER_STENCIL_SIZE = 0x8D55-gl_TEXTURE_BINDING_2D :: GLenum-gl_TEXTURE_BINDING_2D = 0x8069-gl_DATA_BUFFER_AMD :: GLenum-gl_DATA_BUFFER_AMD = 0x9151-gl_DEBUG_CATEGORY_APPLICATION_AMD :: GLenum-gl_DEBUG_CATEGORY_APPLICATION_AMD = 0x914F-gl_ASYNC_HISTOGRAM_SGIX :: GLenum-gl_ASYNC_HISTOGRAM_SGIX = 0x832C-gl_UNPACK_LSB_FIRST :: GLenum-gl_UNPACK_LSB_FIRST = 0x0CF1-gl_UNSIGNED_INT_SAMPLER_CUBE_EXT :: GLenum-gl_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4-gl_DEPTH_CLAMP_FAR_AMD :: GLenum-gl_DEPTH_CLAMP_FAR_AMD = 0x901F-gl_TRANSFORM_FEEDBACK_BUFFER_MODE_NV :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F-gl_VERTEX_ATTRIB_ARRAY_STRIDE :: GLenum-gl_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624-gl_UNSIGNED_INT16_VEC4_NV :: GLenum-gl_UNSIGNED_INT16_VEC4_NV = 0x8FF3-gl_OBJECT_BUFFER_SIZE_ATI :: GLenum-gl_OBJECT_BUFFER_SIZE_ATI = 0x8764-gl_YCRCB_444_SGIX :: GLenum-gl_YCRCB_444_SGIX = 0x81BC-gl_LOSE_CONTEXT_ON_RESET_KHR :: GLenum-gl_LOSE_CONTEXT_ON_RESET_KHR = 0x8252-gl_TEXTURE_VIEW_NUM_LAYERS :: GLenum-gl_TEXTURE_VIEW_NUM_LAYERS = 0x82DE-gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB :: GLenum-gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D-gl_PERFQUERY_COUNTER_DATA_BOOL32_INTEL :: GLenum-gl_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC-gl_OBJECT_DELETE_STATUS_ARB :: GLenum-gl_OBJECT_DELETE_STATUS_ARB = 0x8B80-gl_SQUARE_NV :: GLenum-gl_SQUARE_NV = 0x90A3-gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT :: GLenum-gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81-gl_DEBUG_SEVERITY_NOTIFICATION_KHR :: GLenum-gl_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B-gl_EYE_LINEAR_NV :: GLenum-gl_EYE_LINEAR_NV = 0x2400-gl_REG_16_ATI :: GLenum-gl_REG_16_ATI = 0x8931-gl_LUMINANCE_ALPHA32UI_EXT :: GLenum-gl_LUMINANCE_ALPHA32UI_EXT = 0x8D75-gl_OUTPUT_TEXTURE_COORD31_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC-gl_COMPRESSED_RG_RGTC2 :: GLenum-gl_COMPRESSED_RG_RGTC2 = 0x8DBD-gl_FLOAT_MAT3 :: GLenum-gl_FLOAT_MAT3 = 0x8B5B-gl_INDEX_ARRAY_POINTER :: GLenum-gl_INDEX_ARRAY_POINTER = 0x8091-gl_FOG_COORD :: GLenum-gl_FOG_COORD = 0x8451-gl_DRAW_BUFFER13 :: GLenum-gl_DRAW_BUFFER13 = 0x8832-gl_SCALED_RESOLVE_NICEST_EXT :: GLenum-gl_SCALED_RESOLVE_NICEST_EXT = 0x90BB-gl_QUERY_RESULT_AVAILABLE :: GLenum-gl_QUERY_RESULT_AVAILABLE = 0x8867-gl_UNPACK_SUBSAMPLE_RATE_SGIX :: GLenum-gl_UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1-gl_3_BYTES_NV :: GLenum-gl_3_BYTES_NV = 0x1408-gl_CLEAR :: GLenum-gl_CLEAR = 0x1500-gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT :: GLenum-gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD-gl_R8UI :: GLenum-gl_R8UI = 0x8232-gl_OFFSET_TEXTURE_2D_MATRIX_NV :: GLenum-gl_OFFSET_TEXTURE_2D_MATRIX_NV = 0x86E1-gl_BGRA_INTEGER :: GLenum-gl_BGRA_INTEGER = 0x8D9B-gl_MAX_ARRAY_TEXTURE_LAYERS :: GLenum-gl_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF-gl_COMPRESSED_RGB_ARB :: GLenum-gl_COMPRESSED_RGB_ARB = 0x84ED-gl_FOG_COORDINATE_ARRAY_POINTER_EXT :: GLenum-gl_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456-gl_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT :: GLenum-gl_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = 0x00000020-gl_TEXTURE_MAG_FILTER :: GLenum-gl_TEXTURE_MAG_FILTER = 0x2800-gl_DEPTH_COMPONENT32 :: GLenum-gl_DEPTH_COMPONENT32 = 0x81A7-gl_VIEW_CLASS_S3TC_DXT1_RGB :: GLenum-gl_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC-gl_FRONT_RIGHT :: GLenum-gl_FRONT_RIGHT = 0x0401-gl_HISTOGRAM_WIDTH :: GLenum-gl_HISTOGRAM_WIDTH = 0x8026-gl_SAMPLER_CUBE_MAP_ARRAY_ARB :: GLenum-gl_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C-gl_WEIGHT_ARRAY_STRIDE_OES :: GLenum-gl_WEIGHT_ARRAY_STRIDE_OES = 0x86AA-gl_PIXEL_PACK_BUFFER_ARB :: GLenum-gl_PIXEL_PACK_BUFFER_ARB = 0x88EB-gl_DOT_PRODUCT_PASS_THROUGH_NV :: GLenum-gl_DOT_PRODUCT_PASS_THROUGH_NV = 0x885B-gl_COMPRESSED_RG11_EAC :: GLenum-gl_COMPRESSED_RG11_EAC = 0x9272-gl_SRGB_DECODE_ARB :: GLenum-gl_SRGB_DECODE_ARB = 0x8299-gl_OP_SUB_EXT :: GLenum-gl_OP_SUB_EXT = 0x8796-gl_SLIM12S_SGIX :: GLenum-gl_SLIM12S_SGIX = 0x831F-gl_SECONDARY_COLOR_NV :: GLenum-gl_SECONDARY_COLOR_NV = 0x852D-gl_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS :: GLenum-gl_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA-gl_MAP1_VERTEX_3 :: GLenum-gl_MAP1_VERTEX_3 = 0x0D97-gl_RELATIVE_ROUNDED_RECT8_NV :: GLenum-gl_RELATIVE_ROUNDED_RECT8_NV = 0xEF-gl_PALETTE4_R5_G6_B5_OES :: GLenum-gl_PALETTE4_R5_G6_B5_OES = 0x8B92-gl_UNSIGNED_INT8_NV :: GLenum-gl_UNSIGNED_INT8_NV = 0x8FEC-gl_CURRENT_MATRIX_STACK_DEPTH_ARB :: GLenum-gl_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640-gl_PIXEL_MODE_BIT :: GLenum-gl_PIXEL_MODE_BIT = 0x00000020-gl_FONT_UNINTELLIGIBLE_NV :: GLenum-gl_FONT_UNINTELLIGIBLE_NV = 0x936B-gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6-gl_LUMINANCE8UI_EXT :: GLenum-gl_LUMINANCE8UI_EXT = 0x8D80-gl_HILO16_NV :: GLenum-gl_HILO16_NV = 0x86F8-gl_MAP2_VERTEX_ATTRIB8_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678-gl_ATTACHED_SHADERS :: GLenum-gl_ATTACHED_SHADERS = 0x8B85-gl_OBJECT_POINT_SGIS :: GLenum-gl_OBJECT_POINT_SGIS = 0x81F5-gl_TEXTURE_CUBE_MAP_SEAMLESS :: GLenum-gl_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F-gl_COLOR_ATTACHMENT0 :: GLenum-gl_COLOR_ATTACHMENT0 = 0x8CE0-gl_POST_CONVOLUTION_ALPHA_BIAS_EXT :: GLenum-gl_POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023-gl_SAMPLE_PATTERN_SGIS :: GLenum-gl_SAMPLE_PATTERN_SGIS = 0x80AC-gl_COPY_PIXEL_TOKEN :: GLenum-gl_COPY_PIXEL_TOKEN = 0x0706-gl_BUFFER_SIZE_ARB :: GLenum-gl_BUFFER_SIZE_ARB = 0x8764-gl_DEPTH_BOUNDS_TEST_EXT :: GLenum-gl_DEPTH_BOUNDS_TEST_EXT = 0x8890-gl_SAMPLE_POSITION :: GLenum-gl_SAMPLE_POSITION = 0x8E50-gl_FULL_STIPPLE_HINT_PGI :: GLenum-gl_FULL_STIPPLE_HINT_PGI = 0x1A219-gl_DEBUG_ASSERT_MESA :: GLenum-gl_DEBUG_ASSERT_MESA = 0x875B-gl_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB :: GLenum-gl_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A-gl_RENDERBUFFER_WIDTH_OES :: GLenum-gl_RENDERBUFFER_WIDTH_OES = 0x8D42-gl_FLOAT_RGBA16_NV :: GLenum-gl_FLOAT_RGBA16_NV = 0x888A-gl_MODELVIEW5_ARB :: GLenum-gl_MODELVIEW5_ARB = 0x8725-gl_VERSION :: GLenum-gl_VERSION = 0x1F02-gl_TEXTURE17_ARB :: GLenum-gl_TEXTURE17_ARB = 0x84D1-gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT :: GLenum-gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8A32-gl_MODELVIEW0_STACK_DEPTH_EXT :: GLenum-gl_MODELVIEW0_STACK_DEPTH_EXT = 0x0BA3-gl_OUTPUT_TEXTURE_COORD1_EXT :: GLenum-gl_OUTPUT_TEXTURE_COORD1_EXT = 0x879E-gl_REQUIRED_TEXTURE_IMAGE_UNITS_OES :: GLenum-gl_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68-gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX :: GLenum-gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408-gl_IMAGE_TRANSFORM_2D_HP :: GLenum-gl_IMAGE_TRANSFORM_2D_HP = 0x8161-gl_HSL_SATURATION_NV :: GLenum-gl_HSL_SATURATION_NV = 0x92AE-gl_UNSIGNED_SHORT_5_6_5_REV :: GLenum-gl_UNSIGNED_SHORT_5_6_5_REV = 0x8364-gl_LINEAR_CLIPMAP_NEAREST_SGIX :: GLenum-gl_LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F-gl_PREVIOUS_ARB :: GLenum-gl_PREVIOUS_ARB = 0x8578-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4-gl_PERFQUERY_COUNTER_DURATION_NORM_INTEL :: GLenum-gl_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1-gl_SLUMINANCE8_EXT :: GLenum-gl_SLUMINANCE8_EXT = 0x8C47-gl_RGBA16F_ARB :: GLenum-gl_RGBA16F_ARB = 0x881A-gl_PIXEL_UNPACK_BUFFER_ARB :: GLenum-gl_PIXEL_UNPACK_BUFFER_ARB = 0x88EC-gl_STENCIL_REF :: GLenum-gl_STENCIL_REF = 0x0B97-gl_TEXTURE_VIEW_MIN_LAYER_EXT :: GLenum-gl_TEXTURE_VIEW_MIN_LAYER_EXT = 0x82DD-gl_HISTOGRAM_RED_SIZE :: GLenum-gl_HISTOGRAM_RED_SIZE = 0x8028-gl_CLIP_PLANE1 :: GLenum-gl_CLIP_PLANE1 = 0x3001-gl_UNKNOWN_CONTEXT_RESET_ARB :: GLenum-gl_UNKNOWN_CONTEXT_RESET_ARB = 0x8255-gl_CMYK_EXT :: GLenum-gl_CMYK_EXT = 0x800C-gl_TEXTURE_COMPRESSED_BLOCK_SIZE :: GLenum-gl_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3-gl_RGBA8I :: GLenum-gl_RGBA8I = 0x8D8E-gl_TEXTURE29_ARB :: GLenum-gl_TEXTURE29_ARB = 0x84DD-gl_STENCIL_BUFFER_BIT2_QCOM :: GLenum-gl_STENCIL_BUFFER_BIT2_QCOM = 0x00040000-gl_RED_MIN_CLAMP_INGR :: GLenum-gl_RED_MIN_CLAMP_INGR = 0x8560-gl_ATC_RGBA_EXPLICIT_ALPHA_AMD :: GLenum-gl_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93-gl_ALL_COMPLETED_NV :: GLenum-gl_ALL_COMPLETED_NV = 0x84F2-gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE :: GLenum-gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5-gl_MATRIX10_ARB :: GLenum-gl_MATRIX10_ARB = 0x88CA-gl_MAP1_VERTEX_ATTRIB1_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661-gl_MAX_4D_TEXTURE_SIZE_SGIS :: GLenum-gl_MAX_4D_TEXTURE_SIZE_SGIS = 0x8138-gl_VIEW_CLASS_32_BITS :: GLenum-gl_VIEW_CLASS_32_BITS = 0x82C8-gl_TEXTURE7_ARB :: GLenum-gl_TEXTURE7_ARB = 0x84C7-gl_DEBUG_TYPE_PERFORMANCE_ARB :: GLenum-gl_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250-gl_ACTIVE_VARIABLES :: GLenum-gl_ACTIVE_VARIABLES = 0x9305-gl_SOURCE2_RGB_EXT :: GLenum-gl_SOURCE2_RGB_EXT = 0x8582-gl_PACK_INVERT_MESA :: GLenum-gl_PACK_INVERT_MESA = 0x8758-gl_QUERY_BY_REGION_WAIT_NV :: GLenum-gl_QUERY_BY_REGION_WAIT_NV = 0x8E15-gl_VERTEX_ID_SWIZZLE_AMD :: GLenum-gl_VERTEX_ID_SWIZZLE_AMD = 0x91A5-gl_SPRITE_TRANSLATION_SGIX :: GLenum-gl_SPRITE_TRANSLATION_SGIX = 0x814B-gl_RENDERBUFFER_HEIGHT :: GLenum-gl_RENDERBUFFER_HEIGHT = 0x8D43-gl_CUBIC_EXT :: GLenum-gl_CUBIC_EXT = 0x8334-gl_TEXTURE19_ARB :: GLenum-gl_TEXTURE19_ARB = 0x84D3-gl_T2F_N3F_V3F :: GLenum-gl_T2F_N3F_V3F = 0x2A2B-gl_ATOMIC_COUNTER_BARRIER_BIT_EXT :: GLenum-gl_ATOMIC_COUNTER_BARRIER_BIT_EXT = 0x00001000-gl_ARRAY_ELEMENT_LOCK_FIRST_EXT :: GLenum-gl_ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8-gl_PROGRAM_RESULT_COMPONENTS_NV :: GLenum-gl_PROGRAM_RESULT_COMPONENTS_NV = 0x8907-gl_MAX_RECTANGLE_TEXTURE_SIZE_ARB :: GLenum-gl_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8-gl_TRIANGLE_MESH_SUN :: GLenum-gl_TRIANGLE_MESH_SUN = 0x8615-gl_TEXTURE_WRAP_Q_SGIS :: GLenum-gl_TEXTURE_WRAP_Q_SGIS = 0x8137-gl_ATTRIB_ARRAY_SIZE_NV :: GLenum-gl_ATTRIB_ARRAY_SIZE_NV = 0x8623-gl_DEBUG_LOGGED_MESSAGES_AMD :: GLenum-gl_DEBUG_LOGGED_MESSAGES_AMD = 0x9145-gl_BOOL :: GLenum-gl_BOOL = 0x8B56-gl_MIN_LOD_WARNING_AMD :: GLenum-gl_MIN_LOD_WARNING_AMD = 0x919C-gl_PACK_SKIP_PIXELS :: GLenum-gl_PACK_SKIP_PIXELS = 0x0D04-gl_IMAGE_TEXEL_SIZE :: GLenum-gl_IMAGE_TEXEL_SIZE = 0x82A7-gl_SRC_ALPHA :: GLenum-gl_SRC_ALPHA = 0x0302-gl_DEPENDENT_HILO_TEXTURE_2D_NV :: GLenum-gl_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858-gl_FRAMEBUFFER_ATTACHMENT_LAYERED :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7-gl_PERFQUERY_COUNTER_DATA_UINT32_INTEL :: GLenum-gl_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1-gl_VERTEX_ARRAY_RANGE_LENGTH_NV :: GLenum-gl_VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E-gl_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS :: GLenum-gl_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9-gl_POST_CONVOLUTION_GREEN_SCALE :: GLenum-gl_POST_CONVOLUTION_GREEN_SCALE = 0x801D-gl_SEPARATE_ATTRIBS :: GLenum-gl_SEPARATE_ATTRIBS = 0x8C8D-gl_UNSIGNED_BYTE_3_3_2 :: GLenum-gl_UNSIGNED_BYTE_3_3_2 = 0x8032-gl_SCALAR_EXT :: GLenum-gl_SCALAR_EXT = 0x87BE-gl_POINT_SIZE_ARRAY_STRIDE_OES :: GLenum-gl_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B-gl_DOUBLE_MAT3x4 :: GLenum-gl_DOUBLE_MAT3x4 = 0x8F4C-gl_SRC0_RGB :: GLenum-gl_SRC0_RGB = 0x8580-gl_VIEW_CLASS_BPTC_UNORM :: GLenum-gl_VIEW_CLASS_BPTC_UNORM = 0x82D2-gl_SYNC_FLAGS :: GLenum-gl_SYNC_FLAGS = 0x9115-gl_TEXTURE_SWIZZLE_RGBA_EXT :: GLenum-gl_TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46-gl_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX :: GLenum-gl_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C-gl_TEXTURE29 :: GLenum-gl_TEXTURE29 = 0x84DD-gl_MEDIUM_INT :: GLenum-gl_MEDIUM_INT = 0x8DF4-gl_CURRENT_QUERY_ARB :: GLenum-gl_CURRENT_QUERY_ARB = 0x8865-gl_DT_SCALE_NV :: GLenum-gl_DT_SCALE_NV = 0x8711-gl_CLAMP_VERTEX_COLOR_ARB :: GLenum-gl_CLAMP_VERTEX_COLOR_ARB = 0x891A-gl_DEPTH_BUFFER_BIT4_QCOM :: GLenum-gl_DEPTH_BUFFER_BIT4_QCOM = 0x00001000-gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: GLenum-gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277-gl_USE_MISSING_GLYPH_NV :: GLenum-gl_USE_MISSING_GLYPH_NV = 0x90AA-gl_MAX_ASYNC_TEX_IMAGE_SGIX :: GLenum-gl_MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F-gl_TESS_CONTROL_TEXTURE :: GLenum-gl_TESS_CONTROL_TEXTURE = 0x829C-gl_DEPTH_FUNC :: GLenum-gl_DEPTH_FUNC = 0x0B74-gl_RG8I :: GLenum-gl_RG8I = 0x8237-gl_MAX_VERTEX_SHADER_VARIANTS_EXT :: GLenum-gl_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6-gl_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB :: GLenum-gl_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2-gl_COMPRESSED_SRGB :: GLenum-gl_COMPRESSED_SRGB = 0x8C48-gl_PROGRAM_BINDING_ARB :: GLenum-gl_PROGRAM_BINDING_ARB = 0x8677-gl_SAMPLER_2D_ARRAY :: GLenum-gl_SAMPLER_2D_ARRAY = 0x8DC1-gl_IMAGE_CUBE_MAP_ARRAY_EXT :: GLenum-gl_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054-gl_BUFFER_ACCESS_FLAGS :: GLenum-gl_BUFFER_ACCESS_FLAGS = 0x911F-gl_EIGHTH_BIT_ATI :: GLenum-gl_EIGHTH_BIT_ATI = 0x00000020-gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV :: GLenum-gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868-gl_INT8_VEC4_NV :: GLenum-gl_INT8_VEC4_NV = 0x8FE3-gl_CLEAR_TEXTURE :: GLenum-gl_CLEAR_TEXTURE = 0x9365-gl_TEXTURE_CUBE_MAP_OES :: GLenum-gl_TEXTURE_CUBE_MAP_OES = 0x8513-gl_FONT_NUM_GLYPH_INDICES_BIT_NV :: GLenum-gl_FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000-gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV :: GLenum-gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520-gl_RENDERBUFFER_DEPTH_SIZE :: GLenum-gl_RENDERBUFFER_DEPTH_SIZE = 0x8D54-gl_DOT_PRODUCT_TEXTURE_1D_NV :: GLenum-gl_DOT_PRODUCT_TEXTURE_1D_NV = 0x885C-gl_DOUBLE_VEC3_EXT :: GLenum-gl_DOUBLE_VEC3_EXT = 0x8FFD-gl_VERTEX_ATTRIB_ARRAY_UNIFIED_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E-gl_TEXTURE_LUMINANCE_TYPE :: GLenum-gl_TEXTURE_LUMINANCE_TYPE = 0x8C14-gl_CONTEXT_FLAGS :: GLenum-gl_CONTEXT_FLAGS = 0x821E-gl_NORMAL_ARRAY_BUFFER_BINDING :: GLenum-gl_NORMAL_ARRAY_BUFFER_BINDING = 0x8897-gl_PROGRAM_FORMAT_ARB :: GLenum-gl_PROGRAM_FORMAT_ARB = 0x8876-gl_MOVE_TO_CONTINUES_NV :: GLenum-gl_MOVE_TO_CONTINUES_NV = 0x90B6-gl_LO_BIAS_NV :: GLenum-gl_LO_BIAS_NV = 0x8715-gl_CONVOLUTION_WIDTH_EXT :: GLenum-gl_CONVOLUTION_WIDTH_EXT = 0x8018-gl_FRAGMENT_TEXTURE :: GLenum-gl_FRAGMENT_TEXTURE = 0x829F-gl_NORMAL_BIT_PGI :: GLenum-gl_NORMAL_BIT_PGI = 0x08000000-gl_COMPRESSED_SIGNED_RG11_EAC_OES :: GLenum-gl_COMPRESSED_SIGNED_RG11_EAC_OES = 0x9273-gl_FIRST_VERTEX_CONVENTION :: GLenum-gl_FIRST_VERTEX_CONVENTION = 0x8E4D-gl_ROUNDED_RECT2_NV :: GLenum-gl_ROUNDED_RECT2_NV = 0xEA-gl_POST_COLOR_MATRIX_RED_BIAS :: GLenum-gl_POST_COLOR_MATRIX_RED_BIAS = 0x80B8-gl_UNIFORM_BUFFER :: GLenum-gl_UNIFORM_BUFFER = 0x8A11-gl_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT :: GLenum-gl_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336-gl_NUM_SAMPLE_COUNTS :: GLenum-gl_NUM_SAMPLE_COUNTS = 0x9380-gl_FOG_OFFSET_VALUE_SGIX :: GLenum-gl_FOG_OFFSET_VALUE_SGIX = 0x8199-gl_DIFFUSE :: GLenum-gl_DIFFUSE = 0x1201-gl_CLIP_PLANE5 :: GLenum-gl_CLIP_PLANE5 = 0x3005-gl_OUTPUT_FOG_EXT :: GLenum-gl_OUTPUT_FOG_EXT = 0x87BD-gl_PROGRAM_ATTRIB_COMPONENTS_NV :: GLenum-gl_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906-gl_RGBA_SIGNED_COMPONENTS_EXT :: GLenum-gl_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C-gl_COLOR_ARRAY_EXT :: GLenum-gl_COLOR_ARRAY_EXT = 0x8076-gl_PROXY_TEXTURE_1D_STACK_MESAX :: GLenum-gl_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B-gl_TEXTURE_COORD_ARRAY_POINTER :: GLenum-gl_TEXTURE_COORD_ARRAY_POINTER = 0x8092-gl_MAX_COLOR_ATTACHMENTS :: GLenum-gl_MAX_COLOR_ATTACHMENTS = 0x8CDF-gl_TEXTURE28_ARB :: GLenum-gl_TEXTURE28_ARB = 0x84DC-gl_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX :: GLenum-gl_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403-gl_DEPTH24_STENCIL8_EXT :: GLenum-gl_DEPTH24_STENCIL8_EXT = 0x88F0-gl_MAX :: GLenum-gl_MAX = 0x8008-gl_MODELVIEW12_ARB :: GLenum-gl_MODELVIEW12_ARB = 0x872C-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = 0x93E9-gl_PIXEL_MAP_I_TO_I_SIZE :: GLenum-gl_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0-gl_NORMAL_ARRAY_LIST_STRIDE_IBM :: GLenum-gl_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081-gl_SOURCE3_RGB_NV :: GLenum-gl_SOURCE3_RGB_NV = 0x8583-gl_ALPHA12_EXT :: GLenum-gl_ALPHA12_EXT = 0x803D-gl_STREAM_COPY_ARB :: GLenum-gl_STREAM_COPY_ARB = 0x88E2-gl_STENCIL_BACK_PASS_DEPTH_FAIL_ATI :: GLenum-gl_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802-gl_FRAGMENT_SUBROUTINE_UNIFORM :: GLenum-gl_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2-gl_IS_ROW_MAJOR :: GLenum-gl_IS_ROW_MAJOR = 0x9300-gl_UNPACK_SKIP_IMAGES :: GLenum-gl_UNPACK_SKIP_IMAGES = 0x806D-gl_NUM_GENERAL_COMBINERS_NV :: GLenum-gl_NUM_GENERAL_COMBINERS_NV = 0x854E-gl_STENCIL_CLEAR_TAG_VALUE_EXT :: GLenum-gl_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3-gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS :: GLenum-gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29-gl_DRAW_BUFFER12_ARB :: GLenum-gl_DRAW_BUFFER12_ARB = 0x8831-gl_OFFSET_PROJECTIVE_TEXTURE_2D_NV :: GLenum-gl_OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850-gl_VERTEX_ARRAY_OBJECT_EXT :: GLenum-gl_VERTEX_ARRAY_OBJECT_EXT = 0x9154-gl_PN_TRIANGLES_NORMAL_MODE_ATI :: GLenum-gl_PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3-gl_C4UB_V3F :: GLenum-gl_C4UB_V3F = 0x2A23-gl_REPEAT :: GLenum-gl_REPEAT = 0x2901-gl_MAX_SAMPLE_MASK_WORDS_NV :: GLenum-gl_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59-gl_STORAGE_SHARED_APPLE :: GLenum-gl_STORAGE_SHARED_APPLE = 0x85BF-gl_TEXTURE9_ARB :: GLenum-gl_TEXTURE9_ARB = 0x84C9-gl_QUERY_BUFFER_BINDING :: GLenum-gl_QUERY_BUFFER_BINDING = 0x9193-gl_UNSIGNED_SHORT_8_8_REV_APPLE :: GLenum-gl_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB-gl_MAX_FRAGMENT_UNIFORM_VECTORS :: GLenum-gl_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD-gl_UNDEFINED_APPLE :: GLenum-gl_UNDEFINED_APPLE = 0x8A1C-gl_TABLE_TOO_LARGE_EXT :: GLenum-gl_TABLE_TOO_LARGE_EXT = 0x8031-gl_MAX_TESS_PATCH_COMPONENTS_EXT :: GLenum-gl_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84-gl_XOR_NV :: GLenum-gl_XOR_NV = 0x1506-gl_MAX_SHADER_BUFFER_ADDRESS_NV :: GLenum-gl_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35-gl_DEBUG_SOURCE_WINDOW_SYSTEM :: GLenum-gl_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247-gl_UNSIGNALED_APPLE :: GLenum-gl_UNSIGNALED_APPLE = 0x9118-gl_SIGNED_LUMINANCE_NV :: GLenum-gl_SIGNED_LUMINANCE_NV = 0x8701-gl_FOG_DISTANCE_MODE_NV :: GLenum-gl_FOG_DISTANCE_MODE_NV = 0x855A-gl_PN_TRIANGLES_POINT_MODE_ATI :: GLenum-gl_PN_TRIANGLES_POINT_MODE_ATI = 0x87F2-gl_GEOMETRY_SUBROUTINE_UNIFORM :: GLenum-gl_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1-gl_NEGATIVE_Z_EXT :: GLenum-gl_NEGATIVE_Z_EXT = 0x87DB-gl_PIXEL_MAP_R_TO_R :: GLenum-gl_PIXEL_MAP_R_TO_R = 0x0C76-gl_OBJECT_LINK_STATUS_ARB :: GLenum-gl_OBJECT_LINK_STATUS_ARB = 0x8B82-gl_NUM_ACTIVE_VARIABLES :: GLenum-gl_NUM_ACTIVE_VARIABLES = 0x9304-gl_BUFFER_UPDATE_BARRIER_BIT_EXT :: GLenum-gl_BUFFER_UPDATE_BARRIER_BIT_EXT = 0x00000200-gl_IMAGE_CUBE_EXT :: GLenum-gl_IMAGE_CUBE_EXT = 0x9050-gl_RGB_INTEGER_EXT :: GLenum-gl_RGB_INTEGER_EXT = 0x8D98-gl_DRAW_BUFFER13_EXT :: GLenum-gl_DRAW_BUFFER13_EXT = 0x8832-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0-gl_SYNC_GPU_COMMANDS_COMPLETE_APPLE :: GLenum-gl_SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117-gl_RGB_SCALE :: GLenum-gl_RGB_SCALE = 0x8573-gl_DOUBLE_MAT3x4_EXT :: GLenum-gl_DOUBLE_MAT3x4_EXT = 0x8F4C-gl_EXP :: GLenum-gl_EXP = 0x0800-gl_PERFMON_RESULT_AVAILABLE_AMD :: GLenum-gl_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4-gl_STENCIL_VALUE_MASK :: GLenum-gl_STENCIL_VALUE_MASK = 0x0B93-gl_COLOR_ATTACHMENT12_NV :: GLenum-gl_COLOR_ATTACHMENT12_NV = 0x8CEC-gl_VERTEX_STREAM2_ATI :: GLenum-gl_VERTEX_STREAM2_ATI = 0x876E-gl_MAP_COHERENT_BIT :: GLenum-gl_MAP_COHERENT_BIT = 0x0080-gl_COMPRESSED_SIGNED_RG_RGTC2 :: GLenum-gl_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE-gl_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER :: GLenum-gl_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC-gl_FRAGMENT_PROGRAM_ARB :: GLenum-gl_FRAGMENT_PROGRAM_ARB = 0x8804-gl_COLOR_BUFFER_BIT6_QCOM :: GLenum-gl_COLOR_BUFFER_BIT6_QCOM = 0x00000040-gl_FLOAT_32_UNSIGNED_INT_24_8_REV_NV :: GLenum-gl_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD-gl_WIDE_LINE_HINT_PGI :: GLenum-gl_WIDE_LINE_HINT_PGI = 0x1A222-gl_FRAGMENT_LIGHT4_SGIX :: GLenum-gl_FRAGMENT_LIGHT4_SGIX = 0x8410-gl_RGBA_FLOAT_MODE_ATI :: GLenum-gl_RGBA_FLOAT_MODE_ATI = 0x8820-gl_UNSIGNED_INT_10F_11F_11F_REV :: GLenum-gl_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B-gl_MODELVIEW1_STACK_DEPTH_EXT :: GLenum-gl_MODELVIEW1_STACK_DEPTH_EXT = 0x8502-gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24-gl_POINT_SIZE_MAX :: GLenum-gl_POINT_SIZE_MAX = 0x8127-gl_ALPHA_TEST_REF_QCOM :: GLenum-gl_ALPHA_TEST_REF_QCOM = 0x0BC2-gl_RELATIVE_HORIZONTAL_LINE_TO_NV :: GLenum-gl_RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07-gl_FILTER4_SGIS :: GLenum-gl_FILTER4_SGIS = 0x8146-gl_TEXTURE4 :: GLenum-gl_TEXTURE4 = 0x84C4-gl_INDEX_MATERIAL_EXT :: GLenum-gl_INDEX_MATERIAL_EXT = 0x81B8-gl_FETCH_PER_SAMPLE_ARM :: GLenum-gl_FETCH_PER_SAMPLE_ARM = 0x8F65-gl_VARIANT_ARRAY_TYPE_EXT :: GLenum-gl_VARIANT_ARRAY_TYPE_EXT = 0x87E7-gl_ALPHA_MAX_SGIX :: GLenum-gl_ALPHA_MAX_SGIX = 0x8321-gl_NUM_INSTRUCTIONS_TOTAL_ATI :: GLenum-gl_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972-gl_TEXTURE_IMAGE_TYPE :: GLenum-gl_TEXTURE_IMAGE_TYPE = 0x8290-gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS :: GLenum-gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB-gl_DRAW_BUFFER11_NV :: GLenum-gl_DRAW_BUFFER11_NV = 0x8830-gl_SURFACE_STATE_NV :: GLenum-gl_SURFACE_STATE_NV = 0x86EB-gl_BLEND_SRC_RGB :: GLenum-gl_BLEND_SRC_RGB = 0x80C9-gl_OBJECT_ACTIVE_UNIFORMS_ARB :: GLenum-gl_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86-gl_COLORDODGE_NV :: GLenum-gl_COLORDODGE_NV = 0x9299-gl_PRIMITIVES_GENERATED_NV :: GLenum-gl_PRIMITIVES_GENERATED_NV = 0x8C87-gl_IMAGE_2D_ARRAY :: GLenum-gl_IMAGE_2D_ARRAY = 0x9053-gl_LOSE_CONTEXT_ON_RESET_ARB :: GLenum-gl_LOSE_CONTEXT_ON_RESET_ARB = 0x8252-gl_RG_INTEGER :: GLenum-gl_RG_INTEGER = 0x8228-gl_UNSIGNED_INT_SAMPLER_1D_EXT :: GLenum-gl_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1-gl_REFLECTION_MAP_ARB :: GLenum-gl_REFLECTION_MAP_ARB = 0x8512-gl_NORMAL_ARRAY_TYPE_EXT :: GLenum-gl_NORMAL_ARRAY_TYPE_EXT = 0x807E-gl_BLUE_BITS :: GLenum-gl_BLUE_BITS = 0x0D54-gl_ATOMIC_COUNTER_BARRIER_BIT :: GLenum-gl_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000-gl_INTENSITY8I_EXT :: GLenum-gl_INTENSITY8I_EXT = 0x8D91-gl_TEXTURE_BINDING_RECTANGLE_ARB :: GLenum-gl_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6-gl_SCALE_BY_TWO_NV :: GLenum-gl_SCALE_BY_TWO_NV = 0x853E-gl_PACK_IMAGE_HEIGHT :: GLenum-gl_PACK_IMAGE_HEIGHT = 0x806C-gl_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL :: GLenum-gl_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF-gl_DEPTH_COMPONENT24_SGIX :: GLenum-gl_DEPTH_COMPONENT24_SGIX = 0x81A6-gl_NUM_FRAGMENT_CONSTANTS_ATI :: GLenum-gl_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F-gl_EDGE_FLAG_ARRAY_STRIDE_EXT :: GLenum-gl_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C-gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT :: GLenum-gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = 0x900A-gl_SAMPLE_ALPHA_TO_COVERAGE_ARB :: GLenum-gl_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E-gl_UNPACK_SKIP_IMAGES_EXT :: GLenum-gl_UNPACK_SKIP_IMAGES_EXT = 0x806D-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL :: GLenum-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2-gl_RGBA8_OES :: GLenum-gl_RGBA8_OES = 0x8058-gl_STENCIL_INDEX8_OES :: GLenum-gl_STENCIL_INDEX8_OES = 0x8D48-gl_MAX_SPARSE_3D_TEXTURE_SIZE_AMD :: GLenum-gl_MAX_SPARSE_3D_TEXTURE_SIZE_AMD = 0x9199-gl_COMPUTE_SHADER :: GLenum-gl_COMPUTE_SHADER = 0x91B9-gl_QUERY_WAIT_NV :: GLenum-gl_QUERY_WAIT_NV = 0x8E13-gl_TEXTURE_COMPARE_FUNC_ARB :: GLenum-gl_TEXTURE_COMPARE_FUNC_ARB = 0x884D-gl_SCREEN_COORDINATES_REND :: GLenum-gl_SCREEN_COORDINATES_REND = 0x8490-gl_DRAW_BUFFER4_EXT :: GLenum-gl_DRAW_BUFFER4_EXT = 0x8829-gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT :: GLenum-gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337-gl_TOP_LEVEL_ARRAY_SIZE :: GLenum-gl_TOP_LEVEL_ARRAY_SIZE = 0x930C-gl_STATIC_COPY_ARB :: GLenum-gl_STATIC_COPY_ARB = 0x88E6-gl_MAP1_TANGENT_EXT :: GLenum-gl_MAP1_TANGENT_EXT = 0x8444-gl_MAP2_VERTEX_ATTRIB11_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B-gl_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX :: GLenum-gl_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = 0x8187-gl_DRAW_BUFFER9 :: GLenum-gl_DRAW_BUFFER9 = 0x882E-gl_COMPRESSED_INTENSITY_ARB :: GLenum-gl_COMPRESSED_INTENSITY_ARB = 0x84EC-gl_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516-gl_MATRIX19_ARB :: GLenum-gl_MATRIX19_ARB = 0x88D3-gl_MAX_MULTIVIEW_BUFFERS_EXT :: GLenum-gl_MAX_MULTIVIEW_BUFFERS_EXT = 0x90F2-gl_CONJOINT_NV :: GLenum-gl_CONJOINT_NV = 0x9284-gl_INTENSITY_SNORM :: GLenum-gl_INTENSITY_SNORM = 0x9013-gl_DRAW_BUFFER14 :: GLenum-gl_DRAW_BUFFER14 = 0x8833-gl_MAX_PROGRAM_INSTRUCTIONS_ARB :: GLenum-gl_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1-gl_TEXTURE_BINDING_RECTANGLE :: GLenum-gl_TEXTURE_BINDING_RECTANGLE = 0x84F6-gl_DEBUG_SOURCE_SHADER_COMPILER_ARB :: GLenum-gl_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR :: GLenum-gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD-gl_MULTISAMPLE_EXT :: GLenum-gl_MULTISAMPLE_EXT = 0x809D-gl_NEAREST_MIPMAP_NEAREST :: GLenum-gl_NEAREST_MIPMAP_NEAREST = 0x2700-gl_COLOR_ATTACHMENT7_EXT :: GLenum-gl_COLOR_ATTACHMENT7_EXT = 0x8CE7-gl_STENCIL_BUFFER_BIT6_QCOM :: GLenum-gl_STENCIL_BUFFER_BIT6_QCOM = 0x00400000-gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85-gl_REG_29_ATI :: GLenum-gl_REG_29_ATI = 0x893E-gl_COVERAGE_SAMPLES_NV :: GLenum-gl_COVERAGE_SAMPLES_NV = 0x8ED4-gl_RELEASED_APPLE :: GLenum-gl_RELEASED_APPLE = 0x8A19-gl_ALPHA_TEST_FUNC :: GLenum-gl_ALPHA_TEST_FUNC = 0x0BC1-gl_DRAW_BUFFER2 :: GLenum-gl_DRAW_BUFFER2 = 0x8827-gl_VERTEX_PROGRAM_BINDING_NV :: GLenum-gl_VERTEX_PROGRAM_BINDING_NV = 0x864A-gl_IMAGE_2D_RECT :: GLenum-gl_IMAGE_2D_RECT = 0x904F-gl_COLOR_TABLE_BIAS_SGI :: GLenum-gl_COLOR_TABLE_BIAS_SGI = 0x80D7-gl_CLIENT_ACTIVE_TEXTURE_ARB :: GLenum-gl_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1-gl_CURRENT_MATRIX_INDEX_ARB :: GLenum-gl_CURRENT_MATRIX_INDEX_ARB = 0x8845-gl_TEXTURE_COORD_ARRAY_STRIDE :: GLenum-gl_TEXTURE_COORD_ARRAY_STRIDE = 0x808A-gl_FILTER :: GLenum-gl_FILTER = 0x829A-gl_MAX_MODELVIEW_STACK_DEPTH :: GLenum-gl_MAX_MODELVIEW_STACK_DEPTH = 0x0D36-gl_VERTEX_ATTRIB_ARRAY5_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY5_NV = 0x8655-gl_UNSIGNED_BYTE :: GLenum-gl_UNSIGNED_BYTE = 0x1401-gl_DETAIL_TEXTURE_2D_SGIS :: GLenum-gl_DETAIL_TEXTURE_2D_SGIS = 0x8095-gl_POST_CONVOLUTION_BLUE_BIAS :: GLenum-gl_POST_CONVOLUTION_BLUE_BIAS = 0x8022-gl_TYPE :: GLenum-gl_TYPE = 0x92FA-gl_COMPRESSED_RG :: GLenum-gl_COMPRESSED_RG = 0x8226-gl_4PASS_1_SGIS :: GLenum-gl_4PASS_1_SGIS = 0x80A5-gl_SOURCE2_RGB :: GLenum-gl_SOURCE2_RGB = 0x8582-gl_TEXTURE_MAX_LOD :: GLenum-gl_TEXTURE_MAX_LOD = 0x813B-gl_EYE_DISTANCE_TO_LINE_SGIS :: GLenum-gl_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2-gl_LUMINANCE_ALPHA32F_EXT :: GLenum-gl_LUMINANCE_ALPHA32F_EXT = 0x8819-gl_MATRIX_INDEX_ARRAY_STRIDE_ARB :: GLenum-gl_MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848-gl_COLOR_ATTACHMENT4 :: GLenum-gl_COLOR_ATTACHMENT4 = 0x8CE4-gl_INDEX_ARRAY_BUFFER_BINDING :: GLenum-gl_INDEX_ARRAY_BUFFER_BINDING = 0x8899-gl_UNSIGNED_INT_SAMPLER_2D_ARRAY :: GLenum-gl_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7-gl_PIXEL_TILE_BEST_ALIGNMENT_SGIX :: GLenum-gl_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E-gl_SPECULAR :: GLenum-gl_SPECULAR = 0x1202-gl_PACK_IMAGE_DEPTH_SGIS :: GLenum-gl_PACK_IMAGE_DEPTH_SGIS = 0x8131-gl_PLUS_CLAMPED_NV :: GLenum-gl_PLUS_CLAMPED_NV = 0x92B1-gl_INVALID_FRAMEBUFFER_OPERATION :: GLenum-gl_INVALID_FRAMEBUFFER_OPERATION = 0x0506-gl_RG :: GLenum-gl_RG = 0x8227-gl_COLOR_ATTACHMENT11_NV :: GLenum-gl_COLOR_ATTACHMENT11_NV = 0x8CEB-gl_UNPACK_SKIP_PIXELS :: GLenum-gl_UNPACK_SKIP_PIXELS = 0x0CF4-gl_SAMPLE_BUFFERS :: GLenum-gl_SAMPLE_BUFFERS = 0x80A8-gl_DRAW_BUFFER1_ARB :: GLenum-gl_DRAW_BUFFER1_ARB = 0x8826-gl_COMBINER6_NV :: GLenum-gl_COMBINER6_NV = 0x8556-gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES :: GLenum-gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A-gl_TEXTURE_ENV :: GLenum-gl_TEXTURE_ENV = 0x2300-gl_QUAD_MESH_SUN :: GLenum-gl_QUAD_MESH_SUN = 0x8614-gl_REFERENCED_BY_TESS_CONTROL_SHADER_EXT :: GLenum-gl_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV :: GLenum-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B-gl_TIMEOUT_EXPIRED :: GLenum-gl_TIMEOUT_EXPIRED = 0x911B-gl_FLOAT_MAT4x2_NV :: GLenum-gl_FLOAT_MAT4x2_NV = 0x8B69-gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES :: GLenum-gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910D-gl_COMBINER1_NV :: GLenum-gl_COMBINER1_NV = 0x8551-gl_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB :: GLenum-gl_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7-gl_RENDERBUFFER_SAMPLES_ANGLE :: GLenum-gl_RENDERBUFFER_SAMPLES_ANGLE = 0x8CAB-gl_VERTEX_ARRAY_SIZE :: GLenum-gl_VERTEX_ARRAY_SIZE = 0x807A-gl_TEXTURE2 :: GLenum-gl_TEXTURE2 = 0x84C2-gl_RELATIVE_MOVE_TO_NV :: GLenum-gl_RELATIVE_MOVE_TO_NV = 0x03-gl_ALPHA_TEST_FUNC_QCOM :: GLenum-gl_ALPHA_TEST_FUNC_QCOM = 0x0BC1-gl_INNOCENT_CONTEXT_RESET_KHR :: GLenum-gl_INNOCENT_CONTEXT_RESET_KHR = 0x8254-gl_MAP1_VERTEX_ATTRIB5_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665-gl_SAMPLER_1D_SHADOW :: GLenum-gl_SAMPLER_1D_SHADOW = 0x8B61-gl_TEXTURE_1D_ARRAY_EXT :: GLenum-gl_TEXTURE_1D_ARRAY_EXT = 0x8C18-gl_STENCIL_INDEX :: GLenum-gl_STENCIL_INDEX = 0x1901-gl_SOURCE2_ALPHA_EXT :: GLenum-gl_SOURCE2_ALPHA_EXT = 0x858A-gl_NORMAL_MAP_EXT :: GLenum-gl_NORMAL_MAP_EXT = 0x8511-gl_FOG_COORDINATE_SOURCE_EXT :: GLenum-gl_FOG_COORDINATE_SOURCE_EXT = 0x8450-gl_TEXTURE_FILTER_CONTROL :: GLenum-gl_TEXTURE_FILTER_CONTROL = 0x8500-gl_REPLACE_OLDEST_SUN :: GLenum-gl_REPLACE_OLDEST_SUN = 0x0003-gl_PROGRAM_ADDRESS_REGISTERS_ARB :: GLenum-gl_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0-gl_2PASS_1_EXT :: GLenum-gl_2PASS_1_EXT = 0x80A3-gl_LIGHT_ENV_MODE_SGIX :: GLenum-gl_LIGHT_ENV_MODE_SGIX = 0x8407-gl_OP_FRAC_EXT :: GLenum-gl_OP_FRAC_EXT = 0x8789-gl_PROXY_TEXTURE_RECTANGLE_NV :: GLenum-gl_PROXY_TEXTURE_RECTANGLE_NV = 0x84F7-gl_RENDERBUFFER :: GLenum-gl_RENDERBUFFER = 0x8D41-gl_MAP2_TEXTURE_COORD_4 :: GLenum-gl_MAP2_TEXTURE_COORD_4 = 0x0DB6-gl_TEXTURE_BORDER_COLOR_EXT :: GLenum-gl_TEXTURE_BORDER_COLOR_EXT = 0x1004-gl_SEPARABLE_2D :: GLenum-gl_SEPARABLE_2D = 0x8012-gl_COMPRESSED_SRGB_S3TC_DXT1_EXT :: GLenum-gl_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C-gl_DRAW_BUFFER0_ATI :: GLenum-gl_DRAW_BUFFER0_ATI = 0x8825-gl_TEXTURE_IMMUTABLE_LEVELS :: GLenum-gl_TEXTURE_IMMUTABLE_LEVELS = 0x82DF-gl_E_TIMES_F_NV :: GLenum-gl_E_TIMES_F_NV = 0x8531-gl_MATRIX24_ARB :: GLenum-gl_MATRIX24_ARB = 0x88D8-gl_PIXEL_GROUP_COLOR_SGIS :: GLenum-gl_PIXEL_GROUP_COLOR_SGIS = 0x8356-gl_CURRENT_RASTER_COLOR :: GLenum-gl_CURRENT_RASTER_COLOR = 0x0B04-gl_DOUBLE_MAT2x4_EXT :: GLenum-gl_DOUBLE_MAT2x4_EXT = 0x8F4A-gl_BUMP_TEX_UNITS_ATI :: GLenum-gl_BUMP_TEX_UNITS_ATI = 0x8778-gl_FOG_COORDINATE_ARRAY_EXT :: GLenum-gl_FOG_COORDINATE_ARRAY_EXT = 0x8457-gl_ALWAYS :: GLenum-gl_ALWAYS = 0x0207-gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES :: GLenum-gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5B-gl_MAP2_VERTEX_4 :: GLenum-gl_MAP2_VERTEX_4 = 0x0DB8-gl_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG :: GLenum-gl_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03-gl_MODULATE_SIGNED_ADD_ATI :: GLenum-gl_MODULATE_SIGNED_ADD_ATI = 0x8745-gl_RG8 :: GLenum-gl_RG8 = 0x822B-gl_ACTIVE_UNIFORM_BLOCKS :: GLenum-gl_ACTIVE_UNIFORM_BLOCKS = 0x8A36-gl_MAX_SPARSE_TEXTURE_SIZE_AMD :: GLenum-gl_MAX_SPARSE_TEXTURE_SIZE_AMD = 0x9198-gl_COLOR_ATTACHMENT11_EXT :: GLenum-gl_COLOR_ATTACHMENT11_EXT = 0x8CEB-gl_POST_CONVOLUTION_BLUE_BIAS_EXT :: GLenum-gl_POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022-gl_BUFFER_OBJECT_APPLE :: GLenum-gl_BUFFER_OBJECT_APPLE = 0x85B3-gl_UNIFORM_TYPE :: GLenum-gl_UNIFORM_TYPE = 0x8A37-gl_VARIABLE_E_NV :: GLenum-gl_VARIABLE_E_NV = 0x8527-gl_MAX_COMPUTE_ATOMIC_COUNTERS :: GLenum-gl_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265-gl_COMPRESSED_RED_RGTC1 :: GLenum-gl_COMPRESSED_RED_RGTC1 = 0x8DBB-gl_LUMINANCE_INTEGER_EXT :: GLenum-gl_LUMINANCE_INTEGER_EXT = 0x8D9C-gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY :: GLenum-gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F-gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE :: GLenum-gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE-gl_R16F_EXT :: GLenum-gl_R16F_EXT = 0x822D-gl_MATRIX4_ARB :: GLenum-gl_MATRIX4_ARB = 0x88C4-gl_MATRIX_INDEX_ARRAY_SIZE_OES :: GLenum-gl_MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846-gl_POLYGON_STIPPLE :: GLenum-gl_POLYGON_STIPPLE = 0x0B42-gl_DUAL_ALPHA12_SGIS :: GLenum-gl_DUAL_ALPHA12_SGIS = 0x8112-gl_PIXEL_MAP_I_TO_B :: GLenum-gl_PIXEL_MAP_I_TO_B = 0x0C74-gl_VERTEX_ATTRIB_ARRAY6_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY6_NV = 0x8656-gl_REG_21_ATI :: GLenum-gl_REG_21_ATI = 0x8936-gl_PERFMON_RESULT_SIZE_AMD :: GLenum-gl_PERFMON_RESULT_SIZE_AMD = 0x8BC5-gl_ALPHA8_OES :: GLenum-gl_ALPHA8_OES = 0x803C-gl_OBJECT_BUFFER_USAGE_ATI :: GLenum-gl_OBJECT_BUFFER_USAGE_ATI = 0x8765-gl_PATH_STENCIL_FUNC_NV :: GLenum-gl_PATH_STENCIL_FUNC_NV = 0x90B7-gl_TEXTURE12_ARB :: GLenum-gl_TEXTURE12_ARB = 0x84CC-gl_DEPTH_COMPONENT16_OES :: GLenum-gl_DEPTH_COMPONENT16_OES = 0x81A5-gl_MODELVIEW20_ARB :: GLenum-gl_MODELVIEW20_ARB = 0x8734-gl_ALPHA12 :: GLenum-gl_ALPHA12 = 0x803D-gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT :: GLenum-gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = 0x919F-gl_MODULATE_ADD_ATI :: GLenum-gl_MODULATE_ADD_ATI = 0x8744-gl_CLAMP_TO_BORDER_EXT :: GLenum-gl_CLAMP_TO_BORDER_EXT = 0x812D-gl_CONSTANT_EXT :: GLenum-gl_CONSTANT_EXT = 0x8576-gl_OP_LOG_BASE_2_EXT :: GLenum-gl_OP_LOG_BASE_2_EXT = 0x8792-gl_SET_AMD :: GLenum-gl_SET_AMD = 0x874A-gl_ONE_MINUS_SRC_ALPHA :: GLenum-gl_ONE_MINUS_SRC_ALPHA = 0x0303-gl_COMPRESSED_LUMINANCE_ALPHA_ARB :: GLenum-gl_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB-gl_MAX_SERVER_WAIT_TIMEOUT_APPLE :: GLenum-gl_MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111-gl_LINE_TOKEN :: GLenum-gl_LINE_TOKEN = 0x0702-gl_PROXY_POST_CONVOLUTION_COLOR_TABLE :: GLenum-gl_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4-gl_TEXTURE_BINDING_3D :: GLenum-gl_TEXTURE_BINDING_3D = 0x806A-gl_INTENSITY16I_EXT :: GLenum-gl_INTENSITY16I_EXT = 0x8D8B-gl_DEPENDENT_AR_TEXTURE_2D_NV :: GLenum-gl_DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9-gl_CURRENT_RASTER_NORMAL_SGIX :: GLenum-gl_CURRENT_RASTER_NORMAL_SGIX = 0x8406-gl_TEXTURE_INTENSITY_TYPE :: GLenum-gl_TEXTURE_INTENSITY_TYPE = 0x8C15-gl_TEXTURE_STORAGE_SPARSE_BIT_AMD :: GLenum-gl_TEXTURE_STORAGE_SPARSE_BIT_AMD = 0x00000001-gl_RENDERBUFFER_INTERNAL_FORMAT_EXT :: GLenum-gl_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44-gl_VERTEX_ATTRIB_ARRAY1_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY1_NV = 0x8651-gl_TEXTURE_RED_SIZE :: GLenum-gl_TEXTURE_RED_SIZE = 0x805C-gl_CURRENT_COLOR :: GLenum-gl_CURRENT_COLOR = 0x0B00-gl_COMPRESSED_RGBA_ASTC_8x5_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5-gl_STENCIL_BUFFER_BIT7_QCOM :: GLenum-gl_STENCIL_BUFFER_BIT7_QCOM = 0x00800000-gl_CLIP_PLANE0_IMG :: GLenum-gl_CLIP_PLANE0_IMG = 0x3000-gl_ALPHA_TEST_REF :: GLenum-gl_ALPHA_TEST_REF = 0x0BC2-gl_POINT_SMOOTH :: GLenum-gl_POINT_SMOOTH = 0x0B10-gl_WEIGHT_ARRAY_SIZE_OES :: GLenum-gl_WEIGHT_ARRAY_SIZE_OES = 0x86AB-gl_DECODE_EXT :: GLenum-gl_DECODE_EXT = 0x8A49-gl_SPARSE_BUFFER_PAGE_SIZE_ARB :: GLenum-gl_SPARSE_BUFFER_PAGE_SIZE_ARB = 0x82F8-gl_CLIENT_ATTRIB_STACK_DEPTH :: GLenum-gl_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1-gl_TEXTURE_BINDING_EXTERNAL_OES :: GLenum-gl_TEXTURE_BINDING_EXTERNAL_OES = 0x8D67-gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT :: GLenum-gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A-gl_RENDERBUFFER_STENCIL_SIZE_OES :: GLenum-gl_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55-gl_POST_COLOR_MATRIX_ALPHA_BIAS :: GLenum-gl_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB-gl_COMPARE_REF_DEPTH_TO_TEXTURE_EXT :: GLenum-gl_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E-gl_HSL_LUMINOSITY_KHR :: GLenum-gl_HSL_LUMINOSITY_KHR = 0x92B0-gl_MAX_VERTEX_STREAMS_ATI :: GLenum-gl_MAX_VERTEX_STREAMS_ATI = 0x876B-gl_PERFQUERY_COUNTER_THROUGHPUT_INTEL :: GLenum-gl_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3-gl_COMPRESSED_SIGNED_RED_RGTC1_EXT :: GLenum-gl_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC-gl_DEPTH_COMPONENT32_OES :: GLenum-gl_DEPTH_COMPONENT32_OES = 0x81A7-gl_CON_3_ATI :: GLenum-gl_CON_3_ATI = 0x8944-gl_COMPRESSED_RGBA_S3TC_DXT1_EXT :: GLenum-gl_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1-gl_MATRIX6_ARB :: GLenum-gl_MATRIX6_ARB = 0x88C6-gl_MAP2_VERTEX_ATTRIB5_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675-gl_LINE_WIDTH_RANGE :: GLenum-gl_LINE_WIDTH_RANGE = 0x0B22-gl_GLYPH_VERTICAL_BEARING_X_BIT_NV :: GLenum-gl_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20-gl_FOG_COORDINATE_ARRAY :: GLenum-gl_FOG_COORDINATE_ARRAY = 0x8457-gl_VERTEX_ARRAY_RANGE_LENGTH_APPLE :: GLenum-gl_VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E-gl_CLAMP_FRAGMENT_COLOR :: GLenum-gl_CLAMP_FRAGMENT_COLOR = 0x891B-gl_COMPRESSED_RGBA_ASTC_10x5_KHR :: GLenum-gl_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8-gl_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB :: GLenum-gl_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D-gl_COLOR_BUFFER_BIT4_QCOM :: GLenum-gl_COLOR_BUFFER_BIT4_QCOM = 0x00000010-gl_TEXTURE13 :: GLenum-gl_TEXTURE13 = 0x84CD-gl_MAX_DEBUG_MESSAGE_LENGTH_AMD :: GLenum-gl_MAX_DEBUG_MESSAGE_LENGTH_AMD = 0x9143-gl_EVAL_VERTEX_ATTRIB0_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB0_NV = 0x86C6-gl_ALPHA_MIN_CLAMP_INGR :: GLenum-gl_ALPHA_MIN_CLAMP_INGR = 0x8563-gl_SUB_ATI :: GLenum-gl_SUB_ATI = 0x8965-gl_SECONDARY_COLOR_ARRAY_LIST_IBM :: GLenum-gl_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077-gl_RGBA_INTEGER_MODE_EXT :: GLenum-gl_RGBA_INTEGER_MODE_EXT = 0x8D9E-gl_DEBUG_TYPE_MARKER_KHR :: GLenum-gl_DEBUG_TYPE_MARKER_KHR = 0x8268-gl_VERTEX_ATTRIB_ARRAY14_NV :: GLenum-gl_VERTEX_ATTRIB_ARRAY14_NV = 0x865E-gl_TEXTURE_MIN_LOD :: GLenum-gl_TEXTURE_MIN_LOD = 0x813A-gl_INDEX_TEST_REF_EXT :: GLenum-gl_INDEX_TEST_REF_EXT = 0x81B7-gl_AUX0 :: GLenum-gl_AUX0 = 0x0409-gl_UNSIGNED_INT_IMAGE_2D_RECT :: GLenum-gl_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065-gl_2_BYTES :: GLenum-gl_2_BYTES = 0x1407-gl_UNDEFINED_VERTEX :: GLenum-gl_UNDEFINED_VERTEX = 0x8260-gl_LINE_STIPPLE_PATTERN :: GLenum-gl_LINE_STIPPLE_PATTERN = 0x0B25-gl_FRAMEBUFFER_SRGB_CAPABLE_EXT :: GLenum-gl_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA-gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB :: GLenum-gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F-gl_UNSIGNED_INT_SAMPLER_1D_ARRAY :: GLenum-gl_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6-gl_LOAD :: GLenum-gl_LOAD = 0x0101-gl_SIGNED_ALPHA8_NV :: GLenum-gl_SIGNED_ALPHA8_NV = 0x8706-gl_STENCIL_INDEX8_EXT :: GLenum-gl_STENCIL_INDEX8_EXT = 0x8D48-gl_VIEW_CLASS_24_BITS :: GLenum-gl_VIEW_CLASS_24_BITS = 0x82C9-gl_SHADER_STORAGE_BARRIER_BIT :: GLenum-gl_SHADER_STORAGE_BARRIER_BIT = 0x00002000-gl_UNSIGNED_INT_SAMPLER_BUFFER_AMD :: GLenum-gl_UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003-gl_IMAGE_BINDING_LAYER :: GLenum-gl_IMAGE_BINDING_LAYER = 0x8F3D-gl_MULTISAMPLE_FILTER_HINT_NV :: GLenum-gl_MULTISAMPLE_FILTER_HINT_NV = 0x8534-gl_SPARE1_NV :: GLenum-gl_SPARE1_NV = 0x852F-gl_MAP_READ_BIT_EXT :: GLenum-gl_MAP_READ_BIT_EXT = 0x0001-gl_COMPRESSED_LUMINANCE :: GLenum-gl_COMPRESSED_LUMINANCE = 0x84EA-gl_COMPRESSED_TEXTURE_FORMATS :: GLenum-gl_COMPRESSED_TEXTURE_FORMATS = 0x86A3-gl_UNIFORM_IS_ROW_MAJOR :: GLenum-gl_UNIFORM_IS_ROW_MAJOR = 0x8A3E-gl_OFFSET_TEXTURE_2D_SCALE_NV :: GLenum-gl_OFFSET_TEXTURE_2D_SCALE_NV = 0x86E2-gl_RGBA_DXT5_S3TC :: GLenum-gl_RGBA_DXT5_S3TC = 0x83A4-gl_MAX_PROGRAM_LOCAL_PARAMETERS_ARB :: GLenum-gl_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4-gl_MAX_UNIFORM_BUFFER_BINDINGS :: GLenum-gl_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F-gl_RGB16UI_EXT :: GLenum-gl_RGB16UI_EXT = 0x8D77-gl_TEXTURE_COMPARE_OPERATOR_SGIX :: GLenum-gl_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B-gl_VIDEO_BUFFER_PITCH_NV :: GLenum-gl_VIDEO_BUFFER_PITCH_NV = 0x9028-gl_RELATIVE_RECT_NV :: GLenum-gl_RELATIVE_RECT_NV = 0xF7-gl_DRAW_BUFFER8_ATI :: GLenum-gl_DRAW_BUFFER8_ATI = 0x882D-gl_SRC_COLOR :: GLenum-gl_SRC_COLOR = 0x0300-gl_SHADER_OBJECT_EXT :: GLenum-gl_SHADER_OBJECT_EXT = 0x8B48-gl_GUILTY_CONTEXT_RESET_KHR :: GLenum-gl_GUILTY_CONTEXT_RESET_KHR = 0x8253-gl_EVAL_VERTEX_ATTRIB5_NV :: GLenum-gl_EVAL_VERTEX_ATTRIB5_NV = 0x86CB-gl_PALETTE4_RGBA4_OES :: GLenum-gl_PALETTE4_RGBA4_OES = 0x8B93-gl_LUMINANCE12_EXT :: GLenum-gl_LUMINANCE12_EXT = 0x8041-gl_DONT_CARE :: GLenum-gl_DONT_CARE = 0x1100-gl_TEXTURE_BUFFER :: GLenum-gl_TEXTURE_BUFFER = 0x8C2A-gl_COMPRESSED_RGBA_ASTC_4x4x4_OES :: GLenum-gl_COMPRESSED_RGBA_ASTC_4x4x4_OES = 0x93C3-gl_TEXTURE_BINDING_1D_ARRAY :: GLenum-gl_TEXTURE_BINDING_1D_ARRAY = 0x8C1C-gl_SEPARATE_SPECULAR_COLOR :: GLenum-gl_SEPARATE_SPECULAR_COLOR = 0x81FA-gl_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED :: GLenum-gl_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221-gl_NORMAL_ARRAY_LIST_IBM :: GLenum-gl_NORMAL_ARRAY_LIST_IBM = 103071-gl_CURRENT_MATRIX_STACK_DEPTH_NV :: GLenum-gl_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640-gl_INT_IMAGE_3D :: GLenum-gl_INT_IMAGE_3D = 0x9059-gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV :: GLenum-gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3-gl_CONTEXT_FLAG_DEBUG_BIT :: GLenum-gl_CONTEXT_FLAG_DEBUG_BIT = 0x00000002-gl_WEIGHT_ARRAY_BUFFER_BINDING_ARB :: GLenum-gl_WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E-gl_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX :: GLenum-gl_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA-gl_VECTOR_EXT :: GLenum-gl_VECTOR_EXT = 0x87BF-gl_TEXTURE_BUFFER_DATA_STORE_BINDING :: GLenum-gl_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D-gl_TEXTURE_LOD_BIAS :: GLenum-gl_TEXTURE_LOD_BIAS = 0x8501-gl_GEOMETRY_SHADER_EXT :: GLenum-gl_GEOMETRY_SHADER_EXT = 0x8DD9-gl_TEXTURE30 :: GLenum-gl_TEXTURE30 = 0x84DE-gl_VERTEX_SHADER_BIT :: GLenum-gl_VERTEX_SHADER_BIT = 0x00000001-gl_HISTOGRAM_BLUE_SIZE_EXT :: GLenum-gl_HISTOGRAM_BLUE_SIZE_EXT = 0x802A-gl_PATH_COMMAND_COUNT_NV :: GLenum-gl_PATH_COMMAND_COUNT_NV = 0x909D-gl_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV :: GLenum-gl_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B-gl_STENCIL_TAG_BITS_EXT :: GLenum-gl_STENCIL_TAG_BITS_EXT = 0x88F2-gl_MAX_PROGRAM_LOOP_DEPTH_NV :: GLenum-gl_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7-gl_FLOAT_MAT2x3_NV :: GLenum-gl_FLOAT_MAT2x3_NV = 0x8B65-gl_CURRENT_RASTER_DISTANCE :: GLenum-gl_CURRENT_RASTER_DISTANCE = 0x0B09-gl_COMPRESSED_SRGB8_ETC2_OES :: GLenum-gl_COMPRESSED_SRGB8_ETC2_OES = 0x9275-gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES :: GLenum-gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES = 0x9276-gl_PIXEL_MAP_I_TO_G_SIZE :: GLenum-gl_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3-gl_COMBINE :: GLenum-gl_COMBINE = 0x8570-gl_FOG_HINT :: GLenum-gl_FOG_HINT = 0x0C54-gl_COMPUTE_SUBROUTINE_UNIFORM :: GLenum-gl_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3-gl_FRAGMENT_LIGHT3_SGIX :: GLenum-gl_FRAGMENT_LIGHT3_SGIX = 0x840F-gl_DEBUG_TYPE_PORTABILITY_ARB :: GLenum-gl_DEBUG_TYPE_PORTABILITY_ARB = 0x824F-gl_MIN_PROGRAM_TEXEL_OFFSET_EXT :: GLenum-gl_MIN_PROGRAM_TEXEL_OFFSET_EXT = 0x8904-gl_TRANSFORM_FEEDBACK_BUFFER_NV :: GLenum-gl_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E-gl_UNKNOWN_CONTEXT_RESET_EXT :: GLenum-gl_UNKNOWN_CONTEXT_RESET_EXT = 0x8255-gl_INT_SAMPLER_CUBE_MAP_ARRAY_ARB :: GLenum-gl_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E-gl_UNSIGNED_INT_24_8_NV :: GLenum-gl_UNSIGNED_INT_24_8_NV = 0x84FA-gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY :: GLenum-gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C-gl_MANUAL_GENERATE_MIPMAP :: GLenum-gl_MANUAL_GENERATE_MIPMAP = 0x8294-gl_MAP2_VERTEX_ATTRIB6_4_NV :: GLenum-gl_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676-gl_FRAMEBUFFER_EXT :: GLenum-gl_FRAMEBUFFER_EXT = 0x8D40-gl_INT16_NV :: GLenum-gl_INT16_NV = 0x8FE4-gl_FULL_RANGE_EXT :: GLenum-gl_FULL_RANGE_EXT = 0x87E1-gl_MAP1_VERTEX_ATTRIB2_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662-gl_UNSIGNED_INT_8_8_8_8_EXT :: GLenum-gl_UNSIGNED_INT_8_8_8_8_EXT = 0x8035-gl_TESS_CONTROL_SUBROUTINE_UNIFORM :: GLenum-gl_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF-gl_PREVIOUS_TEXTURE_INPUT_NV :: GLenum-gl_PREVIOUS_TEXTURE_INPUT_NV = 0x86E4-gl_ATOMIC_COUNTER_BUFFER_DATA_SIZE :: GLenum-gl_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4-gl_SYNC_STATUS_APPLE :: GLenum-gl_SYNC_STATUS_APPLE = 0x9114-gl_4PASS_0_EXT :: GLenum-gl_4PASS_0_EXT = 0x80A4-gl_POLYGON_SMOOTH :: GLenum-gl_POLYGON_SMOOTH = 0x0B41-gl_FEEDBACK_BUFFER_SIZE :: GLenum-gl_FEEDBACK_BUFFER_SIZE = 0x0DF1-gl_COLORBURN_KHR :: GLenum-gl_COLORBURN_KHR = 0x929A-gl_DEPTH24_STENCIL8 :: GLenum-gl_DEPTH24_STENCIL8 = 0x88F0-gl_LINEAR_CLIPMAP_LINEAR_SGIX :: GLenum-gl_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170-gl_TEXTURE_MAX_LEVEL :: GLenum-gl_TEXTURE_MAX_LEVEL = 0x813D-gl_TEXTURE_WRAP_R_EXT :: GLenum-gl_TEXTURE_WRAP_R_EXT = 0x8072-gl_OBJECT_SUBTYPE_ARB :: GLenum-gl_OBJECT_SUBTYPE_ARB = 0x8B4F-gl_MATRIX18_ARB :: GLenum-gl_MATRIX18_ARB = 0x88D2-gl_MATRIX_INDEX_ARRAY_POINTER_OES :: GLenum-gl_MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849-gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB :: GLenum-gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E-gl_ALPHA8_SNORM :: GLenum-gl_ALPHA8_SNORM = 0x9014-gl_TESS_CONTROL_SUBROUTINE :: GLenum-gl_TESS_CONTROL_SUBROUTINE = 0x92E9-gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB :: GLenum-gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F-gl_POST_CONVOLUTION_ALPHA_SCALE_EXT :: GLenum-gl_POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F-gl_RGB5_A1_EXT :: GLenum-gl_RGB5_A1_EXT = 0x8057-gl_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS :: GLenum-gl_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC-gl_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM :: GLenum-gl_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = 0x8FB3-gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV :: GLenum-gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A-gl_TEXTURE21_ARB :: GLenum-gl_TEXTURE21_ARB = 0x84D5-gl_SAMPLER_2D_RECT_SHADOW :: GLenum-gl_SAMPLER_2D_RECT_SHADOW = 0x8B64-gl_DEPTH_STENCIL_TEXTURE_MODE :: GLenum-gl_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA-gl_MAP1_VERTEX_ATTRIB10_4_NV :: GLenum-gl_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A-gl_PINLIGHT_NV :: GLenum-gl_PINLIGHT_NV = 0x92A8-gl_TEXTURE_INTERNAL_FORMAT :: GLenum-gl_TEXTURE_INTERNAL_FORMAT = 0x1003-gl_VERTEX_ARRAY_OBJECT_AMD :: GLenum-gl_VERTEX_ARRAY_OBJECT_AMD = 0x9154-gl_OBJECT_LINEAR :: GLenum-gl_OBJECT_LINEAR = 0x2401-gl_TEXTURE_IMMUTABLE_FORMAT_EXT :: GLenum-gl_TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F-gl_COMBINER_COMPONENT_USAGE_NV :: GLenum-gl_COMBINER_COMPONENT_USAGE_NV = 0x8544-gl_RENDERBUFFER_GREEN_SIZE_EXT :: GLenum-gl_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51-gl_CONVOLUTION_FILTER_SCALE :: GLenum-gl_CONVOLUTION_FILTER_SCALE = 0x8014-gl_TEXTURE11 :: GLenum-gl_TEXTURE11 = 0x84CB-gl_BITMAP :: GLenum-gl_BITMAP = 0x1A00-gl_VIEW_COMPATIBILITY_CLASS :: GLenum-gl_VIEW_COMPATIBILITY_CLASS = 0x82B6-gl_TEXTURE26 :: GLenum-gl_TEXTURE26 = 0x84DA-gl_UNSIGNED_INT8_VEC4_NV :: GLenum-gl_UNSIGNED_INT8_VEC4_NV = 0x8FEF-gl_UNSIGNED_INT_VEC3 :: GLenum-gl_UNSIGNED_INT_VEC3 = 0x8DC7-gl_VERTEX_PRECLIP_SGIX :: GLenum-gl_VERTEX_PRECLIP_SGIX = 0x83EE-gl_PACK_LSB_FIRST :: GLenum-gl_PACK_LSB_FIRST = 0x0D01-gl_NEGATIVE_Y_EXT :: GLenum-gl_NEGATIVE_Y_EXT = 0x87DA-gl_FRAMEBUFFER_BINDING_ANGLE :: GLenum-gl_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6-gl_MAP_INVALIDATE_BUFFER_BIT_EXT :: GLenum-gl_MAP_INVALIDATE_BUFFER_BIT_EXT = 0x0008-gl_NO_RESET_NOTIFICATION :: GLenum-gl_NO_RESET_NOTIFICATION = 0x8261-gl_MINMAX_EXT :: GLenum-gl_MINMAX_EXT = 0x802E-gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST :: GLenum-gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC-gl_QUARTER_BIT_ATI :: GLenum-gl_QUARTER_BIT_ATI = 0x00000010-gl_TEXTURE9 :: GLenum-gl_TEXTURE9 = 0x84C9-gl_FLOAT_R16_NV :: GLenum-gl_FLOAT_R16_NV = 0x8884-gl_BLEND_ADVANCED_COHERENT_KHR :: GLenum-gl_BLEND_ADVANCED_COHERENT_KHR = 0x9285-gl_MATRIX_INDEX_ARRAY_POINTER_ARB :: GLenum-gl_MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849-gl_PROXY_TEXTURE_1D_EXT :: GLenum-gl_PROXY_TEXTURE_1D_EXT = 0x8063-gl_PERTURB_EXT :: GLenum-gl_PERTURB_EXT = 0x85AE-gl_IUI_N3F_V3F_EXT :: GLenum-gl_IUI_N3F_V3F_EXT = 0x81B0-gl_COMBINE_RGB_ARB :: GLenum-gl_COMBINE_RGB_ARB = 0x8571-gl_DEBUG_SOURCE_APPLICATION_KHR :: GLenum-gl_DEBUG_SOURCE_APPLICATION_KHR = 0x824A-gl_MAX_GEOMETRY_UNIFORM_COMPONENTS :: GLenum-gl_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE :: GLenum-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = 0x8D56-gl_PROGRAM_ALU_INSTRUCTIONS_ARB :: GLenum-gl_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805-gl_VERTEX_STREAM0_ATI :: GLenum-gl_VERTEX_STREAM0_ATI = 0x876C-gl_EDGE_FLAG_ARRAY_POINTER_EXT :: GLenum-gl_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093-gl_INT_IMAGE_2D_EXT :: GLenum-gl_INT_IMAGE_2D_EXT = 0x9058-gl_READ_FRAMEBUFFER_BINDING_EXT :: GLenum-gl_READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA-gl_TEXTURE_CUBE_MAP_ARB :: GLenum-gl_TEXTURE_CUBE_MAP_ARB = 0x8513-gl_LUMINANCE12_ALPHA12 :: GLenum-gl_LUMINANCE12_ALPHA12 = 0x8047-gl_FUNC_ADD :: GLenum-gl_FUNC_ADD = 0x8006-gl_TRANSPOSE_COLOR_MATRIX_ARB :: GLenum-gl_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6-gl_COLOR_ATTACHMENT6 :: GLenum-gl_COLOR_ATTACHMENT6 = 0x8CE6-gl_GEOMETRY_SUBROUTINE :: GLenum-gl_GEOMETRY_SUBROUTINE = 0x92EB-gl_MAX_ELEMENT_INDEX :: GLenum-gl_MAX_ELEMENT_INDEX = 0x8D6B-gl_QUERY_OBJECT_AMD :: GLenum-gl_QUERY_OBJECT_AMD = 0x9153-gl_TEXTURE_CUBE_MAP_EXT :: GLenum-gl_TEXTURE_CUBE_MAP_EXT = 0x8513-gl_CONSTANT_ATTENUATION :: GLenum-gl_CONSTANT_ATTENUATION = 0x1207-gl_LUMINANCE_FLOAT32_APPLE :: GLenum-gl_LUMINANCE_FLOAT32_APPLE = 0x8818-gl_R32UI :: GLenum-gl_R32UI = 0x8236-gl_UNSIGNED_INT_VEC4_EXT :: GLenum-gl_UNSIGNED_INT_VEC4_EXT = 0x8DC8-gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT :: GLenum-gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C-gl_SAMPLE_MASK_VALUE :: GLenum-gl_SAMPLE_MASK_VALUE = 0x8E52-gl_STRICT_DEPTHFUNC_HINT_PGI :: GLenum-gl_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216-gl_CONVOLUTION_HEIGHT_EXT :: GLenum-gl_CONVOLUTION_HEIGHT_EXT = 0x8019-gl_DEPTH_BUFFER_BIT1_QCOM :: GLenum-gl_DEPTH_BUFFER_BIT1_QCOM = 0x00000200-gl_CLIP_DISTANCE_NV :: GLenum-gl_CLIP_DISTANCE_NV = 0x8C7A-gl_DISPATCH_INDIRECT_BUFFER :: GLenum-gl_DISPATCH_INDIRECT_BUFFER = 0x90EE-gl_LUMINANCE4 :: GLenum-gl_LUMINANCE4 = 0x803F-gl_CLAMP :: GLenum-gl_CLAMP = 0x2900-gl_CONVOLUTION_FORMAT :: GLenum-gl_CONVOLUTION_FORMAT = 0x8017-gl_IMAGE_2D_MULTISAMPLE :: GLenum-gl_IMAGE_2D_MULTISAMPLE = 0x9055-gl_TRIANGLE_STRIP :: GLenum-gl_TRIANGLE_STRIP = 0x0005-gl_BGRA_INTEGER_EXT :: GLenum-gl_BGRA_INTEGER_EXT = 0x8D9B-gl_FRAGMENTS_INSTRUMENT_MAX_SGIX :: GLenum-gl_FRAGMENTS_INSTRUMENT_MAX_SGIX = 0x8315-gl_TESS_CONTROL_SHADER_BIT :: GLenum-gl_TESS_CONTROL_SHADER_BIT = 0x00000008-gl_POINT_SIZE_ARRAY_BUFFER_BINDING_OES :: GLenum-gl_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F-gl_BACK_NORMALS_HINT_PGI :: GLenum-gl_BACK_NORMALS_HINT_PGI = 0x1A223-gl_FOG_COORD_ARRAY :: GLenum-gl_FOG_COORD_ARRAY = 0x8457-gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR :: GLenum-gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D-gl_OPERAND1_RGB_EXT :: GLenum-gl_OPERAND1_RGB_EXT = 0x8591-gl_LINEAR_SHARPEN_COLOR_SGIS :: GLenum-gl_LINEAR_SHARPEN_COLOR_SGIS = 0x80AF-gl_POST_TEXTURE_FILTER_SCALE_SGIX :: GLenum-gl_POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A-gl_FRAMEBUFFER_COMPLETE_OES :: GLenum-gl_FRAMEBUFFER_COMPLETE_OES = 0x8CD5-gl_SYNC_OBJECT_APPLE :: GLenum-gl_SYNC_OBJECT_APPLE = 0x8A53-gl_INDEX_WRITEMASK :: GLenum-gl_INDEX_WRITEMASK = 0x0C21-gl_SIGNED_INTENSITY_NV :: GLenum-gl_SIGNED_INTENSITY_NV = 0x8707-gl_SGX_PROGRAM_BINARY_IMG :: GLenum-gl_SGX_PROGRAM_BINARY_IMG = 0x9130-gl_T4F_V4F :: GLenum-gl_T4F_V4F = 0x2A28--data GLsyncob-type GLsync = Ptr GLsyncob--type GLhalf = Word16-type GLhalfARB = Word16-type GLintptrARB = CPtrdiff-type GLsizeiptrARB = CPtrdiff-type GLDEBUGPROC =- FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())-type GLDEBUGPROCARB = GLDEBUGPROC-type GLDEBUGPROCKHR = GLDEBUGPROC-type GLDEBUGPROCAMD =- FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())-type GLbyte = CChar-type GLubyte = CUChar-type GLfloat = CFloat-type GLclampf = CFloat-type GLfixed = Int32-type GLint64 = Int64-type GLuint64 = Word64-type GLint64EXT = Int64-type GLuint64EXT = Word64-type GLintptr = CIntPtr-type GLsizeiptr = CSize-type GLhalfNV = CUShort-type GLvdpauSurfaceNV = GLintptr-type GLenum = CUInt-type GLboolean = CUChar-type GLvoid = ()-type GLbitfield = CUInt-type GLshort = CShort-type GLint = CInt-type GLclampx = CInt-type GLushort = CUShort-type GLuint = CUInt-type GLsizei = CInt-type GLdouble = CDouble-type GLclampd = CDouble-data GLeglImageOESob-type GLeglImageOES = Ptr GLeglImageOESob-type GLchar = CChar-type GLcharARB = CChar-#ifdef __APPLE__-type GLhandleARB = Ptr ()-#else-type GLhandleARB = CUInt-#endif-
− src/Caramia/Internal/Lens.hs
@@ -1,22 +0,0 @@--- | 'lens' package compatible Lens.------ This is used to avoid 'lens' dependency.-----{-# LANGUAGE RankNTypes, NoImplicitPrelude #-}--module Caramia.Internal.Lens- ( Lens- , Lens'- , lens )- where--import Caramia.Prelude--type Lens s t a b = forall f. Functor f => (a -> f b) -> s -> f t-type Lens' s a = Lens s s a a--lens :: (s -> a) -> (s -> a -> s) -> Lens' s a-lens sa sbt afb s = sbt s `fmap` afb (sa s)-{-# INLINE lens #-}-
− src/Caramia/Internal/OpenGLCApi.hs
@@ -1,306 +0,0 @@--- | Module for using the raw OpenGL API.------ This is a mixture from the OpenGLRaw package and some of our own stuff.------ TODO: Some of this stuff should probably be in OpenGLRaw so we could add--- stuff there instead.-----{-# LANGUAGE ForeignFunctionInterface, NoImplicitPrelude #-}--module Caramia.Internal.OpenGLCApi- ( module Ex-- , gi- , gf-- , withBoundVAO- , withBoundBuffer- , withBoundElementBuffer- , withBoundPixelUnpackBuffer- , withBoundProgram- , withBoundDrawFramebuffer-- , setBoundProgram- , setBoundElementBuffer-- -- Functions that I made up that I wish were in OpenGL.- , mglDeleteBuffer- , mglGenBuffer- , mglDeleteVertexArray- , mglGenVertexArray- , mglDeleteFramebuffer- , mglGenFramebuffer- , mglNamedBufferData- , mglVertexArrayVertexAttribOffsetAndEnable- , mglVertexArrayVertexAttribIOffsetAndEnable- , mglVertexArrayVertexAttribDivisor- -- GL_ARB_separate_shader_objects...but I want them even if that extension- -- is not available.- , mglProgramUniform1ui- , mglProgramUniform2ui- , mglProgramUniform3ui- , mglProgramUniform4ui- , mglProgramUniform1i- , mglProgramUniform2i- , mglProgramUniform3i- , mglProgramUniform4i- , mglProgramUniform1f- , mglProgramUniform2f- , mglProgramUniform3f- , mglProgramUniform4f- , mglProgramUniformMatrix4fv- , mglProgramUniformMatrix3fv- , mglMapNamedBufferRange- , mglUnmapNamedBuffer- , mglNamedCopyBufferSubData- )- where--import Caramia.Prelude--import Caramia.Internal.FlextGL as Ex-import Foreign.Ptr-import Foreign.C.Types-import Foreign.Storable-import Foreign.Marshal.Alloc-import Foreign.Marshal.Utils-import Control.Exception--{-# ANN module ("HLint: ignore Use camelCase" :: String) #-}--whenExt :: IO Bool -> IO a -> IO a -> IO a-whenExt test action other_action = do- x <- test- if x then action else other_action-{-# INLINE whenExt #-}--mglDeleteBuffer :: GLuint -> IO ()-mglDeleteBuffer x = with x $ \x_ptr -> glDeleteBuffers 1 x_ptr--mglDeleteVertexArray :: GLuint -> IO ()-mglDeleteVertexArray x = with x $ \x_ptr -> glDeleteVertexArrays 1 x_ptr--mglGenBuffer :: IO GLuint-mglGenBuffer = alloca $ \x_ptr -> glGenBuffers 1 x_ptr *> peek x_ptr--mglGenVertexArray :: IO GLuint-mglGenVertexArray = alloca $ \x_ptr -> glGenVertexArrays 1 x_ptr *> peek x_ptr--mglGenFramebuffer :: IO GLuint-mglGenFramebuffer = alloca $ \x_ptr -> glGenFramebuffers 1 x_ptr *> peek x_ptr--mglDeleteFramebuffer :: GLuint -> IO ()-mglDeleteFramebuffer x = with x $ \x_ptr -> glDeleteFramebuffers 1 x_ptr--withBoundDrawFramebuffer :: GLuint -> IO a -> IO a-withBoundDrawFramebuffer x action = do- old <- gi gl_DRAW_FRAMEBUFFER_BINDING- finally (glBindFramebuffer gl_DRAW_FRAMEBUFFER x *> action)- (glBindFramebuffer gl_DRAW_FRAMEBUFFER old)--withBoundProgram :: GLuint -> IO a -> IO a-withBoundProgram program action = do- old <-- alloca $ \x_ptr -> glGetIntegerv gl_CURRENT_PROGRAM x_ptr *> peek x_ptr- finally (glUseProgram program *> action)- (glUseProgram $ fromIntegral old)--setBoundProgram :: GLuint -> IO ()-setBoundProgram = glUseProgram--withBoundBuffer :: GLuint -> IO a -> IO a-withBoundBuffer buf action = do- old <-- alloca $ \x_ptr -> glGetIntegerv gl_ARRAY_BUFFER_BINDING x_ptr *>- peek x_ptr- finally (glBindBuffer gl_ARRAY_BUFFER buf *> action)- (glBindBuffer gl_ARRAY_BUFFER $ fromIntegral old)--setBoundElementBuffer :: GLuint -> IO ()-setBoundElementBuffer =- glBindBuffer gl_ELEMENT_ARRAY_BUFFER--withBoundElementBuffer :: GLuint -> IO a -> IO a-withBoundElementBuffer buf action = do- old <-- alloca $ \x_ptr -> glGetIntegerv gl_ELEMENT_ARRAY_BUFFER_BINDING x_ptr *>- peek x_ptr- finally (glBindBuffer gl_ELEMENT_ARRAY_BUFFER buf *> action)- (glBindBuffer gl_ELEMENT_ARRAY_BUFFER $ fromIntegral old)--withBoundPixelUnpackBuffer :: GLuint -> IO a -> IO a-withBoundPixelUnpackBuffer buf action = do- old <-- alloca $ \x_ptr -> glGetIntegerv gl_PIXEL_UNPACK_BUFFER_BINDING x_ptr *>- peek x_ptr- finally (glBindBuffer gl_PIXEL_UNPACK_BUFFER buf *> action)- (glBindBuffer gl_PIXEL_UNPACK_BUFFER $ fromIntegral old)--withBoundVAO :: GLuint -> IO a -> IO a-withBoundVAO vao action = do- old <-- alloca $ \x_ptr -> glGetIntegerv gl_VERTEX_ARRAY_BINDING x_ptr *>- peek x_ptr- finally (glBindVertexArray vao *> action)- (glBindVertexArray $ fromIntegral old)--mglVertexArrayVertexAttribDivisor ::- GLuint -> GLuint -> GLuint -> IO ()-mglVertexArrayVertexAttribDivisor vaobj index divisor = mask_ $- withBoundVAO vaobj $- glVertexAttribDivisor index divisor--mglVertexArrayVertexAttribOffsetAndEnable ::- GLuint -> GLuint -> GLuint -> GLint -> GLenum- -> GLboolean -> GLsizei -> CPtrdiff -> IO ()-mglVertexArrayVertexAttribOffsetAndEnable- vaobj buffer index size dtype normalized stride (CPtrdiff offset) = mask_ $-- withBoundVAO vaobj $- withBoundBuffer buffer $ do- glEnableVertexAttribArray index- glVertexAttribPointer index size dtype normalized stride- (intPtrToPtr $ fromIntegral offset)--mglVertexArrayVertexAttribIOffsetAndEnable ::- GLuint -> GLuint -> GLuint -> GLint -> GLenum- -> GLsizei -> GLintptr -> IO ()-mglVertexArrayVertexAttribIOffsetAndEnable- vaobj buffer index size dtype stride offset = mask_ $-- withBoundVAO vaobj $- withBoundBuffer buffer $ do- glEnableVertexAttribArray index- glVertexAttribIPointer index size dtype stride- (intPtrToPtr $ fromIntegral offset)--mglNamedBufferData :: GLuint- -> GLsizeiptr- -> Ptr ()- -> GLenum- -> IO ()-mglNamedBufferData buf size ptr usage =- whenExt has_GL_EXT_direct_state_access- (glNamedBufferDataEXT buf size ptr usage)- (withBoundBuffer buf $ glBufferData gl_ARRAY_BUFFER size ptr usage)--mglProgramUniform1ui :: GLuint -> GLint -> GLuint -> IO ()-mglProgramUniform1ui program loc v1 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniform1ui program loc v1)- (withBoundProgram program $ glUniform1ui loc v1)--mglProgramUniform2ui :: GLuint -> GLint -> GLuint -> GLuint -> IO ()-mglProgramUniform2ui program loc v1 v2 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniform2ui program loc v1 v2)- (withBoundProgram program $ glUniform2ui loc v1 v2)--mglProgramUniform3ui :: GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ()-mglProgramUniform3ui program loc v1 v2 v3 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniform3ui program loc v1 v2 v3)- (withBoundProgram program $ glUniform3ui loc v1 v2 v3)--mglProgramUniform4ui :: GLuint -> GLint -> GLuint -> GLuint -> GLuint- -> GLuint -> IO ()-mglProgramUniform4ui program loc v1 v2 v3 v4 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniform4ui program loc v1 v2 v3 v4)- (withBoundProgram program $ glUniform4ui loc v1 v2 v3 v4)--mglProgramUniform1i :: GLuint -> GLint -> GLint -> IO ()-mglProgramUniform1i program loc v1 =- whenExt has_GL_ARB_separate_shader_objects (glProgramUniform1i program loc v1)- (withBoundProgram program $ glUniform1i loc v1)--mglProgramUniform2i :: GLuint -> GLint -> GLint -> GLint -> IO ()-mglProgramUniform2i program loc v1 v2 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniform2i program loc v1 v2)- (withBoundProgram program $ glUniform2i loc v1 v2)--mglProgramUniform3i :: GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()-mglProgramUniform3i program loc v1 v2 v3 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniform3i program loc v1 v2 v3)- (withBoundProgram program $ glUniform3i loc v1 v2 v3)--mglProgramUniform4i :: GLuint -> GLint -> GLint -> GLint -> GLint- -> GLint -> IO ()-mglProgramUniform4i program loc v1 v2 v3 v4 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniform4i program loc v1 v2 v3 v4)- (withBoundProgram program $ glUniform4i loc v1 v2 v3 v4)--mglProgramUniform1f :: GLuint -> GLint -> GLfloat -> IO ()-mglProgramUniform1f program loc v1 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniform1f program loc v1)- (withBoundProgram program $ glUniform1f loc v1)--mglProgramUniform2f :: GLuint -> GLint -> GLfloat -> GLfloat -> IO ()-mglProgramUniform2f program loc v1 v2 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniform2f program loc v1 v2)- (withBoundProgram program $ glUniform2f loc v1 v2)--mglProgramUniform3f :: GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()-mglProgramUniform3f program loc v1 v2 v3 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniform3f program loc v1 v2 v3)- (withBoundProgram program $ glUniform3f loc v1 v2 v3)--mglProgramUniform4f :: GLuint -> GLint- -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()-mglProgramUniform4f program loc v1 v2 v3 v4 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniform4f program loc v1 v2 v3 v4)- (withBoundProgram program $ glUniform4f loc v1 v2 v3 v4)--mglProgramUniformMatrix4fv :: GLuint -> GLint- -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()-mglProgramUniformMatrix4fv program loc count transpose m44 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniformMatrix4fv program loc count transpose m44)- (withBoundProgram program $- glUniformMatrix4fv loc count transpose m44)--mglProgramUniformMatrix3fv :: GLuint -> GLint- -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()-mglProgramUniformMatrix3fv program loc count transpose m33 =- whenExt has_GL_ARB_separate_shader_objects- (glProgramUniformMatrix3fv program loc count transpose m33)- (withBoundProgram program $- glUniformMatrix3fv loc count transpose m33)--mglMapNamedBufferRange :: GLuint -> GLintptr- -> GLsizeiptr -> GLbitfield -> IO (Ptr ())-mglMapNamedBufferRange buffer offset length access =- withBoundBuffer buffer $- glMapBufferRange gl_ARRAY_BUFFER offset length access--mglUnmapNamedBuffer :: GLuint -> IO GLboolean-mglUnmapNamedBuffer buffer =- withBoundBuffer buffer $ glUnmapBuffer gl_ARRAY_BUFFER--mglNamedCopyBufferSubData :: GLuint -> GLuint- -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()-mglNamedCopyBufferSubData src dst src_offset dst_offset num_bytes =- withBoundElementBuffer src $- withBoundBuffer dst $- glCopyBufferSubData gl_ELEMENT_ARRAY_BUFFER- gl_ARRAY_BUFFER- src_offset- dst_offset- num_bytes---- | Shortcut to `glGetIntegerv` when you query only one integer.-gi :: GLenum -> IO GLuint-gi x = alloca $ \get_ptr -> glGetIntegerv x (castPtr get_ptr) *>- peek get_ptr--gf :: GLenum -> IO GLfloat-gf x = alloca $ \get_ptr -> glGetFloatv x (castPtr get_ptr) *> peek get_ptr-
− src/Caramia/Internal/OpenGLDebug.hs
@@ -1,116 +0,0 @@--- | Module for using the OpenGL debug extensions for debug output.--{-# LANGUAGE NoImplicitPrelude, DeriveDataTypeable #-}--module Caramia.Internal.OpenGLDebug- ( activateDebugMode- , flushDebugMessages )- where--import Caramia.Prelude-import Caramia.Internal.OpenGLCApi-import Caramia.Internal.ContextLocalData-import Control.Monad.Trans.State.Strict-import Control.Monad.IO.Class-import Control.Exception-import System.IO-import Foreign.Storable-import Foreign.C.String-import Foreign.Marshal.Array-import Foreign.Ptr--newtype DebugModeActivated = DebugModeActivated Bool- deriving ( Typeable )--activateDebugMode :: IO ()-activateDebugMode = do- necessary_extensions <- has_GL_KHR_debug- when necessary_extensions reallyActivateDebugMode- where- reallyActivateDebugMode = mask_ $ do- glDebugMessageControl gl_DONT_CARE- gl_DONT_CARE- gl_DONT_CARE- 0- nullPtr- (fromIntegral gl_TRUE)- glEnable gl_DEBUG_OUTPUT- withCStringLen "Debug output activated." $ \(cstr, len) ->- glDebugMessageInsert gl_DEBUG_SOURCE_APPLICATION- gl_DEBUG_TYPE_OTHER- 0- gl_DEBUG_SEVERITY_LOW- (fromIntegral len)- cstr- storeContextLocalData (DebugModeActivated True)--flushDebugMessages :: IO ()-flushDebugMessages = do- DebugModeActivated debug_mode <-- retrieveContextLocalData $ return $ DebugModeActivated False- when debug_mode $- allocaArray 65535 $ \cstr_msg ->- allocaArray maxMsgs $ \sources ->- allocaArray maxMsgs $ \types ->- allocaArray maxMsgs $ \ids ->- allocaArray maxMsgs $ \severities ->- allocaArray maxMsgs $ \lengths -> do- num_msgs <- fromIntegral <$>- glGetDebugMessageLog (fromIntegral maxMsgs)- 65535- sources- types- ids- severities- lengths- cstr_msg-- flip evalStateT cstr_msg $ for_ [0..num_msgs-1] $ \index -> do- src <- peo sources index- typ <- peo types index- id <- peo ids index- severity <- peo severities index- length <- peo lengths index- cur_ptr <- get-- str <- liftIO $ peekCStringLen (cur_ptr, fromIntegral length)- liftIO $ hPutStrLn stderr $- "[" <> show id <> ", " <>- showSrc src <> ", " <>- showType typ <> ", " <>- showSeverity severity <> "] " <>- str-- put (plusPtr cur_ptr $ fromIntegral length)-- when (num_msgs >= maxMsgs) flushDebugMessages- where- peo ptr idx = liftIO $ peekElemOff ptr idx-- maxMsgs = 10000--showSeverity :: GLenum -> String-showSeverity x | x == gl_DEBUG_SEVERITY_HIGH = "high"- | x == gl_DEBUG_SEVERITY_MEDIUM = "medium"- | x == gl_DEBUG_SEVERITY_LOW = "low"-showSeverity _ = "unknown"--showType :: GLenum -> String-showType x | x == gl_DEBUG_TYPE_ERROR = "error"- | x == gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR = "deprecated"- | x == gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR = "undefined"- | x == gl_DEBUG_TYPE_PORTABILITY = "portability"- | x == gl_DEBUG_TYPE_PERFORMANCE = "performance"- | x == gl_DEBUG_TYPE_OTHER = "other"-showType _ = "unknown"--showSrc :: GLenum -> String-showSrc x | x == gl_DEBUG_SOURCE_APPLICATION = "application"- | x == gl_DEBUG_SOURCE_OTHER = "other"- | x == gl_DEBUG_SOURCE_API = "api"- | x == gl_DEBUG_SOURCE_WINDOW_SYSTEM = "windowsystem"- | x == gl_DEBUG_SOURCE_SHADER_COMPILER = "shadercompiler"- | x == gl_DEBUG_SOURCE_THIRD_PARTY = "thirdparty"-showSrc _ = "unknown"--
− src/Caramia/Math.hs
@@ -1,1647 +0,0 @@-{-# LANGUAGE NoImplicitPrelude, BangPatterns, DeriveDataTypeable #-}-{-# OPTIONS_GHC -fno-warn-name-shadowing #-}---- | Matrix, vector and quaternion math module. This module is concerned about--- common functions for graphics programming and the types from this module are--- used by the rest of Caramia.------ If you require more functionality or types, I suggest you look at a--- dedicated linear algebra package such as \'hmatrix\' or \'linear\'.------ #storable#--- `Matrix44`, `Matrix33`, `Quaternion` and `Vector3` are all `Storable`s.------ The matrices are stored as column vectors. That is, if a `Matrix4` is--- labelled like this:------ @--- Col.1 Col.2 Col.3 Col.4--- ------------------------------ Row 1 m11 m12 m13 m14--- Row 2 m21 m22 m23 m24--- Row 3 m31 m32 m33 m34--- Row 4 m41 m42 m43 m44--- ------------------------------ @------ The matrix would occupy memory (as a `Storable`) as follows:------ @--- m11, m21, m31, m41, m12, m22, m32, m42, m13 ...--- @------ where each value is a 32-bit floating point value. This is what OpenGL uses.------ (if the above matrix was a translation matrix, then m14, m24 and m34 would--- contain the x, y and z coordinates of a translation).------ The scheme is the same for a `Matrix33`, just drop the fourth row and--- column.------ `Vector3` is stored as three consecutive floating point values.------ @--- x, y, z--- @------ `Quaternion` first stores the `w` as the last element. So, the layout of a--- quaternion is:------ @--- x, y, z, w--- @------ This is also how `Caramia.Shader` maps quaternions to vectors in shaders.-----module Caramia.Math- ( Matrix44(..)- , Matrix33(..)- , Vector3(..)- , Quaternion(..)-- -- * sizeOfs- , sizeOfMatrix44- , sizeOfMatrix33- , sizeOfVector3- , sizeOfQuaternion-- -- * 4x4 matrices- , matrix44- , withMatrix44Ptr- , inverse44- , identity44- , multiply44- , determinant44- , zero44- , perspective44- , distance44- , frustum44- , ortho44- , lookat44- , translate44- , transpose44- , scale44- , rotate44-- -- * 3x3 matrices- , matrix33- , withMatrix33Ptr- , inverse33- , identity33- , multiply33- , determinant33- , zero33- , distance33- , transpose33- , matrix33ToMatrix44- , matrix44ToMatrix33--- -- * quaternions- , quaternion- , identityq- , canonicalizeq- , distanceq- , lengthq- , normalizeq- , multiplyq- , zeroq- , axisAngleToQuaternion- , matrix44ToQuaternion- , quaternionToMatrix44-- , toTupleq- , fromTupleq-- -- * 3-component vectors- , vector3- , zero3- , distance3- , length3- , plus3- , minus3- , normalize3- , angle3- , cross3- , dot3- , negative3- , scalarMultiply3- , vector3_1ToQuaternion- , vector3Transform44- , toTuple3- , fromTuple3-- -- ** Lenses- , _x- , _y- , _z-- -- * Misc- , prettyShow )- where---- Hacking guide:------ All data types are unpacked and strict. (Almost) all functions use bang--- patterns to make sure everything is strict (mostly unneeded as they would be--- strict anyway but, for consistency, in this module, use them everywhere).------ Everything is also inlined.------ Matrix44 functions have 44 at the end.--- Matrix33 functions have 33 at the end.--- Vector3 functions have 3 at the end.--- Quaternion functions have q at the end.--------- Hlint likes to complain about this file, mostly about the repetitions.-----import Caramia.Prelude--import Foreign.Ptr ( Ptr, castPtr )-import Foreign.Storable ( pokeElemOff, Storable(..) )-import Foreign.Marshal.Array ( allocaArray )-import Foreign.C.Types ( CFloat(..) )-import Caramia.Internal.Lens--{-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}---- | A 4x4 matrix. Each mXX function accesses an individual element of the--- matrix.-data Matrix44 = Matrix44 { m11 :: {-# UNPACK #-} !Float- , m21 :: {-# UNPACK #-} !Float- , m31 :: {-# UNPACK #-} !Float- , m41 :: {-# UNPACK #-} !Float- , m12 :: {-# UNPACK #-} !Float- , m22 :: {-# UNPACK #-} !Float- , m32 :: {-# UNPACK #-} !Float- , m42 :: {-# UNPACK #-} !Float- , m13 :: {-# UNPACK #-} !Float- , m23 :: {-# UNPACK #-} !Float- , m33 :: {-# UNPACK #-} !Float- , m43 :: {-# UNPACK #-} !Float- , m14 :: {-# UNPACK #-} !Float- , m24 :: {-# UNPACK #-} !Float- , m34 :: {-# UNPACK #-} !Float- , m44 :: {-# UNPACK #-} !Float }- deriving ( Eq, Show, Read, Ord, Typeable )---- | A 3x3 matrix. Each nXX function accesses an individual element of the--- matrix.-data Matrix33 = Matrix33 { n11 :: {-# UNPACK #-} !Float- , n21 :: {-# UNPACK #-} !Float- , n31 :: {-# UNPACK #-} !Float- , n12 :: {-# UNPACK #-} !Float- , n22 :: {-# UNPACK #-} !Float- , n32 :: {-# UNPACK #-} !Float- , n13 :: {-# UNPACK #-} !Float- , n23 :: {-# UNPACK #-} !Float- , n33 :: {-# UNPACK #-} !Float }- deriving ( Eq, Show, Read, Ord, Typeable )---- | A 3-dimensional vector. `x`, `y` and `z` access each individual--- component.-data Vector3 = Vector3 { x :: {-# UNPACK #-} !Float- , y :: {-# UNPACK #-} !Float- , z :: {-# UNPACK #-} !Float }- deriving ( Eq, Show, Read, Ord, Typeable )--_x :: Lens' Vector3 Float-_x = lens x (\old_vec new_x -> old_vec { x = new_x })-_y :: Lens' Vector3 Float-_y = lens y (\old_vec new_y -> old_vec { y = new_y })-_z :: Lens' Vector3 Float-_z = lens z (\old_vec new_z -> old_vec { z = new_z })---- | A quaternion. It's composed of four values, `qx`, `qy`, `qz` and `qw`.------ In the context of Caramia, quaternions are used exclusively to represent--- rotations.-data Quaternion = Quaternion { qx :: {-# UNPACK #-} !Float- , qy :: {-# UNPACK #-} !Float- , qz :: {-# UNPACK #-} !Float- , qw :: {-# UNPACK #-} !Float }- deriving ( Eq, Show, Read, Ord, Typeable )---- | Returns the size of a `Vector3`. This is just a shortcut to calling--- `sizeOf` on a vector.-sizeOfVector3 :: Int-sizeOfVector3 = sizeOf (undefined :: Vector3)---- | Returns the size of a `Matrix3`. This is just a shortcut to calling--- `sizeOf` on a matrix.-sizeOfMatrix33 :: Int-sizeOfMatrix33 = sizeOf (undefined :: Matrix33)---- | Returns the size of a `Matrix4`. This is just a shortcut to calling--- `sizeOf` on a matrix.-sizeOfMatrix44 :: Int-sizeOfMatrix44 = sizeOf (undefined :: Matrix44)---- | Returns the size of a `Quaternion`. This is just a shortcut to calling--- `sizeOf` on a quaternion.-sizeOfQuaternion :: Int-sizeOfQuaternion = sizeOf (undefined :: Quaternion)--instance Storable Vector3 where- sizeOf _ = sizeOf (undefined :: Float) * 3- alignment _ = alignment (undefined :: Float)- peek ptr = {-# SCC "Vector3_peek" #-} do- x <- peekElemOff cptr 0 :: IO Float- y <- peekElemOff cptr 1 :: IO Float- z <- peekElemOff cptr 2 :: IO Float- return $ Vector3 x y z- where- cptr = castPtr ptr :: Ptr Float-- poke ptr (Vector3 x y z) = {-# SCC "Vector3_poke" #-} do- pokeElemOff cptr 0 x- pokeElemOff cptr 1 y- pokeElemOff cptr 2 z- where- cptr = castPtr ptr :: Ptr Float--instance Storable Quaternion where- sizeOf _ = sizeOf (undefined :: Float) * 4- alignment _ = alignment (undefined :: Float)- peek ptr = {-# SCC "Quaternion_peek" #-} do- x <- peekElemOff cptr 0 :: IO Float- y <- peekElemOff cptr 1 :: IO Float- z <- peekElemOff cptr 2 :: IO Float- w <- peekElemOff cptr 3 :: IO Float- return $ Quaternion x y z w- where- cptr = castPtr ptr :: Ptr Float-- poke ptr (Quaternion x y z w) = {-# SCC "Quaternion_poke" #-} do- pokeElemOff cptr 0 x- pokeElemOff cptr 1 y- pokeElemOff cptr 2 z- pokeElemOff cptr 3 w- where- cptr = castPtr ptr :: Ptr Float--instance Storable Matrix44 where- sizeOf _ = sizeOf (undefined :: Float) * 16- alignment _ = alignment (undefined :: Float)- peek ptr = {-# SCC "Matrix44_peek" #-} do- r11 <- peekElemOff cptr 0 :: IO Float- r21 <- peekElemOff cptr 1 :: IO Float- r31 <- peekElemOff cptr 2 :: IO Float- r41 <- peekElemOff cptr 3 :: IO Float- r12 <- peekElemOff cptr 4 :: IO Float- r22 <- peekElemOff cptr 5 :: IO Float- r32 <- peekElemOff cptr 6 :: IO Float- r42 <- peekElemOff cptr 7 :: IO Float- r13 <- peekElemOff cptr 8 :: IO Float- r23 <- peekElemOff cptr 9 :: IO Float- r33 <- peekElemOff cptr 10 :: IO Float- r43 <- peekElemOff cptr 11 :: IO Float- r14 <- peekElemOff cptr 12 :: IO Float- r24 <- peekElemOff cptr 13 :: IO Float- r34 <- peekElemOff cptr 14 :: IO Float- r44 <- peekElemOff cptr 15 :: IO Float- return $ matrix44 r11 r12 r13 r14- r21 r22 r23 r24- r31 r32 r33 r34- r41 r42 r43 r44- where- cptr = castPtr ptr :: Ptr Float-- poke ptr mat = {-# SCC "Matrix44_poke" #-} do- pokeElemOff cptr 0 f11- pokeElemOff cptr 1 f21- pokeElemOff cptr 2 f31- pokeElemOff cptr 3 f41- pokeElemOff cptr 4 f12- pokeElemOff cptr 5 f22- pokeElemOff cptr 6 f32- pokeElemOff cptr 7 f42- pokeElemOff cptr 8 f13- pokeElemOff cptr 9 f23- pokeElemOff cptr 10 f33- pokeElemOff cptr 11 f43- pokeElemOff cptr 12 f14- pokeElemOff cptr 13 f24- pokeElemOff cptr 14 f34- pokeElemOff cptr 15 f44- where- cptr = castPtr ptr :: Ptr Float- f11 = m11 mat- f21 = m21 mat- f31 = m31 mat- f41 = m41 mat- f12 = m12 mat- f22 = m22 mat- f32 = m32 mat- f42 = m42 mat- f13 = m13 mat- f23 = m23 mat- f33 = m33 mat- f43 = m43 mat- f14 = m14 mat- f24 = m24 mat- f34 = m34 mat- f44 = m44 mat--instance Storable Matrix33 where- sizeOf _ = sizeOf (undefined :: CFloat) * 9- alignment _ = alignment (undefined :: CFloat)- peek ptr = {-# SCC "Matrix33_peek" #-} do- r11 <- peekElemOff cptr 0 :: IO Float- r21 <- peekElemOff cptr 1 :: IO Float- r31 <- peekElemOff cptr 2 :: IO Float- r12 <- peekElemOff cptr 3 :: IO Float- r22 <- peekElemOff cptr 4 :: IO Float- r32 <- peekElemOff cptr 5 :: IO Float- r13 <- peekElemOff cptr 6 :: IO Float- r23 <- peekElemOff cptr 7 :: IO Float- r33 <- peekElemOff cptr 8 :: IO Float- return $ matrix33 r11 r12 r13- r21 r22 r23- r31 r32 r33- where- cptr = castPtr ptr :: Ptr Float-- poke ptr mat = {-# SCC "Matrix33_poke" #-} do- pokeElemOff cptr 0 f11- pokeElemOff cptr 1 f21- pokeElemOff cptr 2 f31- pokeElemOff cptr 3 f12- pokeElemOff cptr 4 f22- pokeElemOff cptr 5 f32- pokeElemOff cptr 6 f13- pokeElemOff cptr 7 f23- pokeElemOff cptr 8 f33- where- cptr = castPtr ptr :: Ptr Float- f11 = n11 mat- f21 = n21 mat- f31 = n31 mat- f12 = n12 mat- f22 = n22 mat- f32 = n32 mat- f13 = n13 mat- f23 = n23 mat- f33 = n33 mat---- | Constructs a `Vector3` out of three values.-vector3 :: Float -- ^ X-coodinate.- -> Float -- ^ Y-coodinate.- -> Float -- ^ Z-coodinate.- -> Vector3-{-# INLINE vector3 #-}-vector3 !x !y !z = Vector3 { x = x, y = y, z = z }---- | Constructs a `Matrix44` out of 16 values.------ The order of the values is column-first. That is, in this order:------ @--- m11 m12 m13 m14 m21 m22 m23 m24 m31 ...--- @------ This allows you to write the matrix out this way:------ @--- let the_greatest_4x4_matrix_of_them_all =--- matrix4 m11 m12 m13 m14--- m21 m22 m23 m24--- m31 m32 m33 m34--- m41 m42 m43 m44--- in ...--- @-matrix44 :: Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Matrix44-{-# INLINE matrix44 #-}-matrix44 !m11 !m12 !m13 !m14- !m21 !m22 !m23 !m24- !m31 !m32 !m33 !m34- !m41 !m42 !m43 !m44 = {-# SCC "matrix44" #-}- Matrix44 { m11 = m11- , m21 = m21- , m31 = m31- , m41 = m41- , m12 = m12- , m22 = m22- , m32 = m32- , m42 = m42- , m13 = m13- , m23 = m23- , m33 = m33- , m43 = m43- , m14 = m14- , m24 = m24- , m34 = m34- , m44 = m44 }---- | Constructs a `Matrix3` out of 9 values.------ The order of the values is the same as for `matrix4`, just drop the fourth--- row and column.-matrix33 :: Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Float- -> Matrix33-{-# INLINE matrix33 #-}-matrix33 !m11 !m12 !m13- !m21 !m22 !m23- !m31 !m32 !m33 = {-# SCC "matrix33" #-}- Matrix33 { n11 = m11- , n21 = m21- , n31 = m31- , n12 = m12- , n22 = m22- , n32 = m32- , n13 = m13- , n23 = m23- , n33 = m33 }---- | Transforms a `Matrix33` into a `Matrix44`.------ If this is the original 3x3 matrix:------ @--- ------------------------ m11 m12 m13--- m21 m22 m23--- m31 m32 m33--- ------------------------ @------ Then this is the resulting matrix:------ @--- ---------------------------- m11 m12 m13 0--- m21 m22 m23 0--- m31 m32 m33 0--- 0 0 0 1--- ---------------------------- @-matrix33ToMatrix44 :: Matrix33 -> Matrix44-{-# INLINE matrix33ToMatrix44 #-}-matrix33ToMatrix44 !mat = {-# SCC "matrix33ToMatrix44" #-}- Matrix44 { m11 = f11- , m21 = f21- , m31 = f31- , m12 = f12- , m22 = f22- , m32 = f32- , m13 = f13- , m23 = f23- , m33 = f33-- , m41 = 0.0- , m42 = 0.0- , m43 = 0.0- , m44 = 1.0- , m14 = 0.0- , m24 = 0.0- , m34 = 0.0 }- where- f11 = n11 mat- f21 = n21 mat- f31 = n31 mat- f12 = n12 mat- f22 = n22 mat- f32 = n32 mat- f13 = n13 mat- f23 = n23 mat- f33 = n33 mat----- | Transforms a `Matrix44` into a `Matrix33`.------ If this is the original 4x4 matrix:------ @--- ------------------------------- m11 m12 m13 m14--- m21 m22 m23 m24--- m31 m32 m33 m34--- m41 m42 m43 m44--- ------------------------------- @------ Then this is the resulting 3x3 matrix:------ @--- ------------------------ m11 m12 m13--- m21 m22 m23--- m31 m32 m33--- ------------------------ @------ The fourth row and column are discarded.-matrix44ToMatrix33 :: Matrix44 -> Matrix33-{-# INLINE matrix44ToMatrix33 #-}-matrix44ToMatrix33 !mat = {-# SCC "matrix44ToMatrix33" #-}- Matrix33 { n11 = f11- , n21 = f21- , n31 = f31- , n12 = f12- , n22 = f22- , n32 = f32- , n13 = f13- , n23 = f23- , n33 = f33 }- where- f11 = m11 mat- f21 = m21 mat- f31 = m31 mat- f12 = m12 mat- f22 = m22 mat- f32 = m32 mat- f13 = m13 mat- f23 = m23 mat- f33 = m33 mat---- | Runs an IO action with a pointer to a Matrix44. The pointer is valid only--- during the given IO action.------ The pointer points to an array of 16 floating point values. See--- "Caramia.Math#storable" for a description in which order the values appear.-withMatrix44Ptr :: Matrix44 -- ^ The matrix to marshal.- -> (Ptr CFloat -> IO a) -- ^ An IO action that receives a- -- pointer to floating point values- -- describing the matrix.- -> IO a-{-# INLINE withMatrix44Ptr #-}-withMatrix44Ptr mat action = {-# SCC "withMatrix44Ptr" #-}- allocaArray 16 $ \ptr -> do- pokeElemOff ptr 0 (CFloat $ m11 mat)- pokeElemOff ptr 1 (CFloat $ m21 mat)- pokeElemOff ptr 2 (CFloat $ m31 mat)- pokeElemOff ptr 3 (CFloat $ m41 mat)- pokeElemOff ptr 4 (CFloat $ m12 mat)- pokeElemOff ptr 5 (CFloat $ m22 mat)- pokeElemOff ptr 6 (CFloat $ m32 mat)- pokeElemOff ptr 7 (CFloat $ m42 mat)- pokeElemOff ptr 8 (CFloat $ m13 mat)- pokeElemOff ptr 9 (CFloat $ m23 mat)- pokeElemOff ptr 10 (CFloat $ m33 mat)- pokeElemOff ptr 11 (CFloat $ m43 mat)- pokeElemOff ptr 12 (CFloat $ m14 mat)- pokeElemOff ptr 13 (CFloat $ m24 mat)- pokeElemOff ptr 14 (CFloat $ m34 mat)- pokeElemOff ptr 15 (CFloat $ m44 mat)- action ptr---- | Same as `withMatrix44Ptr`, only with 9 floating values.-withMatrix33Ptr :: Matrix33 -> (Ptr CFloat -> IO a) -> IO a-{-# INLINE withMatrix33Ptr #-}-withMatrix33Ptr mat action = {-# SCC "withMatrix33Ptr" #-}- allocaArray 9 $ \ptr -> do- pokeElemOff ptr 0 (CFloat $ n11 mat)- pokeElemOff ptr 1 (CFloat $ n21 mat)- pokeElemOff ptr 2 (CFloat $ n31 mat)- pokeElemOff ptr 3 (CFloat $ n12 mat)- pokeElemOff ptr 4 (CFloat $ n22 mat)- pokeElemOff ptr 5 (CFloat $ n32 mat)- pokeElemOff ptr 6 (CFloat $ n13 mat)- pokeElemOff ptr 7 (CFloat $ n23 mat)- pokeElemOff ptr 8 (CFloat $ n33 mat)- action ptr---- | Returns the identity 3x3 matrix.-identity33 :: Matrix33-{-# INLINE identity33 #-}-identity33 = {-# SCC "identity33" #-}- Matrix33 { n11 = 1.0- , n21 = 0.0- , n31 = 0.0- , n12 = 0.0- , n22 = 1.0- , n32 = 0.0- , n13 = 0.0- , n23 = 0.0- , n33 = 1.0 }---- | Returns the 3x3 matrix where all components are zero.-zero33 :: Matrix33-{-# INLINE zero33 #-}-zero33 = {-# SCC "zero33" #-}- Matrix33 { n11 = 0.0- , n21 = 0.0- , n31 = 0.0- , n12 = 0.0- , n22 = 0.0- , n32 = 0.0- , n13 = 0.0- , n23 = 0.0- , n33 = 0.0 }---- | Returns the identity 4x4 matrix.-identity44 :: Matrix44-{-# INLINE identity44 #-}-identity44 = {-# SCC "identity44" #-}- Matrix44 { m11 = 1.0- , m21 = 0.0- , m31 = 0.0- , m41 = 0.0- , m12 = 0.0- , m22 = 1.0- , m32 = 0.0- , m42 = 0.0- , m13 = 0.0- , m23 = 0.0- , m33 = 1.0- , m43 = 0.0- , m14 = 0.0- , m24 = 0.0- , m34 = 0.0- , m44 = 1.0 }---- | Returns the 4x4 matrix where all components are zero.-zero44 :: Matrix44-{-# INLINE zero44 #-}-zero44 = {-# SCC "zero44" #-}- Matrix44 { m11 = 0.0- , m21 = 0.0- , m31 = 0.0- , m41 = 0.0- , m12 = 0.0- , m22 = 0.0- , m32 = 0.0- , m42 = 0.0- , m13 = 0.0- , m23 = 0.0- , m33 = 0.0- , m43 = 0.0- , m14 = 0.0- , m24 = 0.0- , m34 = 0.0- , m44 = 0.0 }---- | Calculates the inverse of a 4x4 matrix.------ A matrix doesn't always have an inverse. In this case, the matrix values--- will most likely end up being NaNs.-inverse44 :: Matrix44 -> Matrix44-{-# INLINE inverse44 #-}-inverse44 !mat4 = {-# SCC "inverse44" #-}- Matrix44 { m11 = (f11 * b11 - f12 * b10 + f13 * b9) * det- , m12 = (f02 * b10 - f01 * b11 - f03 * b9) * det- , m13 = (f31 * b5 - f32 * b4 + f33 * b3) * det- , m14 = (f22 * b4 - f21 * b5 - f23 * b3) * det- , m21 = (f12 * b8 - f10 * b11 - f13 * b7) * det- , m22 = (f00 * b11 - f02 * b8 + f03 * b7) * det- , m23 = (f32 * b2 - f30 * b5 - f33 * b1) * det- , m24 = (f20 * b5 - f22 * b2 + f23 * b1) * det- , m31 = (f10 * b10 - f11 * b8 + f13 * b6) * det- , m32 = (f01 * b8 - f00 * b10 - f03 * b6) * det- , m33 = (f30 * b4 - f31 * b2 + f33 * b0) * det- , m34 = (f21 * b2 - f20 * b4 - f23 * b0) * det- , m41 = (f11 * b7 - f10 * b9 - f12 * b6) * det- , m42 = (f00 * b9 - f01 * b7 + f02 * b6) * det- , m43 = (f31 * b1 - f30 * b3 - f32 * b0) * det- , m44 = (f20 * b3 - f21 * b1 + f22 * b0) * det }- where- f00 = m11 mat4- f10 = m21 mat4- f20 = m31 mat4- f30 = m41 mat4- f01 = m12 mat4- f11 = m22 mat4- f21 = m32 mat4- f31 = m42 mat4- f02 = m13 mat4- f12 = m23 mat4- f22 = m33 mat4- f32 = m43 mat4- f03 = m14 mat4- f13 = m24 mat4- f23 = m34 mat4- f33 = m44 mat4-- b0 = f00 * f11 - f01 * f10- b1 = f00 * f12 - f02 * f10- b2 = f00 * f13 - f03 * f10- b3 = f01 * f12 - f02 * f11- b4 = f01 * f13 - f03 * f11- b5 = f02 * f13 - f03 * f12- b6 = f20 * f31 - f21 * f30- b7 = f20 * f32 - f22 * f30- b8 = f20 * f33 - f23 * f30- b9 = f21 * f32 - f22 * f31- b10 = f21 * f33 - f23 * f31- b11 = f22 * f33 - f23 * f32-- det' = b0*b11 - b1*b10 + b2*b9 + b3*b8 - b4*b7 + b5*b6- det = 1.0 / det'---- | Calculates the determinant of a 3x3 matrix.-determinant33 :: Matrix33 -> Float-{-# INLINE determinant33 #-}-determinant33 !mat = {-# SCC "determinant33" #-} det'- where- det' = f11*f22*f33 + f12*f23*f31 + f13*f21*f32 -- f13*f22*f31 - f12*f21*f33 - f11*f23*f32- f11 = n11 mat- f21 = n21 mat- f31 = n31 mat- f12 = n12 mat- f22 = n22 mat- f32 = n32 mat- f13 = n13 mat- f23 = n23 mat- f33 = n33 mat---- | Calculats the inverse of a 3x3 matrix.------ A matrix doesn't always have an inverse. In this case, the matrix values--- will most likely end up being NaNs.-inverse33 :: Matrix33 -> Matrix33-{-# INLINE inverse33 #-}-inverse33 !mat = {-# SCC "inverse33" #-}- Matrix33 { n11 = (f22*f33-f23*f32)*det'- , n12 = (f13*f32-f12*f33)*det'- , n13 = (f12*f23-f13*f22)*det'- , n21 = (f23*f31-f21*f33)*det'- , n22 = (f11*f33-f13*f31)*det'- , n23 = (f13*f21-f11*f23)*det'- , n31 = (f21*f32-f22*f31)*det'- , n32 = (f12*f31-f11*f32)*det'- , n33 = (f11*f22-f12*f21)*det' }- where- det' = 1.0 /- (f11*f22*f33 + f12*f23*f31 + f13*f21*f32 -- f13*f22*f31 - f12*f21*f33 - f11*f23*f32)- f11 = n11 mat- f21 = n21 mat- f31 = n31 mat- f12 = n12 mat- f22 = n22 mat- f32 = n32 mat- f13 = n13 mat- f23 = n23 mat- f33 = n33 mat---- | Calculates the determinant of a 4x4 matrix.-determinant44 :: Matrix44 -> Float-{-# INLINE determinant44 #-}-determinant44 !mat = {-# SCC "determinant44" #-} det'- where- det' = b0*b11 - b1*b10 + b2*b9 + b3*b8 - b4*b7 + b5*b6-- f00 = m11 mat- f10 = m21 mat- f20 = m31 mat- f30 = m41 mat- f01 = m12 mat- f11 = m22 mat- f21 = m32 mat- f31 = m42 mat- f02 = m13 mat- f12 = m23 mat- f22 = m33 mat- f32 = m43 mat- f03 = m14 mat- f13 = m24 mat- f23 = m34 mat- f33 = m44 mat-- b0 = f00 * f11 - f01 * f10- b1 = f00 * f12 - f02 * f10- b2 = f00 * f13 - f03 * f10- b3 = f01 * f12 - f02 * f11- b4 = f01 * f13 - f03 * f11- b5 = f02 * f13 - f03 * f12- b6 = f20 * f31 - f21 * f30- b7 = f20 * f32 - f22 * f30- b8 = f20 * f33 - f23 * f30- b9 = f21 * f32 - f22 * f31- b10 = f21 * f33 - f23 * f31- b11 = f22 * f33 - f23 * f32---- | Multiplies two 3x3 matrices together.-multiply33 :: Matrix33 -> Matrix33 -> Matrix33-{-# INLINE multiply33 #-}-multiply33 !mat1 !mat2 = {-# SCC "multiply33" #-}- Matrix33 { n11 = s11*f11 + s21*f12 + s31*f13- , n21 = s11*f21 + s21*f22 + s31*f23- , n31 = s11*f31 + s21*f32 + s31*f33- , n12 = s12*f11 + s22*f12 + s32*f13- , n22 = s12*f21 + s22*f22 + s32*f23- , n32 = s12*f31 + s22*f32 + s32*f33- , n13 = s13*f11 + s23*f12 + s33*f13- , n23 = s13*f21 + s23*f22 + s33*f23- , n33 = s13*f31 + s23*f32 + s33*f33 }- where- f11 = n11 mat1- f21 = n21 mat1- f31 = n31 mat1- f12 = n12 mat1- f22 = n22 mat1- f32 = n32 mat1- f13 = n13 mat1- f23 = n23 mat1- f33 = n33 mat1- s11 = n11 mat2- s21 = n21 mat2- s31 = n31 mat2- s12 = n12 mat2- s22 = n22 mat2- s32 = n32 mat2- s13 = n13 mat2- s23 = n23 mat2- s33 = n33 mat2---- | Multiplies two 4x4 matrices together.-multiply44 :: Matrix44 -> Matrix44 -> Matrix44-{-# INLINE multiply44 #-}-multiply44 !mat1 !mat2 = {-# SCC "multiply44" #-}- Matrix44 { m11 = s11*f11 + s21*f12 + s31*f13 + s41*f14- , m21 = s11*f21 + s21*f22 + s31*f23 + s41*f24- , m31 = s11*f31 + s21*f32 + s31*f33 + s41*f34- , m41 = s11*f41 + s21*f42 + s31*f43 + s41*f44- , m12 = s12*f11 + s22*f12 + s32*f13 + s42*f14- , m22 = s12*f21 + s22*f22 + s32*f23 + s42*f24- , m32 = s12*f31 + s22*f32 + s32*f33 + s42*f34- , m42 = s12*f41 + s22*f42 + s32*f43 + s42*f44- , m13 = s13*f11 + s23*f12 + s33*f13 + s43*f14- , m23 = s13*f21 + s23*f22 + s33*f23 + s43*f24- , m33 = s13*f31 + s23*f32 + s33*f33 + s43*f34- , m43 = s13*f41 + s23*f42 + s33*f43 + s43*f44- , m14 = s14*f11 + s24*f12 + s34*f13 + s44*f14- , m24 = s14*f21 + s24*f22 + s34*f23 + s44*f24- , m34 = s14*f31 + s24*f32 + s34*f33 + s44*f34- , m44 = s14*f41 + s24*f42 + s34*f43 + s44*f44 }- where- f11 = m11 mat1- f21 = m21 mat1- f31 = m31 mat1- f41 = m41 mat1- f12 = m12 mat1- f22 = m22 mat1- f32 = m32 mat1- f42 = m42 mat1- f13 = m13 mat1- f23 = m23 mat1- f33 = m33 mat1- f43 = m43 mat1- f14 = m14 mat1- f24 = m24 mat1- f34 = m34 mat1- f44 = m44 mat1- s11 = m11 mat2- s21 = m21 mat2- s31 = m31 mat2- s41 = m41 mat2- s12 = m12 mat2- s22 = m22 mat2- s32 = m32 mat2- s42 = m42 mat2- s13 = m13 mat2- s23 = m23 mat2- s33 = m33 mat2- s43 = m43 mat2- s14 = m14 mat2- s24 = m24 mat2- s34 = m34 mat2- s44 = m44 mat2---- | Returns the Euclidean distance between two 3x3 matrices, where the--- matrices are taken to be 9-vectors.------ This can be used as a rough estimate how close, or similar two matrices are--- to each other.-distance33 :: Matrix33 -> Matrix33 -> Float-{-# INLINE distance33 #-}-distance33 !mat1 !mat2 = {-# SCC "distance33" #-}- sqrt $ (f11-s11)**2+- (f12-s12)**2+- (f13-s13)**2+- (f21-s21)**2+- (f22-s22)**2+- (f23-s23)**2+- (f31-s31)**2+- (f32-s32)**2+- (f33-s33)**2- where- f11 = n11 mat1- f21 = n21 mat1- f31 = n31 mat1- f12 = n12 mat1- f22 = n22 mat1- f32 = n32 mat1- f13 = n13 mat1- f23 = n23 mat1- f33 = n33 mat1- s11 = n11 mat2- s21 = n21 mat2- s31 = n31 mat2- s12 = n12 mat2- s22 = n22 mat2- s32 = n32 mat2- s13 = n13 mat2- s23 = n23 mat2- s33 = n33 mat2---- | Returns the Euclidean distance between two 4x4 matrices, where the--- matrices are taken to be 9-vectors.------ This can be used as a rough estimate how close, or similar two matrices are--- to each other.-distance44 :: Matrix44 -> Matrix44 -> Float-{-# INLINE distance44 #-}-distance44 !mat1 !mat2 = {-# SCC "distance44" #-}- sqrt $ (f11-s11)**2+- (f12-s12)**2+- (f13-s13)**2+- (f14-s14)**2+- (f21-s21)**2+- (f22-s22)**2+- (f23-s23)**2+- (f24-s24)**2+- (f31-s31)**2+- (f32-s32)**2+- (f33-s33)**2+- (f34-s34)**2+- (f41-s41)**2+- (f42-s42)**2+- (f43-s43)**2+- (f44-s44)**2- where- f11 = m11 mat1- f21 = m21 mat1- f31 = m31 mat1- f41 = m41 mat1- f12 = m12 mat1- f22 = m22 mat1- f32 = m32 mat1- f42 = m42 mat1- f13 = m13 mat1- f23 = m23 mat1- f33 = m33 mat1- f43 = m43 mat1- f14 = m14 mat1- f24 = m24 mat1- f34 = m34 mat1- f44 = m44 mat1- s11 = m11 mat2- s21 = m21 mat2- s31 = m31 mat2- s41 = m41 mat2- s12 = m12 mat2- s22 = m22 mat2- s32 = m32 mat2- s42 = m42 mat2- s13 = m13 mat2- s23 = m23 mat2- s33 = m33 mat2- s43 = m43 mat2- s14 = m14 mat2- s24 = m24 mat2- s34 = m34 mat2- s44 = m44 mat2---- | Constructs a perspective projection matrix.-perspective44 :: Float -- ^ Field of view in radians.- -> Float -- ^ Aspect ratio.- -> Float -- ^ Near plane distance.- -> Float -- ^ Far plane distance.- -> Matrix44-{-# INLINE perspective44 #-}-perspective44 !fov_y !aspect_ratio !near !far = {-# SCC "perspective44" #-}- frustum44 (-right) right (-top) top near far- where- top = near * tan fov_y- right = top * aspect_ratio----- | Constructs a perspective projection matrix by frustum planes.-frustum44 :: Float -- ^ Left plane.- -> Float -- ^ Right plane.- -> Float -- ^ Bottom plane.- -> Float -- ^ Top plane.- -> Float -- ^ Near plane.- -> Float -- ^ Far plane.- -> Matrix44-{-# INLINE frustum44 #-}-frustum44 !left !right !bottom !top !near !far = {-# SCC "frustum44" #-}- zero44 { m11 = n2 * rl- , m22 = n2 * tb- , m13 = (right + left) * rl- , m23 = (top + bottom) * tb- , m33 = (far + near) * nf- , m43 = -1.0- , m34 = far * n2 * nf }- where- rl = 1.0 / (right - left)- tb = 1.0 / (top - bottom)- nf = 1.0 / (near - far)- n2 = near * 2.0---- | Constructs an orthogonal projection matrix by planes.-ortho44 :: Float -- ^ Left plane.- -> Float -- ^ Right plane.- -> Float -- ^ Bottom plane.- -> Float -- ^ Top plane.- -> Float -- ^ Near plane.- -> Float -- ^ Far plane.- -> Matrix44-{-# INLINE ortho44 #-}-ortho44 !left !right !bottom !top !near !far = {-# SCC "ortho44" #-}- zero44 { m11 = (-2.0) * lr- , m22 = (-2.0) * bt- , m33 = 2.0 * nf- , m14 = (left + right) * lr- , m24 = (top + bottom) * bt- , m34 = (far + near) * nf- , m44 = 1.0 }- where- lr = 1.0 / (left - right)- bt = 1.0 / (bottom - top)- nf = 1.0 / (near - far)---- | Constructs a look-at view matrix.-lookat44 :: Vector3 -- ^ Eye position.- -> Vector3 -- ^ Center position (that is, the point we are going- -- to stare at).- -> Vector3 -- ^ Up vector. You probably want to normalize this.- -> Matrix44-{-# INLINE lookat44 #-}-lookat44 eye@(Vector3 !eyex !eyey !eyez) !center (Vector3 !ux !uy !uz)- | ec_len < 0.000001 = identity44- | otherwise = {-# SCC "lookat44" #-}- Matrix44 { m11 = xx, m21 = yx, m31 = ecx, m41 = 0.0- , m12 = xy, m22 = yy, m32 = ecy, m42 = 0.0- , m13 = xz, m23 = yz, m33 = ecz, m43 = 0.0- , m14 = -(xx * eyex + xy * eyey + xz * eyez)- , m24 = -(yx * eyex + yy * eyey + yz * eyez)- , m34 = -(ecx * eyex + ecy * eyey + ecz * eyez)- , m44 = 1.0 }- where- ec = eye `minus3` center- Vector3 ecx ecy ecz = normalize3 ec- ec_len = length3 ec-- yvec = Vector3 (ecy*xz - ecz*xy)- (ecz*xx - ecx*xz)- (ecx*xy - ecy*xx)- Vector3 yx yy yz =- if length3 yvec == 0.0- then Vector3 0 0 0- else normalize3 yvec-- xvec = Vector3 (uy*ecz - uz*ecy)- (uz*ecx - ux*ecz)- (ux*ecy - uy*ecx)- Vector3 xx xy xz =- if length3 xvec == 0.0- then Vector3 0 0 0- else normalize3 xvec---- | Normalizes a 3-vector to unit length.------ If the vector is a zero vector then this probably gives you a vector with--- NaNs as values.-normalize3 :: Vector3 -> Vector3-{-# INLINE normalize3 #-}-normalize3 v@(Vector3 !x !y !z) = {-# SCC "normalize3" #-}- Vector3 (x*ilen) (y*ilen) (z*ilen)- where- ilen = 1.0 / length3 v---- | Returns the Euclidean distance between to 3-vectors.-distance3 :: Vector3 -> Vector3 -> Float-{-# INLINE distance3 #-}-distance3 (Vector3 !x1 !y1 !z1) (Vector3 !x2 !y2 !z2) = {-# SCC "distance3" #-}- sqrt $ (x2-x1)**2 + (y2-y1)**2 + (z2-z1)**2---- | Returns the length of a 3-vector.-length3 :: Vector3 -> Float-{-# INLINE length3 #-}-length3 (Vector3 !x !y !z) = {-# SCC "length3" #-} sqrt $ x**2 + y**2 + z**2---- | Sums two 3-vectors together.-plus3 :: Vector3 -> Vector3 -> Vector3-{-# INLINE plus3 #-}-plus3 (Vector3 !x1 !y1 !z1) (Vector3 !x2 !y2 !z2) = {-# SCC "plus3" #-}- Vector3 (x1+x2) (y1+y2) (z1+z2)---- | Subtracts the second 3-vector from the first.-minus3 :: Vector3 -> Vector3 -> Vector3-{-# INLINE minus3 #-}-minus3 (Vector3 !x1 !y1 !z1) (Vector3 !x2 !y2 !z2) = {-# SCC "minus3" #-}- Vector3 (x1-x2) (y1-y2) (z1-z2)---- | Negates all components of a 3-vector.-negative3 :: Vector3 -> Vector3-{-# INLINE negative3 #-}-negative3 (Vector3 !x !y !z) = {-# SCC "negative3" #-} Vector3 (-x) (-y) (-z)---- | Multiplies all components of a 3-vector with a scalar.-scalarMultiply3 :: Float -> Vector3 -> Vector3-{-# INLINE scalarMultiply3 #-}-scalarMultiply3 scalar (Vector3 !x !y !z) = {-# SCC "scalarMultiply3" #-}- Vector3 (x*scalar) (y*scalar) (z*scalar)---- | Modify a 4x4 matrix to scale everything by given vector.-scale44 :: Vector3 -- ^ The scale vector.- -> Matrix44 -- ^ The matrix to modify.- -> Matrix44-{-# INLINE scale44 #-}-scale44 (Vector3 !x !y !z) !mat = {-# SCC "scale44" #-}- mat { m11 = f11*x- , m21 = f21*x- , m31 = f31*x- , m41 = f41*x- , m12 = f12*y- , m22 = f22*y- , m32 = f32*y- , m42 = f42*y- , m13 = f13*z- , m23 = f23*z- , m33 = f33*z- , m43 = f43*z }- where- f11 = m11 mat- f21 = m21 mat- f31 = m31 mat- f41 = m41 mat- f12 = m12 mat- f22 = m22 mat- f32 = m32 mat- f42 = m42 mat- f13 = m13 mat- f23 = m23 mat- f33 = m33 mat- f43 = m43 mat---- | Transposes a 3x3 matrix.-transpose33 :: Matrix33 -> Matrix33-{-# INLINE transpose33 #-}-transpose33 !mat = {-# SCC "transpose33" #-}- Matrix33 { n11 = f11- , n12 = f21- , n13 = f31- , n21 = f12- , n22 = f22- , n23 = f32- , n31 = f13- , n32 = f23- , n33 = f33 }- where- f11 = n11 mat- f21 = n21 mat- f31 = n31 mat- f12 = n12 mat- f22 = n22 mat- f32 = n32 mat- f13 = n13 mat- f23 = n23 mat- f33 = n33 mat---- | Transposes a 4x4 matrix.-transpose44 :: Matrix44 -> Matrix44-{-# INLINE transpose44 #-}-transpose44 !mat = {-# SCC "transpose44" #-}- Matrix44 { m11 = f11- , m12 = f21- , m13 = f31- , m14 = f41- , m21 = f12- , m22 = f22- , m23 = f32- , m24 = f42- , m31 = f13- , m32 = f23- , m33 = f33- , m34 = f43- , m41 = f14- , m42 = f24- , m43 = f34- , m44 = f44 }- where- f11 = m11 mat- f21 = m21 mat- f31 = m31 mat- f41 = m41 mat- f12 = m12 mat- f22 = m22 mat- f32 = m32 mat- f42 = m42 mat- f13 = m13 mat- f23 = m23 mat- f33 = m33 mat- f43 = m43 mat- f14 = m14 mat- f24 = m24 mat- f34 = m34 mat- f44 = m44 mat---- | Modifies a 4x4 matrix to include translation.------ This is the same as multiplying a 4x4 matrix with a translation matrix.-translate44 :: Vector3 -- ^ The translation vector.- -> Matrix44 -- ^ The matrix to modify.- -> Matrix44-{-# INLINE translate44 #-}-translate44 (Vector3 !x !y !z) !mat = {-# SCC "translate44" #-}- mat { m14 = f11*x + f12*y + f13*z + f14- , m24 = f21*x + f22*y + f23*z + f24- , m34 = f31*x + f32*y + f33*z + f34- , m44 = f41*x + f42*y + f43*z + f44 }- where- f11 = m11 mat- f21 = m21 mat- f31 = m31 mat- f41 = m41 mat- f12 = m12 mat- f22 = m22 mat- f32 = m32 mat- f42 = m42 mat- f13 = m13 mat- f23 = m23 mat- f33 = m33 mat- f43 = m43 mat- f14 = m14 mat- f24 = m24 mat- f34 = m34 mat- f44 = m44 mat---- | Modifies a 4x4 matrix to include rotation as specified by an axis-angle--- representation.------ This is the same as multiplying a matrix with a rotation matrix.-rotate44 :: Float -- ^ The angle, how much to rotate. In radians.- -> Vector3 -- ^ The rotation axis.- -> Matrix44 -- ^ The matrix to modify.- -> Matrix44-{-# INLINE rotate44 #-}-rotate44 !radians !axis !mat = {-# SCC "rotate44" #-}- mat { m11 = f11*r11 + f21*r12 + f31*r13- , m21 = f12*r11 + f21*r12 + f32*r13- , m31 = f13*r11 + f23*r12 + f33*r13- , m41 = f14*r11 + f24*r12 + f34*r13- , m12 = f11*r21 + f21*r22 + f31*r23- , m22 = f12*r21 + f22*r22 + f32*r23- , m32 = f13*r21 + f23*r22 + f33*r23- , m42 = f14*r21 + f24*r22 + f34*r23- , m13 = f11*r31 + f21*r32 + f31*r33- , m23 = f12*r31 + f22*r32 + f32*r33- , m33 = f13*r31 + f23*r32 + f33*r33- , m43 = f14*r31 + f24*r32 + f31*r33 }- where- r11 = x*x*t+cosf- r12 = y*x*t+z*sinf- r13 = z*x*t-y*sinf- r21 = x*y*t-z*sinf- r22 = y*y*t+cosf- r23 = z*y*t+x*sinf- r31 = x*z*t+y*sinf- r32 = y*z*t-x*sinf- r33 = z*z*t+cosf-- f11 = m11 mat- f21 = m21 mat- f31 = m31 mat- f12 = m12 mat- f22 = m22 mat- f32 = m32 mat- f13 = m13 mat- f23 = m23 mat- f33 = m33 mat- f14 = m14 mat- f24 = m24 mat- f34 = m34 mat-- t = 1 - cosf- sinf = sin radians- cosf = cos radians- (Vector3 !x !y !z) = normalize3 axis---- | Transforms a 3-vector with a 4x4 matrix.------ This would be the same as transforming a 4-vector with a 4x4 matrix but the--- fourth component is taken to be 1 and is not returned.-vector3Transform44 :: Matrix44 -> Vector3 -> Vector3-{-# INLINE vector3Transform44 #-}-vector3Transform44 !mat (Vector3 !x !y !z) = {-# SCC "vector3Transform44" #-}- Vector3 { x = f11*x + f12*y + f13*z + f14- , y = f21*x + f22*y + f23*z + f24- , z = f31*x + f32*y + f33*z + f34 }- where- f11 = m11 mat- f21 = m21 mat- f31 = m31 mat- f12 = m12 mat- f22 = m22 mat- f32 = m32 mat- f13 = m13 mat- f23 = m23 mat- f33 = m33 mat- f14 = m14 mat- f24 = m24 mat- f34 = m34 mat---- | Returns the cross product between two 3-vectors.-cross3 :: Vector3 -> Vector3 -> Vector3-{-# INLINE cross3 #-}-cross3 (Vector3 !x1 !y1 !z1) (Vector3 !x2 !y2 !z2) = {-# SCC "cross3" #-}- Vector3 { x = y1*z2 - z1*y2- , y = z1*x2 - x1*z2- , z = x1*y2 - y1*x2 }---- | Returns the angle, in radians, between two 3-vectors.------ The vectors are normalized by this function so you need not to do that--- yourself.-angle3 :: Vector3 -> Vector3 -> Float-{-# INLINE angle3 #-}-angle3 v1 v2 = {-# SCC "angle3" #-} acos $ n1 `dot3` n2- where- n1 = normalize3 v1- n2 = normalize3 v2---- | Returns the dot product between two 3-vectors.-dot3 :: Vector3 -> Vector3 -> Float-{-# INLINE dot3 #-}-dot3 (Vector3 !x1 !y1 !z1) (Vector3 !x2 !y2 !z2) = {-# SCC "dot3" #-}- x1*x2 + y1*y2 + z1*z2---- | Transforms a 3-vector into a tuple.-toTuple3 :: Vector3 -> (Float, Float, Float)-{-# INLINE toTuple3 #-}-toTuple3 (Vector3 !x !y !z) = {-# SCC "toTuple3" #-} (x, y, z)---- | Transforms a tuple into a 3-vector.-fromTuple3 :: (Float, Float, Float) -> Vector3-{-# INLINE fromTuple3 #-}-fromTuple3 (!x, !y, !z) = {-# SCC "fromTuple3" #-}- Vector3 { x = x, y = y, z = z }---- | Returns a vector where all components are 0.-zero3 :: Vector3-{-# INLINE zero3 #-}-zero3 = {-# SCC "zero3" #-} Vector3 { x = 0, y = 0, z = 0 }---- | Transforms a 4x4 matrix to a list of floats.------ The list follows the same order as the `Storable` instance does for--- `Matrix44` floating point values. The list will always have 16 elements.-toList4 :: Matrix44 -> [Float]-toList4 mat = {-# SCC "toList4" #-}- (\f -> f mat) <$>- [m11, m21, m31, m41- ,m12, m22, m32, m42- ,m13, m23, m33, m43- ,m14, m24, m34, m44]---- | Construct a quaternion out of 4 values.-quaternion :: Float -- ^ The x-component.- -> Float -- ^ The y-component.- -> Float -- ^ The z-component.- -> Float -- ^ The w-component.- -> Quaternion-{-# INLINE quaternion #-}-quaternion !x !y !z !w = {-# SCC "quaternion" #-}- Quaternion { qx = x, qy = y, qz = z, qw = w }---- | Turns a quaternion into a 4-tuple.-toTupleq :: Quaternion -> (Float, Float, Float, Float)-{-# INLINE toTupleq #-}-toTupleq (Quaternion !x !y !z !w) = {-# SCC "toTupleq" #-} (x, y, z, w)---- | Turns a 4-tuple into a quaternion.-fromTupleq :: (Float, Float, Float, Float) -> Quaternion-{-# INLINE fromTupleq #-}-fromTupleq (!x, !y, !z, !w) = {-# SCC "fromTupleq" #-} Quaternion x y z w---- | \"canonicalizes\" a quaternion.------ Some rotations have different representations as a quaternion. This function--- canonicalizes the quaternion so that those rotations are the same.------ Don't rely on this. This is used in some automatic tests to see that the--- quaternions work correctly.-canonicalizeq :: Quaternion -> Quaternion-{-# INLINE canonicalizeq #-}-canonicalizeq q@(Quaternion !x !y !z !w) = {-# SCC "canonicalizeq" #-}- canonicalizeq'- where- canonicalizeq'- | w > 0 = q- | otherwise = Quaternion (-x) (-y) (-z) (-w)---- | Normalizes a quaternion to unit length.-normalizeq :: Quaternion -> Quaternion-{-# INLINE normalizeq #-}-normalizeq (Quaternion !x !y !z !w) = {-# SCC "normalizeq" #-}- Quaternion (x*t) (y*t) (z*t) (w*t)- where- t = 1.0 / sqrt (x*x + y*y + z*z + w*w)---- | Returns the Euclidean distance between two quaternions.-distanceq :: Quaternion -> Quaternion -> Float-{-# INLINE distanceq #-}-distanceq (Quaternion !x1 !y1 !z1 !w1)- (Quaternion !x2 !y2 !z2 !w2) = {-# SCC "distanceq" #-}- sqrt $ (x1-x2)**2 + (y1-y2)**2 + (z1-z2)**2 + (w1-w2)**2---- | Returns the length of a quaternion.-lengthq :: Quaternion -> Float-{-# INLINE lengthq #-}-lengthq (Quaternion !x !y !z !w) = {-# SCC "lengthq" #-}- sqrt $ x*x + y*y + z*z + w*w---- | Turns an axis angle rotation into a quaternion.-axisAngleToQuaternion :: Float -- ^ The angle, in radians.- -> Vector3 -- ^ The rotation axis.- -> Quaternion-{-# INLINE axisAngleToQuaternion #-}-axisAngleToQuaternion !radians !vec = {-# SCC "axisAngleToQuaternion" #-}- Quaternion { qx = x * sin_angle- , qy = y * sin_angle- , qz = z * sin_angle- , qw = cos hangle }- where- Vector3 x y z = normalize3 vec- sin_angle = sin hangle- hangle = radians * 0.5---- | Returns a quaternion where all the elements are zero.-zeroq :: Quaternion-{-# INLINE zeroq #-}-zeroq = {-# SCC "zeroq" #-} Quaternion 0 0 0 0---- | Turns the quaternion into a 4x4 rotation matrix.-quaternionToMatrix44 :: Quaternion -> Matrix44-{-# INLINE quaternionToMatrix44 #-}-quaternionToMatrix44 !q = {-# SCC "quaternionToMatrix44" #-}- identity44 { m11 = 1 - yy2 - zz2- , m22 = 1 - xx2 - zz2- , m33 = 1 - xx2 - yy2-- , m32 = yz2 - wx2- , m23 = yz2 + wx2- , m21 = xy2 - wz2- , m12 = xy2 + wz2- , m13 = xz2 - wy2- , m31 = xz2 + wy2 }- where- Quaternion x y z w = normalizeq q- x2 = x+x- y2 = y+y- z2 = z+z- xx2 = x*x2- yy2 = y*y2- zz2 = z*z2- yz2 = y*z2- wx2 = w*x2- xy2 = x*y2- wz2 = w*z2- xz2 = x*z2- wy2 = w*y2---- | Extracts rotation from a 4x4 matrix and returns it as a quaternion.------ Note that------ @--- matrix44ToQuaternion . quaternionToMatrix44--- @------ may not be the identity function. The signs on the quaternion components may--- be different and because the floating point calculation is not completely--- precise, the values are often slightly different than they were originally.-matrix44ToQuaternion :: Matrix44 -> Quaternion-{-# INLINE matrix44ToQuaternion #-}-matrix44ToQuaternion !mat = {-# SCC "matrix44ToQuaternion" #-}- matrix44ToQuaternion'- where- matrix44ToQuaternion'- | trace > 0 =- let t = trace + 1- s = 0.5 * isqrt t- in Quaternion { qw = s * t- , qz = (f12 - f21) * s- , qy = (f31 - f13) * s- , qx = (f23 - f32) * s }-- | f11 > f22 && f11 > f33 =- let t = f11 - f22 - f33 + 1- s = 0.5 * isqrt t- in Quaternion { qx = s * t- , qy = (f12 + f21) * s- , qz = (f31 + f13) * s- , qw = (f23 - f32) * s }-- | f22 > f33 =- let t = (-f11) + f22 - f33 + 1- s = 0.5 * isqrt t- in Quaternion { qy = s * t- , qx = (f12 + f21) * s- , qw = (f31 - f13) * s- , qz = (f23 + f32) * s }-- | otherwise =- let t = (-f11) - f22 + f33 + 1- s = 0.5 * isqrt t- in Quaternion { qz = s * t- , qw = (f12 - f21) * s- , qx = (f31 + f13) * s- , qy = (f23 + f32) * s }-- trace = f11 + f22 + f33- isqrt = (1.0 /) . sqrt-- f11 = m11 mat- f21 = m21 mat- f31 = m31 mat- f12 = m12 mat- f22 = m22 mat- f32 = m32 mat- f13 = m13 mat- f23 = m23 mat- f33 = m33 mat---- | Returns the identity quaternion. It won't rotate anything.-identityq :: Quaternion-{-# INLINE identityq #-}-identityq = {-# SCC "identityq" #-} quaternion 0 0 0 1--{-# ANN vector3_1ToQuaternion ("HLint: ignore Use camelCase" :: String) #-}--- | Turns a `Vector3` and an extra value to a quaternion.-vector3_1ToQuaternion :: Vector3 -> Float -> Quaternion-{-# INLINE vector3_1ToQuaternion #-}-vector3_1ToQuaternion (Vector3 x y z) = quaternion x y z---- | Multiplies two quaternions together.-multiplyq :: Quaternion -> Quaternion -> Quaternion-multiplyq (Quaternion !x1 !y1 !z1 !w1)- (Quaternion !x2 !y2 !z2 !w2) = {-# SCC "multiplyq" #-}- Quaternion { qw = w1*w2 - x1*x2 - y1*y2 - z1*z2- , qx = w1*x2 + x1*w2 + y1*z2 - z1*y2- , qy = w1*y2 - x1*z2 + y1*w2 + z1*x2- , qz = w1*z2 + x1*y2 - y1*x2 + z1*w2 }--pad :: Int -> String -> String-pad wanted_len str- | len < wanted_len = str ++ replicate (wanted_len - len) ' '- | otherwise = str- where- len = length str---- | Returns a \"pretty\" string that represents a 4x4 matrix.------ This could be useful for debugging (and has been used as such in the--- development of Caramia). The default `Show` instance for `Matrix44` is--- machine-readable but annoying for humans to read. This function returns a--- somewhat more human-readable string that you can display.------ The string will contain newlines.-prettyShow :: Matrix44 -> String-prettyShow mat =- lines [[f11,f12,f13,f14],[f21,f22,f23,f24],- [f31,f32,f33,f34],[f41,f42,f43,f44]]- where- lines = concatMap ((++ "\n") . line)- line marks =- "[ " ++ concatMap ((" " ++) . pad wanted_len . show) marks ++ " ]"- wanted_len = 1 + maximum (map (length . show) $ toList4 mat)-- f11 = m11 mat- f21 = m21 mat- f31 = m31 mat- f41 = m41 mat- f12 = m12 mat- f22 = m22 mat- f32 = m32 mat- f42 = m42 mat- f13 = m13 mat- f23 = m23 mat- f33 = m33 mat- f43 = m43 mat- f14 = m14 mat- f24 = m24 mat- f34 = m34 mat- f44 = m44 mat-
− src/Caramia/Memory.hs
@@ -1,64 +0,0 @@--- | Retrieve video memory information.-----{-# LANGUAGE MultiWayIf, NoImplicitPrelude, DeriveDataTypeable #-}--module Caramia.Memory- ( getMemoryInfo- , MemoryInfo(..) )- where--import Caramia.Prelude-import Caramia.Context-import Caramia.Internal.OpenGLCApi-import Foreign.Marshal.Alloc-import Foreign.Storable--data MemoryInfo = MemoryInfo- { availableVideoMemory :: !(Maybe Int)- , totalVideoMemory :: !(Maybe Int) }- deriving ( Eq, Ord, Show, Read, Typeable )---- | Returns information about current state of video memory.------ There is no guarantee that all, or even any information is actually--- returned. You need either \'GL_ATI_meminfo\' or \'GL_NVX_gpu_memory_info\'--- extension to get any results.------ No guarantees for accuracy either. Seriously, don't rely on this for--- anything but rough estimation.-getMemoryInfo :: IO MemoryInfo-getMemoryInfo = do- _ <- currentContextID -- Just checking that OpenGL context is active.- has_meminfo <- has_GL_ATI_meminfo- has_gpu_memory_info <- has_GL_NVX_gpu_memory_info- if | has_meminfo -> atiGetMem- | has_gpu_memory_info -> nvidiaGetMem- | otherwise -> return noInformation--noInformation :: MemoryInfo-noInformation = MemoryInfo- { availableVideoMemory = Nothing- , totalVideoMemory = Nothing }--atiGetMem :: IO MemoryInfo-atiGetMem =- alloca $ \result_ptr -> do- glGetIntegerv gl_TEXTURE_FREE_MEMORY_ATI result_ptr- result <- peek result_ptr- return MemoryInfo { availableVideoMemory = Just $ fromIntegral result- , totalVideoMemory = Nothing }--nvidiaGetMem :: IO MemoryInfo-nvidiaGetMem =- alloca $ \result_ptr -> alloca $ \result2_ptr -> do- glGetIntegerv gl_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX- result_ptr- glGetIntegerv gl_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX- result2_ptr- result <- peek result_ptr- result2 <- peek result2_ptr- return MemoryInfo { availableVideoMemory = Just $ fromIntegral result2- , totalVideoMemory = Just $ fromIntegral result }--
− src/Caramia/Prelude.hs
@@ -1,56 +0,0 @@--- | This module is used as the prelude module inside Caramia.-----{-# LANGUAGE ScopedTypeVariables #-}--module Caramia.Prelude- ( module Ex- , safeFromIntegral- , showT- , atomicModifyIORef_' )- where--import Prelude as Ex hiding- ( sequence, mapM, or, concat, notElem, elem- , foldl, foldr1, concatMap, any, sum, foldr- , and, all, mapM_, sequence_, product, maximum- , foldl1, minimum, (.), id )--import Data.Foldable as Ex-import Data.Traversable as Ex-import Data.Int as Ex-import Data.Word as Ex-import Data.Typeable as Ex-import Control.Category as Ex-import Control.Arrow as Ex-import Control.Monad as Ex hiding ( msum, forM, forM_, sequence, mapM, mapM_- , sequence_ )-import Control.Applicative as Ex-import Data.Semigroup as Ex-import Data.Maybe as Ex-import Data.IORef as Ex-import qualified Data.Text as T---- | Same as `show` but the result will be a `T.Text`, not `String`.-showT :: Show a => a -> T.Text-showT = T.pack . show-{-# INLINE showT #-}---- | Same as `atomicModifyIORef'` but does not return a value.-atomicModifyIORef_' :: IORef a -> (a -> a) -> IO ()-atomicModifyIORef_' ref fun = atomicModifyIORef' ref $ \old -> ( fun old, () )-{-# INLINE atomicModifyIORef_' #-}---- | Similar to `fromIntegral` but raises a user error if the source--- integer cannot be represented in the target type.------ This cannot turn an integral into a non-integral type.-safeFromIntegral :: forall a b. (Num a, Integral a, Num b, Integral b) =>- a -> b-safeFromIntegral from- | from /= (fromIntegral result :: a) = error "Invalid coercion."- | otherwise = result- where- result = fromIntegral from :: b-{-# INLINE safeFromIntegral #-}-
− src/Caramia/Render.hs
@@ -1,455 +0,0 @@--- | Rendering things.-----{-# LANGUAGE RecordWildCards, GeneralizedNewtypeDeriving #-}-{-# LANGUAGE ViewPatterns, NoImplicitPrelude, DeriveDataTypeable #-}--module Caramia.Render- ( - -- * The drawing functions- draw- , runDraws- -- * Draw command stream- , Draw()- , drawR- , setPipeline- , setTextureBindings- , setBlending- , setTargetFramebuffer- , setFragmentPassTests- , setPolygonOffset- -- * Specifying what to draw- , DrawCommand(..)- , drawCommand- , DrawParams(..)- , defaultDrawParams- , SourceData(..)- , IndexType(..)- , Primitive(..)- , IndexTypeable(..)- -- * Fragment pass tests- , FragmentPassTests(..)- , defaultFragmentPassTests- , ComparisonFunc(..)- , StencilOp(..)- , Culling(..) )- where--import Caramia.Prelude--import qualified Caramia.VAO.Internal as VAO-import qualified Caramia.Shader.Internal as Shader-import qualified Caramia.Framebuffer as FBuf-import qualified Caramia.Framebuffer.Internal as FBuf-import qualified Caramia.Texture.Internal as Texture-import qualified Data.IntMap.Strict as IM-import Caramia.Render.Internal hiding ( setFragmentPassTests )-import qualified Caramia.Render.Internal as I-import Caramia.Blend-import Caramia.Blend.Internal-import Caramia.Texture-import Caramia.Texture.Internal ( withTextureBinding )-import Caramia.Resource-import Caramia.Buffer.Internal-import Caramia.Internal.OpenGLCApi-import Control.Monad.IO.Class-import Control.Monad.Trans.State.Strict-import Control.Exception-import Foreign-import Foreign.C.Types---- | The different types of primitives you can use for rendering.------ <https://www.opengl.org/wiki/Primitive>-data Primitive =- Triangles- | TriangleStrip- | TriangleFan- | Points- | Lines- | LineStrip- | LineLoop- | LinesAdjacency- | LineStripAdjacency- | TriangleStripAdjacency- | TrianglesAdjacency- deriving ( Eq, Ord, Show, Read )--toConstant :: Primitive -> GLenum-toConstant Triangles = gl_TRIANGLES-toConstant TriangleStrip = gl_TRIANGLE_STRIP-toConstant TriangleFan = gl_TRIANGLE_FAN-toConstant Points = gl_POINTS-toConstant Lines = gl_LINES-toConstant LineStrip = gl_LINE_STRIP-toConstant LineLoop = gl_LINE_LOOP-toConstant LinesAdjacency = gl_LINES_ADJACENCY-toConstant LineStripAdjacency = gl_LINE_STRIP_ADJACENCY-toConstant TriangleStripAdjacency = gl_TRIANGLE_STRIP_ADJACENCY-toConstant TrianglesAdjacency = gl_TRIANGLES_ADJACENCY---- | The type of indices in an index buffer. See `indexBuffer`.-data IndexType =- IWord32- | IWord16- | IWord8- deriving ( Eq, Ord, Show, Read )--toConstantIT :: IndexType -> GLenum-toConstantIT IWord32 = gl_UNSIGNED_INT-toConstantIT IWord16 = gl_UNSIGNED_SHORT-toConstantIT IWord8 = gl_UNSIGNED_BYTE--class IndexTypeable a where- -- | Turns a Haskell type to `IndexType`.- toIndexType :: a -- ^ Used to pass the type, not evaluated.- -> IndexType--instance IndexTypeable Word32 where- toIndexType _ = IWord32--instance IndexTypeable Word16 where- toIndexType _ = IWord16--instance IndexTypeable Word8 where- toIndexType _ = IWord8--instance IndexTypeable CUInt where- toIndexType _ = IWord32--instance IndexTypeable CUShort where- toIndexType _ = IWord16--instance IndexTypeable CUChar where- toIndexType _ = IWord8---- | Contains drawing parameters.------ You can use `defaultDrawParams` to obtain default draw parameters.-data DrawParams = DrawParams- {- pipeline :: Shader.Pipeline- -- ^ Which shader pipeline to use.- , fragmentPassTests :: !FragmentPassTests- -- ^ What kind of fragment pass tests to use.- , blending :: BlendSpec -- ^ Which blending to use.- , targetFramebuffer :: FBuf.Framebuffer- -- ^ Where do you want to render?- , bindTextures :: IM.IntMap Texture- -- ^ Which textures do you want to bind? The keys in this integer map are- -- `TextureUnit`s and tell which texture units you want to bind given- -- textures.- , polygonOffset :: !(Float, Float)- -- ^ Modify the depth values that are being written.- --- -- @ (factor, units) @.- --- -- By default this is (0, 0) (that is, do nothing). See @ glPolygonOffset @- -- for the meaning of these values.- }- deriving ( Eq, Typeable )---- | Default drawing parameters.------ `pipeline` is not set (that is, it's undefined). You must set it.------ No textures are bound.------ Blending mode is premultiplied alpha.------ `targetFramebuffer` is the screen framebuffer.-defaultDrawParams :: DrawParams-defaultDrawParams = DrawParams {- pipeline = error "defaultDrawParams: pipeline is not set."- , fragmentPassTests = defaultFragmentPassTests- , blending = preMultipliedAlpha- , bindTextures = IM.empty- , targetFramebuffer = FBuf.screenFramebuffer- , polygonOffset = (0, 0) }---- | Contains a specification of what to draw.------ It is recommended to use `drawCommand` instead of this constructor.-data DrawCommand = DrawCommand- { primitiveType :: Primitive- , primitivesVAO :: VAO.VAO -- ^ This is the VAO from which attributes- -- are retrieved in the shader pipeline.- , numIndices :: Int -- ^ How many indices to render?- , numInstances :: Int -- ^ How many instances to render.- , sourceData :: SourceData- -- ^ How to select the attribute data from `primitivesVAO`.- }- deriving ( Eq, Typeable )---- | Returns a default draw command.------ Several fields are undefined so you must set them. These are------ * `primitiveType`--- * `primitivesVAO`--- * `numIndices`--- * `sourceData`------ `numInstances` is set to 1. In future (minor) versions if we add any new--- fields those fields will have a sane default value.-drawCommand :: DrawCommand-drawCommand = DrawCommand- { primitiveType = error "drawCommand: primitiveType is not set."- , primitivesVAO = error "drawCommand: primitivesVAO is not set."- , numIndices = error "drawCommand: numIndices is not set."- , sourceData = error "drawCommand: sourceData is not set."- , numInstances = 1 }-{-# INLINE drawCommand #-}---- | Values of this type tell how to select attribute data from--- `primitivesVAO`.------ Future minor versions will not add any new fields or remove any fields from--- these values. Instead, new constructors are introduced.-data SourceData =- -- | Simply start from some index and continue from there, 0, 1, 2, etc.- --- -- OpenGL equivalent is @ glDrawArrays() @ or @ glDrawArraysInstanced() @.- Primitives- { firstIndex :: Int }- -- | Use an index buffer.- --- -- OpenGL equivalent is @ glDrawElements() @ or @ glDrawElementsInstanced()- -- @. Index buffer contains indices that point to offsets in the vertex- -- arrays.- | PrimitivesWithIndices- { indexBuffer :: Buffer- , indexOffset :: Int- , indexType :: IndexType }- deriving ( Eq, Ord, Typeable )---- | Draws according to a `DrawCommand`.------ There is a very large overhead in doing a single `draw` call. You probably--- want to use `runDraws` and `drawR` instead.-draw :: DrawCommand -> DrawParams -> IO ()-draw cmd params = runDraws params (drawR cmd)---- | Same as `draw` but in a `Draw` command stream.-drawR :: DrawCommand -> Draw ()-drawR (DrawCommand {..})- | numIndices == 0 = return ()- | otherwise = Draw $ do- old_ebo <- boundEbo <$> get- liftIO $- withResource (VAO.resource primitivesVAO) $ \(VAO.VAO_ vao_name) ->- withBoundVAO vao_name $- case sourceData of- Primitives {..} ->- glDrawArraysInstanced- (toConstant primitiveType)- (safeFromIntegral firstIndex)- (safeFromIntegral numIndices)- (safeFromIntegral numInstances)- PrimitivesWithIndices {..} ->- withResource (resource indexBuffer) $- \(Buffer_ buf_name) -> do- when (buf_name /= old_ebo) $- setBoundElementBuffer buf_name- glDrawElementsInstanced- (toConstant primitiveType)- (safeFromIntegral numIndices)- (toConstantIT indexType)- (intPtrToPtr $- fromIntegral indexOffset)- (safeFromIntegral numInstances)--- inline `draw` because it's probably quite common to directly construct--- `DrawCommand` right there, so we can avoid all sorts of boxing and checking--- that happens.-{-# INLINE draw #-}---- We use a state to keep track of what we have bound. Why? For garbage--- collection! If we don't keep references, it's possible things get garbage--- collected under our feet because `runDraws` might have bound resources in--- OpenGL with no Haskell values pointing to them.-data DrawState = DrawState- { boundPipeline :: !Shader.Pipeline- , boundEbo :: !GLuint- , boundTextures :: !(IM.IntMap Texture)- , boundBlending :: !BlendSpec- , boundFramebuffer :: !FBuf.Framebuffer- , boundFragmentPassTests :: !FragmentPassTests- , activeTexture :: !GLuint }--newtype Draw a = Draw (StateT DrawState IO a)- deriving ( Monad, Applicative, Functor, Typeable )---- | Using `liftIO` is safe inside a `Draw` stream. It is possible to run--- nested `Draw` streams this way as well.------ One useful thing to do is to set uniforms to pipelines with `setUniform`.-instance MonadIO Draw where- liftIO = Draw . liftIO---- | Runs a drawing specification.------ You can think of this as running many `draw` commands with similar draw--- command specifications. This call is an optimization to `draw` which has a--- high overhead by itself.------ Another way to think of this is a place where the functional, \"no hidden--- state\" design of the Caramia API is relaxed inside the `Draw` stream.-runDraws :: DrawParams -- ^ Initial drawing parameters. These can be- -- changed in the `Draw` command stream.- -> Draw a -- ^ Draw command stream.- -> IO a-runDraws params (Draw cmd_stream) =- withParams params $ do- (result, st) <-- runStateT cmd_stream DrawState- { boundPipeline = pipeline params- , boundFragmentPassTests = fragmentPassTests params- , boundEbo = 0- , boundBlending = blending params- , boundFramebuffer = targetFramebuffer params- , boundTextures = bindTextures params- , activeTexture = 0- }- st `seq` return result--withParams :: DrawParams -> IO a -> IO a-withParams (DrawParams {..}) action =- FBuf.withBinding targetFramebuffer $- withPipeline pipeline $- withFragmentPassTests fragmentPassTests $- withBlendings blending $- withBoundTextures bindTextures $- withBoundElementBuffer 0 $- withPolygonOffset polygonOffset $ do- old_active <- gi gl_ACTIVE_TEXTURE- -- Framebuffer may not restore the viewport so we have to do it here.- allocaArray 4 $ \viewport_ptr -> do- glGetIntegerv gl_VIEWPORT viewport_ptr- ox <- peekElemOff viewport_ptr 0- oy <- peekElemOff viewport_ptr 1- ow <- peekElemOff viewport_ptr 2- oh <- peekElemOff viewport_ptr 3- finally (glActiveTexture gl_TEXTURE0 *>- action)- (glActiveTexture old_active *>- glViewport ox oy ow oh)--withPolygonOffset :: (Float, Float) -> IO a -> IO a-withPolygonOffset (factor, units) action = do- old_factor <- gf gl_POLYGON_OFFSET_FACTOR- old_units <- gf gl_POLYGON_OFFSET_UNITS- finally (do glPolygonOffset (CFloat factor) (CFloat units)- action) $- glPolygonOffset old_factor old_units---- | Sets the active texture (not public API! What would they use this for--- anyway?).-setActiveTexture :: GLuint -> Draw ()-setActiveTexture unit = Draw $ do- old_active <- activeTexture <$> get- when (old_active /= unit) $- liftIO (glActiveTexture $ gl_TEXTURE0 + unit) *>- modify (\old -> old { activeTexture = unit })---- | Sets new texture bindings.-setTextureBindings :: IM.IntMap Texture -> Draw ()-setTextureBindings texes = do- old_texes <- Draw $ boundTextures <$> get- -- Iterate over the old bindings.- for_ (IM.assocs old_texes) $ \(index, tex) ->- case IM.lookup index texes of- -- A texture was bound previously, new bindings don't bind the- -- texture at this unit.- Nothing -> setActiveTexture (safeFromIntegral index) *>- let (bind_target, _) =- Texture.getTopologyBindPoints $- topology $ viewSpecification tex- in liftIO $ glBindTexture bind_target 0- -- A texture was bound previously, new bindings also bind some- -- texture here.- Just new_tex -> do- old_name <-- liftIO $ withResource (Texture.resource tex) $- \(Texture.Texture_ old_name) -> return old_name- name <-- liftIO $ withResource (Texture.resource new_tex) $- \(Texture.Texture_ name) -> return name- -- Only bind if the texture changed.- when (name /= old_name) $ do- setActiveTexture (safeFromIntegral index)- let (bind_target, _) =- Texture.getTopologyBindPoints $- topology $ viewSpecification new_tex- in liftIO $ glBindTexture bind_target name- -- Iterate over new bindings. We need to only check those that were not- -- part of the old bindings.- for_ (IM.assocs texes) $ \(index, tex) ->- case IM.lookup index old_texes of- Just _ -> pure () -- already handled in the above for_- Nothing -> do- name <- liftIO $ withResource (Texture.resource tex) $- \(Texture.Texture_ name) -> return name- setActiveTexture (safeFromIntegral index)- let (bind_target, _) =- Texture.getTopologyBindPoints $- topology $ viewSpecification tex- in liftIO $ glBindTexture bind_target name-- Draw $ modify (\old -> old { boundTextures = texes })---- | Changes the pipeline in a `Draw` command stream.-setPipeline :: Shader.Pipeline -> Draw ()-setPipeline pl = Draw $ do- old_pl <- boundPipeline <$> get- when (old_pl /= pl) $ do- liftIO $ withResource (Shader.resourcePL pl) $- \(Shader.Pipeline_ program) ->- setBoundProgram program- modify (\old -> old { boundPipeline = pl })-{-# INLINE setPipeline #-}---- | Changes the current blending mode.-setBlending :: BlendSpec -> Draw ()-setBlending blends = Draw $ do- old_blending <- boundBlending <$> get- when (blends /= old_blending) $ do- liftIO $ setBlendings blends- modify (\old -> old { boundBlending = blends })-{-# INLINE setBlending #-}---- | Sets the new fragment pass tests.-setFragmentPassTests :: FragmentPassTests -> Draw ()-setFragmentPassTests tests = Draw $ do- old_tests <- boundFragmentPassTests <$> get- when (old_tests /= tests) $ do- liftIO $ I.setFragmentPassTests tests- modify (\old -> old { boundFragmentPassTests = tests })-{-# INLINE setFragmentPassTests #-}---- | Sets polygon offset.-setPolygonOffset :: Float -> Float -> Draw ()-setPolygonOffset factor units = Draw $- liftIO $ glPolygonOffset (CFloat factor) (CFloat units)---- | Sets the current framebuffer.-setTargetFramebuffer :: FBuf.Framebuffer -> Draw ()-setTargetFramebuffer fbuf = Draw $ do- old_fbuf <- boundFramebuffer <$> get- when (old_fbuf /= fbuf) $ do- liftIO $ FBuf.setBinding fbuf- modify (\old -> old { boundFramebuffer = fbuf })-{-# INLINE setTargetFramebuffer #-}--withBoundTextures :: IM.IntMap Texture -> IO a -> IO a-withBoundTextures (IM.assocs -> bindings) action = rec bindings- where- rec [] = action- rec ((unit, tex):rest) =- withTextureBinding tex unit $ rec rest--withPipeline :: Shader.Pipeline -> IO a -> IO a-withPipeline pipeline action =- withResource (Shader.resourcePL pipeline) $ \(Shader.Pipeline_ program) ->- withBoundProgram program action-{-# INLINE withPipeline #-}-
− src/Caramia/Render/Internal.hs
@@ -1,239 +0,0 @@-{-# LANGUAGE RecordWildCards, NoImplicitPrelude, DeriveDataTypeable #-}--module Caramia.Render.Internal where--import Caramia.Prelude--import Caramia.Internal.OpenGLCApi-import Control.Exception---- | A comparison function. Incoming value is compared with this function to--- the existing value.------ This can be used with depth and stencil tests.------ See @ glDepthFunc @ from OpenGL specification or man pages for more detailed--- explanation.-data ComparisonFunc =- Never- | Less- | Equal- | LEqual- | Greater- | NotEqual- | GEqual- | Always- deriving ( Eq, Ord, Show, Read, Typeable )--comparisonFuncToConstant :: ComparisonFunc -> GLenum-comparisonFuncToConstant Never = gl_NEVER-comparisonFuncToConstant Less = gl_LESS-comparisonFuncToConstant Equal = gl_EQUAL-comparisonFuncToConstant LEqual = gl_LEQUAL-comparisonFuncToConstant Greater = gl_GREATER-comparisonFuncToConstant NotEqual = gl_NOTEQUAL-comparisonFuncToConstant GEqual = gl_GEQUAL-comparisonFuncToConstant Always = gl_ALWAYS---- | Stencil buffer operations.------ See @ glStencilOp @ for explanations of each constructor.-data StencilOp =- Keep- | Zero- | Replace- -- ^ This one replaces the old value in the stencil buffer with the given- -- reference value and ANDs the result with mask.- | Increment- | IncrementAndWrap- | Decrease- | DecreaseAndWrap- | Invert- deriving ( Eq, Ord, Show, Read, Typeable )--stencilOpToConstant :: StencilOp -> GLenum-stencilOpToConstant Keep = gl_KEEP-stencilOpToConstant Zero = gl_ZERO-stencilOpToConstant Replace = gl_REPLACE-stencilOpToConstant Increment = gl_INCR-stencilOpToConstant IncrementAndWrap = gl_INCR_WRAP-stencilOpToConstant Decrease = gl_DECR-stencilOpToConstant DecreaseAndWrap = gl_DECR_WRAP-stencilOpToConstant Invert = gl_INVERT--setStencilFunc :: ComparisonFunc- -> StencilOp- -> StencilOp- -> StencilOp- -> Word32- -> Word32- -> IO ()-setStencilFunc func op1 op2 op3 ref mask = do- glStencilFunc (comparisonFuncToConstant func)- (fromIntegral ref)- (fromIntegral mask)- glStencilOp (stencilOpToConstant op1)- (stencilOpToConstant op2)- (stencilOpToConstant op3)-{-# INLINE setStencilFunc #-}--withStencilFunc :: ComparisonFunc- -> StencilOp- -> StencilOp- -> StencilOp- -> Word32- -> Word32- -> IO a- -> IO a-withStencilFunc func op1 op2 op3 ref mask action = do- old_func <- gi gl_STENCIL_FUNC- old_ref <- gi gl_STENCIL_REF- old_mask <- gi gl_STENCIL_VALUE_MASK- old_op1 <- gi gl_STENCIL_FAIL- old_op2 <- gi gl_STENCIL_PASS_DEPTH_FAIL- old_op3 <- gi gl_STENCIL_PASS_DEPTH_PASS- finally (setStencilFunc func op1 op2 op3 ref mask *> action)- (glStencilFunc old_func (fromIntegral old_ref) old_mask *>- glStencilOp old_op1 old_op2 old_op3)--withCulling :: Culling -> IO a -> IO a-withCulling culling action = do- old_culling <- gi gl_CULL_FACE_MODE- was_enabled <- glIsEnabled gl_CULL_FACE- finally (setCulling culling *> action)- (do if was_enabled == fromIntegral gl_TRUE- then glEnable gl_CULL_FACE- else glDisable gl_CULL_FACE- glCullFace old_culling)--setCulling :: Culling -> IO ()-setCulling NoCulling = glDisable gl_CULL_FACE-setCulling x = mask_ $- glEnable gl_CULL_FACE *>- glCullFace (cullingToConstant x)--setDepthFunc :: ComparisonFunc -> Bool -> IO ()-setDepthFunc func write_depth =- glDepthFunc (comparisonFuncToConstant func) *>- glDepthMask (fromIntegral $ if write_depth then gl_TRUE else gl_FALSE)--withDepthFunc :: ComparisonFunc -> Bool -> IO a -> IO a-withDepthFunc func write_depth action = do- old_depth_func <- gi gl_DEPTH_FUNC- old_depth_write <- gi gl_DEPTH_WRITEMASK- finally (setDepthFunc func write_depth *> action)- (glDepthFunc old_depth_func *>- glDepthMask (fromIntegral old_depth_write))--setFragmentPassTests :: FragmentPassTests -> IO ()-setFragmentPassTests (FragmentPassTests {..}) = do- case depthTest of- Nothing -> glDisable gl_DEPTH_TEST- Just dt -> glEnable gl_DEPTH_TEST *>- setDepthFunc dt writeDepth- case stencilTest of- Nothing -> glDisable gl_STENCIL_TEST- Just st -> glEnable gl_STENCIL_TEST *>- setStencilFunc st- failStencilOp- depthFailStencilOp- depthPassStencilOp- stencilReference- stencilMask- setCulling cullFace--withFragmentPassTests :: FragmentPassTests -> IO a -> IO a-withFragmentPassTests (FragmentPassTests {..}) action = do- was_it_enabled <- glIsEnabled gl_DEPTH_TEST- finally- (case depthTest of- Nothing -> glDisable gl_DEPTH_TEST *> next- Just dt -> glEnable gl_DEPTH_TEST *>- withDepthFunc dt writeDepth next) $- if was_it_enabled == fromIntegral gl_TRUE- then glEnable gl_DEPTH_TEST- else glDisable gl_DEPTH_TEST- where- next = do- was_it_enabled <- glIsEnabled gl_STENCIL_TEST- finally- (case stencilTest of- Nothing -> glDisable gl_STENCIL_TEST *> next'- Just st -> glEnable gl_STENCIL_TEST *>- withStencilFunc st- failStencilOp- depthFailStencilOp- depthPassStencilOp- stencilReference- stencilMask- next') $- if was_it_enabled == fromIntegral gl_TRUE- then glEnable gl_STENCIL_TEST- else glDisable gl_STENCIL_TEST-- next' = withCulling cullFace action--data Culling =- Back- | Front- | FrontAndBack -- ^ This stops the drawing of any faces but points and lines- -- (or other non-facey like primitives) are drawn.- | NoCulling- deriving ( Eq, Ord, Show, Read, Typeable )--cullingToConstant :: Culling -> GLenum-cullingToConstant Back = gl_BACK-cullingToConstant Front = gl_FRONT-cullingToConstant FrontAndBack = gl_FRONT_AND_BACK-cullingToConstant NoCulling = 0---- | Specifies the tests that are run on a fragment to decide if it should be--- seen.-data FragmentPassTests = FragmentPassTests {- depthTest :: !(Maybe ComparisonFunc)- -- ^ Which depth test to use, if any?- , writeDepth :: Bool- -- ^ If depth test is specified, should we also update the depth buffer with- -- new depth values? The depth buffer will not be written if `depthTest` is- -- not specified regardless of the value in this field.- , stencilTest :: !(Maybe ComparisonFunc)- -- ^ Which stencil test to use, if any?- , stencilReference :: !Word32- , stencilMask :: !Word32- , failStencilOp :: !StencilOp- -- ^ What to do with the stencil buffer if stencil test fails.- , depthFailStencilOp :: !StencilOp- -- ^ What to do with the stencil buffer if stencil test passes but depth- -- testing fails).- , depthPassStencilOp :: !StencilOp- -- ^ What to do with the stencil buffer if stencil and depth test passes, or- -- if depth buffer is not present or depth test is disabled.- , cullFace :: !Culling- -- ^ What kind of face culling should we do.- }- deriving ( Eq, Ord, Show, Read, Typeable )---- | Returns the default fragment pass tests.------ Neither depth or stencil test is enabled. `writeDepth` is set to true but--- that value is only used if you specify with depth test to use.------ All stencil operations are set to `Keep`.------ Culling is set to `Back`.-defaultFragmentPassTests :: FragmentPassTests-defaultFragmentPassTests = FragmentPassTests- { depthTest = Nothing- , writeDepth = True- , stencilTest = Nothing- , stencilReference = 0- , stencilMask = 0xffffffff- , failStencilOp = Keep- , depthFailStencilOp = Keep- , depthPassStencilOp = Keep- , cullFace = Back }---- TODO: separate stencil tests for backsides of triangles--- (glStencilOpSeparate)--
− src/Caramia/Resource.hs
@@ -1,144 +0,0 @@--- | Caramia resources.------ Resources in Caramia encapsulate OpenGL resources which have some--- constraints on their use:------ * They are, in the general case, only valid in a specific operating--- system thread.--- * They need an implicit OpenGL context active to be used.------ This module helps with the correct finalization of OpenGL resources as--- according to those constraints.------ Most of the time, Caramia keeps `Resource` objects hidden so you, the user,--- is unlikely to see these directly.-----{-# LANGUAGE BangPatterns #-}--module Caramia.Resource- ( Resource()- , newResource- , withResource )- where--import Caramia.Prelude-import Caramia.Context-import Control.Exception---- | The data type of a Caramia resource.-data Resource a = Resource- { rawResource :: !(IORef (Maybe- ( a -- the unmanaged resource- , IO () -- opengl finalizer- , IO ()))) -- normal finalizer- , nativeCid :: !ContextID- }--instance Eq (Resource a) where- res1 == res2 = rawResource res1 == rawResource res2---- | Creates a new resource.------ Must be called in a thread that has an OpenGL context active. Otherwise, an--- error will be thrown.------ If you throw an exception in the OpenGL finalizer, then this will disrupt--- Caramia context and make it invalid. So try not to throw those exceptions?-newResource :: IO a -- ^ Action that returns the raw, unmanaged- -- resource. Good place to create it.- -> (a -> IO ()) -- ^ OpenGL finalizer. Will only be called in- -- the same thread as this `newResource` is- -- called, but only if the same OpenGL- -- context is still alive.- -> IO () -- ^ \'Ordinary\' finalizer. This will be- -- called immediately when garbage collector- -- collects the resource which means before- -- the OpenGL finalizer and in a separate- -- thread. If this finalizer throws an- -- exception then the OpenGL finalizer is- -- cancelled and the resource is marked as- -- finalized. This will be run even if the- -- OpenGL context is gone.- -> IO (Resource a)-newResource resource_creator finalizer normal_finalizer = mask_ $- -- We need the context ID for correct finalization so we cannot take away- -- this check with NO_RESOURCE_RUNTIME_CHECKS.- maybe (error "newResource: no OpenGL context active.")- (\cid -> do- resource <- resource_creator- let opengl_finalizer = finalizer resource- ref <- newIORef (Just ( resource- , opengl_finalizer- , normal_finalizer ))- let res = Resource { rawResource = ref- , nativeCid = cid }- void $ mkWeakIORef ref $ finalizeNow res- return res)- =<<- currentContextID---- | Promptly finalize a resource.------ The ordinary finalizer will be run immediately. The OpenGL finalizer will be--- run if the current thread is the same OpenGL thread where the resource was--- created.------ If you want asynchronous finalization, then use `finalizeAsync`, which--- behaves more like actual garbage collection, only more promptly.------ I recommend you use `finalizeAsync` because it is more consistent with--- normal garbage collection behaviour and thus is more difficult to use--- incorrectly.------ If ordinary finalizer throws an exception, the OpenGL finalizer is not run--- and the resource is marked as finalized. The exception propagates out from--- this call to you.------ Does nothing if the resource is already finalized.------ ***********************--- TODO: this is not actually exported API. Some resources cannot be finalized--- like this because other resources might refer to them. How do we handle--- resources that can refer to each other? Right now, we cannot. So we can't--- allow users to finalize things by themselves.-finalizeNow :: Resource a -> IO ()-finalizeNow resource = mask_ $ do- maybe_res <- atomicModifyIORef (rawResource resource) $- \old -> ( Nothing, old )- case maybe_res of- Nothing -> return ()- Just (_, opengl_finalizer, normal_finalizer) -> do- normal_finalizer- let schedule = scheduleFinalizer (nativeCid resource)- opengl_finalizer- maybe schedule- (\cid ->- if cid == nativeCid resource- then opengl_finalizer- else schedule)- =<<- currentContextID---- | Uses a resource.------ Throws an user error if the resource is used in a wrong or dead context.-withResource :: Resource a- -> (a -> IO b) -- ^ Use the resource inside this action. Don't- -- return the unmanaged resource from this- -- because behaviour is then undefined.- -> IO b-withResource resource action =- maybe (error "withResource: resource has been finalized.")- (\(res, _, _) -> do- cid <- currentContextID- if cid == Just (nativeCid resource)- then action res <* touchIORef ref- else error $ "withResource: attempted resource use " <>- "in a wrong context.")- =<<- readIORef ref- where- ref = rawResource resource- touchIORef !_ = return ()-
− src/Caramia/Shader.hs
@@ -1,539 +0,0 @@--- | Shaders.------ This module lets you use GLSL shaders in rendering.------ This abstracts OpenGL shaders and shader objects. In the future, we might--- implement separate shader programs (that is,--- GL_ARB_separate_shader_objects).------ At the moment, you need to use explicit attribute locations in shaders--- themselves. There is no functionality to retrieve attribute locations in--- this API; you simply have to know them.------ <https://www.opengl.org/wiki/OpenGL_Shading_Language>------- TODO: separable program objects. This is an extension and only became core--- in OpenGL 4.1 (GL_ARB_separate_shader_objects). As of writing of this, I--- think it's not prime time to use those yet. Maybe in a few years.-----{-# LANGUAGE NoImplicitPrelude, FlexibleInstances, DeriveDataTypeable #-}-{-# LANGUAGE ExistentialQuantification, ViewPatterns, OverloadedStrings #-}--module Caramia.Shader- ( newShader- , newPipeline- , newPipelineVF- , Shader()- , Pipeline()- -- * Uniforms- , setUniform- , getUniformLocation- , Uniformable()- , UniformLocation- -- * Shader stages- , ShaderStage(..)- -- * Views- , viewStage- -- * Misc- , nopPipeline- -- * Exception- , ShaderCompilationError(..)- , ShaderLinkingError(..)- , ShaderBuildingError(..)- )- where--import Caramia.Prelude--import Caramia.Shader.Internal--import Caramia.Context-import Caramia.Resource-import Caramia.Internal.OpenGLCApi-import Caramia.Math--import GHC.Float ( double2Float )--import Control.Exception-import Foreign-import Foreign.C.Types-import qualified Data.ByteString as B-import qualified Data.Text as T-import qualified Data.Text.Encoding as T-import qualified Data.Text.Foreign as T--type UniformLocation = Int---- TODO: add tesselation shaders--toConstant :: ShaderStage -> GLenum-toConstant Vertex = gl_VERTEX_SHADER-toConstant Fragment = gl_FRAGMENT_SHADER-toConstant Geometry = gl_GEOMETRY_SHADER---- | Thrown when either a compilation or linking error occurs.-data ShaderBuildingError = forall e. Exception e => ShaderBuildingError e- deriving ( Typeable )--instance Show ShaderBuildingError where- show (ShaderBuildingError e) = show e---- | Thrown when a shader compilation error occurs. The text is the error log--- for compilation.------ Can also be caught as `ShaderBuildingError`.-data ShaderCompilationError = ShaderCompilationError !T.Text- deriving ( Eq, Typeable, Show )---- | Thrown when a shader linking error occurs. The text is the error log for--- linking.------ Can also be caught as `ShaderBuildingError`.-data ShaderLinkingError = ShaderLinkingError !T.Text- deriving ( Eq, Typeable, Show )--instance Exception ShaderBuildingError--shaderExceptionToException :: Exception e => e -> SomeException-shaderExceptionToException = toException . ShaderBuildingError--shaderExceptionFromException :: Exception e => SomeException -> Maybe e-shaderExceptionFromException exc = do- ShaderBuildingError a <- fromException exc- cast a--instance Exception ShaderCompilationError where- toException = shaderExceptionToException- fromException = shaderExceptionFromException--instance Exception ShaderLinkingError where- toException = shaderExceptionToException- fromException = shaderExceptionFromException---- | Sets a uniform in a pipeline.-setUniform :: Uniformable a- => a- -> UniformLocation- -> Pipeline- -> IO ()-setUniform uniformable location pipeline =- withResource (resourcePL pipeline) $ \(Pipeline_ program) ->- setUniform_ program (safeFromIntegral location) uniformable-{-# INLINE [1] setUniform #-}---- | Creates a shader from GLSL shader source.------ This can throw `ShaderCompilationError` if compilation fails.-newShader :: T.Text -- ^ The shader source code.- -> ShaderStage- -> IO Shader-newShader source_code stage = mask_ $ do- res <- newResource create- deleter- (return ())- nid <- atomicModifyIORef' shaderIdentifierSupply $ \old ->- ( old + 1, old )- return Shader { resource = res- , identifier = nid- , viewStage = stage }- where- deleter (CompiledShader shader) =- glDeleteShader shader-- create = do- shader_name <- glCreateShader (toConstant stage)- T.withCStringLen source_code $ \(cstr, len) ->- with cstr $ \cstr_ptr ->- with (fromIntegral len :: GLint) $ \len_ptr ->- glShaderSource- shader_name- 1- cstr_ptr- len_ptr- glCompileShader shader_name- checkCompilationErrors shader_name- return $ CompiledShader shader_name---- | Checks that there are no compilation errors in an OpenGL shader object.------ DELETES the shader if there were errors.-checkCompilationErrors :: GLuint -> IO ()-checkCompilationErrors shader_name = do- status <- gget $ glGetShaderiv shader_name gl_COMPILE_STATUS- when (status == fromIntegral gl_FALSE) $ do- log_len <- gget $ glGetShaderiv shader_name gl_INFO_LOG_LENGTH- allocaBytes (safeFromIntegral log_len) $ \str -> do- glGetShaderInfoLog shader_name log_len nullPtr str- log <- T.peekCStringLen ( str- , safeFromIntegral $ max 0 $ log_len-1 )- glDeleteShader shader_name- throwIO $ ShaderCompilationError log---- | Same as `checkCompilationErrors` but for linking.------ DELETES the program if there were errors.-checkLinkingErrors :: GLuint -> IO ()-checkLinkingErrors program_name = do- status <- gget $ glGetProgramiv program_name gl_LINK_STATUS- when (status == fromIntegral gl_FALSE) $ do- log_len <- gget $ glGetProgramiv program_name gl_INFO_LOG_LENGTH- allocaBytes (safeFromIntegral log_len) $ \str -> do- glGetProgramInfoLog program_name log_len nullPtr str- log <- T.peekCStringLen ( str- , safeFromIntegral $ max 0 $ log_len-1)- glDeleteProgram program_name- throwIO $ ShaderLinkingError log---- | Creates a pipeline from vertex and fragment shader source.------ This is a convenience function for a common use case.-newPipelineVF :: T.Text -- ^ Vertex shader source.- -> T.Text -- ^ Fragment shader source.- -> IO Pipeline-newPipelineVF vert_src frag_src = do- vsh <- newShader vert_src Vertex- fsh <- newShader frag_src Fragment- newPipeline [vsh, fsh]---- | Creates a pipeline composed of different shaders.-newPipeline :: [Shader] -> IO Pipeline-newPipeline = newTraditionalPipeline--newTraditionalPipeline :: [Shader] -> IO Pipeline-newTraditionalPipeline shaders = mask_ $ do- res <- newResource creator- deleter- (return ())- nid <- atomicModifyIORef' shaderIdentifierSupply $ \old ->- ( old+1, old )- return Pipeline { resourcePL = res- , pipelineIdentifier = nid- , shaders = shaders }- where- creator = do- program <- glCreateProgram- for_ shaders $ \shader ->- withResource (resource shader) $ \(CompiledShader sname) ->- glAttachShader program sname- glLinkProgram program- checkLinkingErrors program- return $ Pipeline_ program-- deleter (Pipeline_ program) = glDeleteProgram program--gget :: Storable a => (Ptr a -> IO ()) -> IO a-gget action = alloca $ \ptr -> action ptr >> peek ptr---- | Class of data types that can be set to a uniform in a shader pipeline.------ We provide instances for large integer values (such as `Integer`) but you--- should know that uniforms are rarely larger than 32-bit. We throw a user--- error if you pass a value that is larger than what the OpenGL API can accept--- (which is 2^32-1 for unsigned integer types and 2^31-1 for signed integer--- types).-class Uniformable a where- setUniform_ :: GLuint -> GLint -> a -> IO ()--type USetter1 a = GLuint -> GLint -> a -> IO ()-type USetter2 a = GLuint -> GLint -> (a, a) -> IO ()-type USetter3 a = GLuint -> GLint -> (a, a, a) -> IO ()-type USetter4 a = GLuint -> GLint -> (a, a, a, a) -> IO ()--setUi1 :: Integral a => USetter1 a-setUi1 program loc w =- mglProgramUniform1ui program loc (safeFromIntegral w)-{-# INLINE setUi1 #-}--setUi2 :: Integral a => USetter2 a-setUi2 program loc (w1, w2) =- mglProgramUniform2ui program loc (safeFromIntegral w1)- (safeFromIntegral w2)-{-# INLINE setUi2 #-}--setUi3 :: Integral a => USetter3 a-setUi3 program loc (w1, w2, w3) =- mglProgramUniform3ui program loc (safeFromIntegral w1)- (safeFromIntegral w2)- (safeFromIntegral w3)-{-# INLINE setUi3 #-}--setUi4 :: Integral a => USetter4 a-setUi4 program loc (w1, w2, w3, w4) =- mglProgramUniform4ui program loc (safeFromIntegral w1)- (safeFromIntegral w2)- (safeFromIntegral w3)- (safeFromIntegral w4)-{-# INLINE setUi4 #-}--setI1 :: Integral a => USetter1 a-setI1 program loc w =- mglProgramUniform1i program loc (safeFromIntegral w)-{-# INLINE setI1 #-}--setI2 :: Integral a => USetter2 a-setI2 program loc (w1, w2) =- mglProgramUniform2i program loc (safeFromIntegral w1)- (safeFromIntegral w2)-{-# INLINE setI2 #-}--setI3 :: Integral a => USetter3 a-setI3 program loc (w1, w2, w3) =- mglProgramUniform3i program loc (safeFromIntegral w1)- (safeFromIntegral w2)- (safeFromIntegral w3)-{-# INLINE setI3 #-}--setI4 :: Integral a => USetter4 a-setI4 program loc (w1, w2, w3, w4) =- mglProgramUniform4i program loc (safeFromIntegral w1)- (safeFromIntegral w2)- (safeFromIntegral w3)- (safeFromIntegral w4)-{-# INLINE setI4 #-}--instance Uniformable Word8 where- setUniform_ = setUi1-instance Uniformable (Word8, Word8) where- setUniform_ = setUi2-instance Uniformable (Word8, Word8, Word8) where- setUniform_ = setUi3-instance Uniformable (Word8, Word8, Word8, Word8) where- setUniform_ = setUi4-instance Uniformable Word16 where- setUniform_ = setUi1-instance Uniformable (Word16, Word16) where- setUniform_ = setUi2-instance Uniformable (Word16, Word16, Word16) where- setUniform_ = setUi3-instance Uniformable (Word16, Word16, Word16, Word16) where- setUniform_ = setUi4-instance Uniformable Word32 where- setUniform_ = setUi1-instance Uniformable (Word32, Word32) where- setUniform_ = setUi2-instance Uniformable (Word32, Word32, Word32) where- setUniform_ = setUi3-instance Uniformable (Word32, Word32, Word32, Word32) where- setUniform_ = setUi4-instance Uniformable Word64 where- setUniform_ = setUi1-instance Uniformable (Word64, Word64) where- setUniform_ = setUi2-instance Uniformable (Word64, Word64, Word64) where- setUniform_ = setUi3-instance Uniformable (Word64, Word64, Word64, Word64) where- setUniform_ = setUi4-instance Uniformable CUInt where- setUniform_ = setUi1-instance Uniformable (CUInt, CUInt) where- setUniform_ = setUi2-instance Uniformable (CUInt, CUInt, CUInt) where- setUniform_ = setUi3-instance Uniformable (CUInt, CUInt, CUInt, CUInt) where- setUniform_ = setUi4-instance Uniformable CInt where- setUniform_ = setI1-instance Uniformable (CInt, CInt) where- setUniform_ = setI2-instance Uniformable (CInt, CInt, CInt) where- setUniform_ = setI3-instance Uniformable (CInt, CInt, CInt, CInt) where- setUniform_ = setI4--instance Uniformable Int8 where- setUniform_ = setI1-instance Uniformable (Int8, Int8) where- setUniform_ = setI2-instance Uniformable (Int8, Int8, Int8) where- setUniform_ = setI3-instance Uniformable (Int8, Int8, Int8, Int8) where- setUniform_ = setI4-instance Uniformable Int16 where- setUniform_ = setI1-instance Uniformable (Int16, Int16) where- setUniform_ = setI2-instance Uniformable (Int16, Int16, Int16) where- setUniform_ = setI3-instance Uniformable (Int16, Int16, Int16, Int16) where- setUniform_ = setI4-instance Uniformable Int32 where- setUniform_ = setI1-instance Uniformable (Int32, Int32) where- setUniform_ = setI2-instance Uniformable (Int32, Int32, Int32) where- setUniform_ = setI3-instance Uniformable (Int32, Int32, Int32, Int32) where- setUniform_ = setI4-instance Uniformable Int64 where- setUniform_ = setI1-instance Uniformable (Int64, Int64) where- setUniform_ = setI2-instance Uniformable (Int64, Int64, Int64) where- setUniform_ = setI3-instance Uniformable (Int64, Int64, Int64, Int64) where- setUniform_ = setI4-instance Uniformable Int where- setUniform_ = setI1-instance Uniformable (Int, Int) where- setUniform_ = setI2-instance Uniformable (Int, Int, Int) where- setUniform_ = setI3-instance Uniformable (Int, Int, Int, Int) where- setUniform_ = setI4-instance Uniformable Integer where- setUniform_ = setI1-instance Uniformable (Integer, Integer) where- setUniform_ = setI2-instance Uniformable (Integer, Integer, Integer) where- setUniform_ = setI3-instance Uniformable (Integer, Integer, Integer, Integer) where- setUniform_ = setI4-instance Uniformable Float where- setUniform_ program loc f1 =- mglProgramUniform1f program loc (CFloat f1)-instance Uniformable (Float, Float) where- setUniform_ program loc (f1, f2) =- mglProgramUniform2f program loc (CFloat f1) (CFloat f2)-instance Uniformable (Float, Float, Float) where- setUniform_ program loc (f1, f2, f3) =- mglProgramUniform3f program loc- (CFloat f1)- (CFloat f2)- (CFloat f3)-instance Uniformable (Float, Float, Float, Float) where- setUniform_ program loc (f1, f2, f3, f4) =- mglProgramUniform4f program loc- (CFloat f1)- (CFloat f2)- (CFloat f3)- (CFloat f4)-instance Uniformable CFloat where- setUniform_ = mglProgramUniform1f-instance Uniformable (CFloat, CFloat) where- setUniform_ program loc (f1, f2) =- mglProgramUniform2f program loc f1 f2-instance Uniformable (CFloat, CFloat, CFloat) where- setUniform_ program loc (f1, f2, f3) =- mglProgramUniform3f program loc f1 f2 f3-instance Uniformable (CFloat, CFloat, CFloat, CFloat) where- setUniform_ program loc (f1, f2, f3, f4) =- mglProgramUniform4f program loc f1 f2 f3 f4--instance Uniformable Double where- setUniform_ program loc f1 =- mglProgramUniform1f program loc (double2CFloat f1)-instance Uniformable (Double, Double) where- setUniform_ program loc (f1, f2) =- mglProgramUniform2f program loc (double2CFloat f1) (double2CFloat f2)-instance Uniformable (Double, Double, Double) where- setUniform_ program loc (f1, f2, f3) =- mglProgramUniform3f program loc- (double2CFloat f1)- (double2CFloat f2)- (double2CFloat f3)-instance Uniformable (Double, Double, Double, Double) where- setUniform_ program loc (f1, f2, f3, f4) =- mglProgramUniform4f program loc- (double2CFloat f1)- (double2CFloat f2)- (double2CFloat f3)- (double2CFloat f4)-instance Uniformable CDouble where- setUniform_ program loc f1 =- mglProgramUniform1f program loc (cdouble2CFloat f1)-instance Uniformable (CDouble, CDouble) where- setUniform_ program loc (f1, f2) =- mglProgramUniform2f program loc (cdouble2CFloat f1) (cdouble2CFloat f2)-instance Uniformable (CDouble, CDouble, CDouble) where- setUniform_ program loc (f1, f2, f3) =- mglProgramUniform3f program loc- (cdouble2CFloat f1)- (cdouble2CFloat f2)- (cdouble2CFloat f3)-instance Uniformable (CDouble, CDouble, CDouble, CDouble) where- setUniform_ program loc (f1, f2, f3, f4) =- mglProgramUniform4f program loc- (cdouble2CFloat f1)- (cdouble2CFloat f2)- (cdouble2CFloat f3)- (cdouble2CFloat f4)--instance Uniformable Vector3 where- setUniform_ program loc (toTuple3 -> tuple) =- setUniform_ program loc tuple--instance Uniformable Quaternion where- setUniform_ program loc (toTupleq -> tuple) =- setUniform_ program loc tuple--instance Uniformable Matrix33 where- setUniform_ program loc m33 =- withMatrix33Ptr m33 $- mglProgramUniformMatrix3fv program loc 1- (fromIntegral gl_FALSE)--instance Uniformable Matrix44 where- setUniform_ program loc m44 =- withMatrix44Ptr m44 $ mglProgramUniformMatrix4fv program loc 1- (fromIntegral gl_FALSE)---- these are for RULES firing-newtype Transpose33 = Transpose33 Matrix33-newtype Transpose44 = Transpose44 Matrix44--instance Uniformable Transpose33 where- setUniform_ program loc (Transpose33 m33) =- withMatrix33Ptr m33 $- mglProgramUniformMatrix3fv program loc 1 (fromIntegral gl_TRUE)--instance Uniformable Transpose44 where- setUniform_ program loc (Transpose44 m44) =- withMatrix44Ptr m44 $ mglProgramUniformMatrix4fv program loc 1- (fromIntegral gl_TRUE)--double2CFloat :: Double -> CFloat-double2CFloat dbl = CFloat $ double2Float dbl--cdouble2CFloat :: CDouble -> CFloat-cdouble2CFloat (CDouble dbl) = CFloat $ double2Float dbl--{-# RULES "transpose/glProgramUniformMatrix3fv" forall (a :: Matrix33) b c.- setUniform (transpose33 a) b c =- setUniform (Transpose33 a) b c #-}--{-# RULES "transpose/glProgramUniformMatrix4fv" forall (a :: Matrix44) b c.- setUniform (transpose44 a) b c =- setUniform (Transpose44 a) b c #-}---- | Returns a uniform location for a given name.------ The uniform may not be in the shader or it may not be active. If this--- happens, a special uniform location is returned that can be used in--- `setUniform` to make it do nothing.-getUniformLocation :: T.Text -> Pipeline -> IO UniformLocation-getUniformLocation name pipeline = fromIntegral <$>- withResource (resourcePL pipeline) (\(Pipeline_ program) ->- B.useAsCString (T.encodeUtf8 name) $ \cstr ->- glGetUniformLocation program cstr)---- context local pipeline-newtype CLNopPipeline = CLNopPipeline { unwrapCLNop :: Pipeline }- deriving ( Typeable )---- | Returns a pipeline that does not do anything.------ Within the same context, this returns the same pipeline for each invocation.-nopPipeline :: IO Pipeline-nopPipeline =- unwrapCLNop <$> retrieveContextLocalData (CLNopPipeline <$> cr)- where- cr = do- vsh <- newShader vsh_src Vertex- fsh <- newShader fsh_src Fragment- newPipeline [vsh, fsh]- where- vsh_src = "#version 330\nvoid main() { }\n"- fsh_src = "#version 330\nvoid main() { }\n"-
− src/Caramia/Shader/Internal.hs
@@ -1,65 +0,0 @@-{-# LANGUAGE ViewPatterns, NoImplicitPrelude, DeriveDataTypeable #-}--module Caramia.Shader.Internal- ( Shader(..)- , Pipeline(..)- , Pipeline_(..)- , Shader_(..)- , ShaderStage(..)- , shaderIdentifierSupply )- where--import Caramia.Prelude--import Caramia.Resource-import System.IO.Unsafe-import Caramia.Internal.OpenGLCApi---- | A shader object for a specific shader stage.------ OpenGL equivalent is the shader object.-data Shader = Shader- { resource :: !(Resource Shader_)- , viewStage :: !ShaderStage- -- ^ Which stage does this shader belong to.- , identifier :: !Int- }- deriving ( Typeable )--instance Eq Shader where- (resource -> res1) == (resource -> res2) = res1 == res2---- | The ordering has no inherent meaning but it allows shaders to be stored--- correctly in containers that have `Ord` constraint.-instance Ord Shader where- (identifier -> id1) `compare` (identifier -> id2) = id1 `compare` id2--data Shader_ = CompiledShader !GLuint -- OpenGL shader---- | A pipeline object that references a collection of shaders.------ OpenGL equivalent is the shader program object.-data Pipeline = Pipeline- { resourcePL :: !(Resource Pipeline_)- , pipelineIdentifier :: !Int- , shaders :: [Shader] }- deriving ( Typeable )--instance Eq Pipeline where- p1 == p2 = resourcePL p1 == resourcePL p2--instance Ord Pipeline where- p1 `compare` p2 = pipelineIdentifier p1 `compare` pipelineIdentifier p2--newtype Pipeline_ = Pipeline_ GLuint--shaderIdentifierSupply :: IORef Int-shaderIdentifierSupply = unsafePerformIO $ newIORef 0-{-# NOINLINE shaderIdentifierSupply #-}--data ShaderStage =- Vertex- | Fragment- | Geometry- deriving ( Eq, Ord, Show, Read )-
− src/Caramia/Sync.hs
@@ -1,68 +0,0 @@--- | Synchronization primitives.------ This module implements fence synchronization objects. They can be used to--- check when a GPU operation has been done.------ At the moment, the only place where these objects are useful in Caramia is--- unsynchronized buffer mapping.-----{-# LANGUAGE NoImplicitPrelude, DeriveDataTypeable, MultiWayIf #-}--module Caramia.Sync- (- -- * Operations- fence- , waitFence- , isFenceSignalled- -- * Types- , Fence() )- where--import Caramia.Internal.OpenGLCApi-import Caramia.Prelude-import Caramia.Resource-import Control.Exception--newtype Fence = Fence (Resource GLsync)- deriving ( Eq, Typeable )---- | Create a fence.-fence :: IO Fence-fence = mask_ $ do- resource <-- newResource createFence- glDeleteSync- (return ())- return $ Fence resource- where- createFence = glFenceSync gl_SYNC_GPU_COMMANDS_COMPLETE 0---- | Waits for a fence to signal.------ IMPORTANT: this is not interruptible by asynchronous exceptions.-waitFence :: Int -- ^ Number of microseconds to wait.- -> Fence- -> IO Bool -- ^ `True` if the fence was signalled,- -- `False` if waiting timed out.-waitFence useconds (Fence resource) =- withResource resource $ \fencesync -> do- ret <- glClientWaitSync fencesync gl_SYNC_FLUSH_COMMANDS_BIT- (fromIntegral actual_seconds)- if | ret == gl_ALREADY_SIGNALED -> return True- | ret == gl_TIMEOUT_EXPIRED -> return False- | ret == gl_CONDITION_SATISFIED -> return True- | ret == gl_WAIT_FAILED -> return True -- should we throw an error?- where- actual_seconds :: Word64- actual_seconds =- if useconds * 1000 < useconds- then maxBound- else safeFromIntegral $ useconds * 1000---- | Checks if a fence has been signalled.------ @ isFenceSignalled = waitFence 0 @-isFenceSignalled :: Fence -> IO Bool-isFenceSignalled = waitFence 0-
− src/Caramia/Texture.hs
@@ -1,728 +0,0 @@--- | Textures.-----{-# LANGUAGE RecordWildCards, ScopedTypeVariables, NoImplicitPrelude #-}-{-# LANGUAGE MultiWayIf, ViewPatterns, DeriveDataTypeable #-}--module Caramia.Texture- (- -- * Creating textures- newTexture- , Texture()- , TextureSpecification(..)- , textureSpecification- , Topology(..)- -- * Uploading to textures- , uploadToTexture- , Uploading(..)- , uploading1D- , uploading2D- , uploading3D- , UploadFormat(..)- , CubeSide(..)- -- * Texture units- , TextureUnit- -- * Mipmapping- , generateMipmaps- -- * Texture parameters- , setWrapping- , getWrapping- , setMinFilter- , setMagFilter- , getMinFilter- , getMagFilter- , setAnisotropy- , getAnisotropy- , setCompareMode- , getCompareMode- , MinFilter(..)- , MagFilter(..)- , Wrapping(..)- , CompareMode(..)- -- * Views- , viewSpecification- , viewWidth- , viewHeight- , viewDepth- , viewMipmapLevels- -- * Utilities- , maxMipmapLevels )- where--import Caramia.Prelude--import Caramia.Texture.Internal-import Caramia.Internal.OpenGLCApi-import qualified Caramia.Buffer.Internal as Buf-import Caramia.ImageFormats.Internal-import Caramia.Resource-import Control.Exception-import Foreign-import Foreign.C.Types--textureSpecification :: TextureSpecification-textureSpecification = TextureSpecification {- topology = error "textureSpecification: topology is not set."- , imageFormat = error "textureSpecification: image format is not set."- , mipmapLevels = 1 }---- | Returns the width of a texture.-viewWidth :: Texture -> Int-viewWidth (viewSpecification -> spec) = viewWidth' (topology spec)- where- viewWidth' (Tex1D {..}) = width1D- viewWidth' (Tex2D {..}) = width2D- viewWidth' (Tex3D {..}) = width3D- viewWidth' (Tex1DArray {..}) = width1DArray- viewWidth' (Tex2DArray {..}) = width2DArray- viewWidth' (Tex2DMultisample {..}) = width2DMS- viewWidth' (Tex2DMultisampleArray {..}) = width2DMSArray- viewWidth' (TexCube {..}) = widthCube- viewWidth' (TexBuffer {}) =- error "viewWidth: buffer texture has no meaningful width."- -- TODO: you can actually infer that from the buffer size- -- so implement it---- | Returns the height of a texture.------ This is 1 for one-dimensional textures.-viewHeight :: Texture -> Int-viewHeight (viewSpecification -> spec) = viewHeight' (topology spec)- where- viewHeight' (Tex1D {..}) = 1- viewHeight' (Tex2D {..}) = height2D- viewHeight' (Tex3D {..}) = height3D- viewHeight' (Tex1DArray {..}) = 1- viewHeight' (Tex2DArray {..}) = height2DArray- viewHeight' (Tex2DMultisample {..}) = height2DMS- viewHeight' (Tex2DMultisampleArray {..}) = height2DMSArray- viewHeight' (TexCube {..}) = widthCube- viewHeight' (TexBuffer {}) = 1---- | Returns the depth of a 3D texture or number of layers in array textures.------ This is 1 for any other type of texture.-viewDepth :: Texture -> Int-viewDepth (viewSpecification -> spec) = viewDepth' (topology spec)- where- viewDepth' (Tex1D {..}) = 1- viewDepth' (Tex2D {..}) = 1- viewDepth' (Tex3D {..}) = depth3D- viewDepth' (Tex1DArray {..}) = layers1D- viewDepth' (Tex2DArray {..}) = layers2D- viewDepth' (Tex2DMultisample {..}) = 1- viewDepth' (Tex2DMultisampleArray {..}) = layers2DMS- viewDepth' (TexCube {..}) = 1- viewDepth' (TexBuffer {}) = 1--viewMipmapLevels :: Texture -> Int-viewMipmapLevels = mipmapLevels . viewSpecification--isMultisamplingTopology :: Topology -> Bool-isMultisamplingTopology (Tex2DMultisample {..}) = True-isMultisamplingTopology (Tex2DMultisampleArray {..}) = True-isMultisamplingTopology _ = False---- | Creates a new texture.------ Initially the contents of the texture are undefined.------ Texture dimensions must be positive.-newTexture :: TextureSpecification- -> IO Texture-newTexture spec = mask_ $ do- topologySanityCheck (topology spec)- when (not (isMultisamplingTopology (topology spec)) &&- mipmapLevels spec < 1) $- error "newTexture: mipmapLevels is not positive."-- res <- newResource creator- deleter- (return ())-- index <- atomicModifyIORef' ordIndices $ \old -> ( old+1, old )- return Texture { resource = res- , ordIndex = index- , viewSpecification = spec }- where- num_mipmaps = mipmapLevels spec-- -- a lot of code just to check that all the dimensions are positive...- topologySanityCheck t@(Tex1D {..})- | width1D <= 0 = badTopology t- | not (isValidMipmap width1D num_mipmaps) = badMipmaps- | otherwise = return ()- topologySanityCheck t@(Tex2D {..})- | width2D <= 0 || height2D <= 0 = badTopology t- | not (isValidMipmap (max width2D height2D) num_mipmaps) = badMipmaps- | otherwise = return ()- topologySanityCheck t@(Tex3D {..})- | width3D <= 0 || height3D <= 0 || depth3D <= 0 = badTopology t- | not (isValidMipmap (max width3D $ max height3D depth3D) num_mipmaps) =- badMipmaps- | otherwise = return ()- topologySanityCheck t@(Tex1DArray {..})- | width1DArray <= 0 || layers1D <= 0 = badTopology t- | not (isValidMipmap width1DArray num_mipmaps) =- badMipmaps- | otherwise = return ()- topologySanityCheck t@(Tex2DArray {..})- | width2DArray <= 0 || height2DArray <= 0 ||- layers2D <= 0 = badTopology t- | not (isValidMipmap (max width2DArray height2DArray) num_mipmaps) =- badMipmaps- | otherwise = return ()- topologySanityCheck t@(Tex2DMultisample {..})- | width2DMS <= 0 || height2DMS <= 0 = badTopology t- | otherwise = return ()- topologySanityCheck t@(Tex2DMultisampleArray {..})- | width2DMSArray <= 0 || height2DMSArray <= 0 ||- layers2DMS <= 0 = badTopology t- | otherwise = return ()- topologySanityCheck t@(TexCube {..})- | widthCube <= 0 = badTopology t- | not (isValidMipmap widthCube num_mipmaps) =- badMipmaps- | otherwise = return ()- topologySanityCheck (TexBuffer {}) = return ()-- badTopology _ = error "newTexture: bad topology."-- badMipmaps =- error $ "newTexture: bad number of mipmap levels: " <> show num_mipmaps-- deleter (Texture_ name) =- with name $ glDeleteTextures 1-- creator = do- name <- bracketOnError- (alloca $ \name_ptr ->- glGenTextures 1 name_ptr *> peek name_ptr)- (deleter . Texture_ )- (\name -> do- createByTopology name (topology spec)- return name)- return (Texture_ name)-- -- TODO: use DSA when available, perhaps add mglTextureStorage* functions- -- to Caramia.Internal.OpenGLCApi?- createByTopology :: GLuint -> Topology -> IO ()- createByTopology name (Tex1D {..}) =- withBinding gl_TEXTURE_1D gl_TEXTURE_BINDING_1D name $- glTexStorage1D gl_TEXTURE_1D- (safeFromIntegral num_mipmaps)- (toConstantIF (imageFormat spec))- (safeFromIntegral width1D)- createByTopology name (Tex2D {..}) =- withBinding gl_TEXTURE_2D gl_TEXTURE_BINDING_2D name $- glTexStorage2D gl_TEXTURE_2D- (safeFromIntegral num_mipmaps)- (toConstantIF (imageFormat spec))- (safeFromIntegral width2D)- (safeFromIntegral height2D)- createByTopology name (Tex3D {..}) =- withBinding gl_TEXTURE_3D gl_TEXTURE_BINDING_3D name $- glTexStorage3D gl_TEXTURE_3D- (safeFromIntegral num_mipmaps)- (toConstantIF (imageFormat spec))- (safeFromIntegral width3D)- (safeFromIntegral height3D)- (safeFromIntegral depth3D)- createByTopology name (Tex1DArray {..}) =- withBinding gl_TEXTURE_1D_ARRAY gl_TEXTURE_BINDING_1D_ARRAY name $- glTexStorage2D gl_TEXTURE_1D_ARRAY- (safeFromIntegral num_mipmaps)- (toConstantIF (imageFormat spec))- (safeFromIntegral width1DArray)- (safeFromIntegral layers1D)- createByTopology name (Tex2DArray {..}) =- withBinding gl_TEXTURE_2D_ARRAY gl_TEXTURE_BINDING_2D_ARRAY name $- glTexStorage3D gl_TEXTURE_2D_ARRAY- (safeFromIntegral num_mipmaps)- (toConstantIF (imageFormat spec))- (safeFromIntegral width2DArray)- (safeFromIntegral height2DArray)- (safeFromIntegral layers2D)- createByTopology name (Tex2DMultisample {..}) =- withBinding gl_TEXTURE_2D_MULTISAMPLE- gl_TEXTURE_BINDING_2D_MULTISAMPLE- name $- glTexImage2DMultisample- gl_TEXTURE_2D_MULTISAMPLE- (safeFromIntegral samples2DMS)- (fromIntegral $ toConstantIF (imageFormat spec))- (safeFromIntegral width2DMS)- (safeFromIntegral height2DMS)- (if fixedSampleLocations2DMS- then 1 else 0)- createByTopology name (Tex2DMultisampleArray {..}) =- withBinding gl_TEXTURE_2D_MULTISAMPLE_ARRAY- gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY- name $- glTexImage3DMultisample- gl_TEXTURE_2D_MULTISAMPLE_ARRAY- (safeFromIntegral samples2DMSArray)- (fromIntegral $ toConstantIF (imageFormat spec))- (safeFromIntegral width2DMSArray)- (safeFromIntegral height2DMSArray)- (safeFromIntegral layers2DMS)- (if fixedSampleLocations2DMSArray- then 1 else 0)- createByTopology name (TexCube {..}) =- withBinding gl_TEXTURE_CUBE_MAP- gl_TEXTURE_BINDING_CUBE_MAP- name $- glTexStorage2D gl_TEXTURE_CUBE_MAP- (safeFromIntegral num_mipmaps)- (fromIntegral $ toConstantIF (imageFormat spec))- (safeFromIntegral widthCube)- (safeFromIntegral widthCube)- createByTopology name (TexBuffer {..}) =- withBinding gl_TEXTURE_BUFFER- gl_TEXTURE_BINDING_BUFFER- name $- withResource (Buf.resource texBuffer) $ \(Buf.Buffer_ bufname) ->- glTexBuffer gl_TEXTURE_BUFFER- (fromIntegral $ toConstantIF (imageFormat spec))- bufname---- | Generate all mipmaps for a texture. If mipmap levels were specified, that--- is.-generateMipmaps :: Texture -> IO ()-generateMipmaps = flip withBindingByTopology glGenerateMipmap---- | Specifies the format in which buffer data is for the purposes of uploading--- said data to a texture.-data UploadFormat =- UR -- ^ Just red.- | URG -- ^ Red and green.- | URGB -- ^ You know the drill.- | URGBA- | UBGR- | UBGRA- | UDEPTH_COMPONENT -- ^ Depth values.- | USTENCIL_INDEX -- ^ Stencil values.- deriving ( Eq, Ord, Show, Read, Typeable )---- TODO: add UDEPTH_STENCIL when `SpecificationType` has special interpretation--- formats.--toConstantUF :: UploadFormat -> GLenum-toConstantUF UR = gl_RED-toConstantUF URG = gl_RG-toConstantUF URGB = gl_RGB-toConstantUF URGBA = gl_RGBA-toConstantUF UBGR = gl_BGR-toConstantUF UBGRA = gl_BGRA-toConstantUF UDEPTH_COMPONENT = gl_DEPTH_COMPONENT-toConstantUF USTENCIL_INDEX = gl_STENCIL_INDEX---- | Used to specify how to move the data from a `Buffer` to a `Texture` in--- `uploadToTexture`.------ This is common for all texture topologies. However, some fields are ignored--- depending on the topology.------ For example, if you upload into a 1D texture, then all fields that deal with--- higher dimensions (`yOffset`, `zOffset`, `uHeight` etc.) are ignored.------ It is recommended that you use one of the smart constructors as they--- implement the common use cases so you don't have to fill all these fields by--- yourself.-data Uploading = Uploading- { fromBuffer :: !Buf.Buffer -- ^ From which buffer to upload.- , bufferOffset :: !Int -- ^ Offset in the buffer, in bytes,- -- from where to start uploading.- , toMipmapLevel :: !Int -- ^ To which mipmap level to upload.- -- (0 = base level).- , specificationType :: !SpecificationType- -- ^ What data type is used for each component value in a pixel.- , uploadFormat :: !UploadFormat- -- ^ What format is the source data in.- , xOffset :: !Int -- ^ X offset where to put the data.- , yOffset :: !Int -- ^ Y offset where to put the data.- , zOffset :: !Int -- ^ Z offset where to put the data.- , uWidth :: !Int -- ^ Width of the data to put.- , uHeight :: !Int -- ^ Height of the data to put.- , uDepth :: !Int -- ^ Number of 2D images to put.- , cubeSide :: CubeSide -- ^ Only used for cube map textures.- -- Specifies which side of the cube to upload.- -- Not evaluated if the texture is not a cube- -- texture.- , numColumns :: !Int- -- ^ Number of columns in the image in the source buffer. This value is- -- also sometimes known as \'pitch\'. It is the same as `uWidth` except in- -- cases where the next row in source data does not come immediately after- -- the current row but after `numColumns` from the first pixel in the row.- , numRows :: !Int- -- ^ Same as `numColumns` but for images in 3D uploading.- , pixelAlignment :: !Int- -- ^ Alignment in which the source texture data is. Every row is aligned to- -- this value. Allowed values are 1, 2, 4 and 8. The default value in smart- -- constructors is 1.- }- deriving ( Eq, Typeable )---- | Values of this type refer to sides of a cube.-data CubeSide =- PositiveY- | NegativeY- | PositiveX- | NegativeX- | PositiveZ- | NegativeZ- deriving ( Eq, Ord, Show, Read, Typeable )--toConstantCS :: CubeSide -> GLenum-toConstantCS PositiveX = gl_TEXTURE_CUBE_MAP_POSITIVE_X-toConstantCS NegativeX = gl_TEXTURE_CUBE_MAP_NEGATIVE_X-toConstantCS PositiveY = gl_TEXTURE_CUBE_MAP_POSITIVE_Y-toConstantCS NegativeY = gl_TEXTURE_CUBE_MAP_NEGATIVE_Y-toConstantCS PositiveZ = gl_TEXTURE_CUBE_MAP_POSITIVE_Z-toConstantCS NegativeZ = gl_TEXTURE_CUBE_MAP_NEGATIVE_Z---- | Constructs a common 1D uploading.-uploading1D :: Buf.Buffer- -> Int -- ^ How many pixels to upload.- -> SpecificationType- -> UploadFormat- -> Uploading-uploading1D buffer pixels stype uf =- Uploading {- fromBuffer = buffer- , bufferOffset = 0- , specificationType = stype- , uploadFormat = uf- , toMipmapLevel = 0- , xOffset = 0- , yOffset = 0- , zOffset = 0- , uWidth = pixels- , uHeight = 1- , uDepth = 1- , numColumns = pixels- , cubeSide = PositiveY- , numRows = 1- , pixelAlignment = 1 }---- | Constructs a common 2D uploading.------ This can also be used for uploading into 1D texture arrays.-uploading2D :: Buf.Buffer- -> Int -- ^ Width of the image to upload.- -> Int -- ^ Height of the image to upload.- -> SpecificationType- -> UploadFormat- -> Uploading-uploading2D buffer width height stype uf =- Uploading {- fromBuffer = buffer- , bufferOffset = 0- , specificationType = stype- , uploadFormat = uf- , toMipmapLevel = 0- , xOffset = 0- , yOffset = 0- , zOffset = 0- , uWidth = width- , uHeight = height- , uDepth = 1- , numColumns = width- , cubeSide = PositiveY- , numRows = height- , pixelAlignment = 1 }---- | Constructs a common 3D uploading.------ This can also be used for uploading into 2D texture arrays.-uploading3D :: Buf.Buffer- -> Int -- ^ Width of the image to upload.- -> Int -- ^ Height of the image to upload.- -> Int -- ^ Number of images to upload.- -> SpecificationType- -> UploadFormat- -> Uploading-uploading3D buffer width height depth stype uf =- Uploading {- fromBuffer = buffer- , bufferOffset = 0- , specificationType = stype- , uploadFormat = uf- , toMipmapLevel = 0- , xOffset = 0- , yOffset = 0- , zOffset = 0- , uWidth = width- , uHeight = height- , uDepth = depth- , numColumns = width- , cubeSide = PositiveY- , numRows = height- , pixelAlignment = 1 }---- | Uploads an image to a texture.-uploadToTexture :: Uploading- -> Texture- -> IO ()-uploadToTexture uploading tex = mask_ $- withResource (Buf.resource (fromBuffer uploading)) $ \(Buf.Buffer_ buf) ->- withBoundPixelUnpackBuffer buf $ do- old_num_cols <- fromIntegral <$> gi gl_UNPACK_ROW_LENGTH- old_num_rows <- fromIntegral <$> gi gl_UNPACK_IMAGE_HEIGHT- old_alignment <- fromIntegral <$> gi gl_UNPACK_ALIGNMENT- glPixelStorei gl_UNPACK_ROW_LENGTH- (safeFromIntegral $ numColumns uploading)- flip finally (glPixelStorei gl_UNPACK_ROW_LENGTH old_num_cols) $ do- glPixelStorei gl_UNPACK_IMAGE_HEIGHT- (safeFromIntegral $ numRows uploading)- flip finally (glPixelStorei gl_UNPACK_IMAGE_HEIGHT old_num_rows) $ do- glPixelStorei gl_UNPACK_ALIGNMENT- (safeFromIntegral $ pixelAlignment uploading)- flip finally (glPixelStorei gl_UNPACK_ALIGNMENT old_alignment) $- withResource (resource tex) $ \(Texture_ texname) ->- case topology $ viewSpecification tex of- Tex1D {..} ->- upload1D gl_TEXTURE_1D gl_TEXTURE_BINDING_1D- texname uploading- Tex2D {..} ->- upload2D gl_TEXTURE_2D gl_TEXTURE_BINDING_2D- texname uploading- Tex3D {..} ->- upload3D gl_TEXTURE_3D gl_TEXTURE_BINDING_3D- texname uploading- Tex1DArray {..} ->- upload2D gl_TEXTURE_1D_ARRAY gl_TEXTURE_BINDING_1D_ARRAY- texname uploading- Tex2DArray {..} ->- upload3D gl_TEXTURE_2D_ARRAY gl_TEXTURE_BINDING_2D_ARRAY- texname uploading- Tex2DMultisample {..} ->- error $ "uploadToTexture: cannot upload to " <>- "multisampling textures."- Tex2DMultisampleArray {..} ->- error $ "uploadToTexture: cannot upload to " <>- "multisampling array textures."- TexCube {..} ->- uploadCube gl_TEXTURE_CUBE_MAP- gl_TEXTURE_BINDING_CUBE_MAP- texname uploading- TexBuffer {..} ->- error $ "uploadToTexture: cannot upload to " <>- "buffer textures. (please upload directly to the " <>- "associated buffer instead.)"--upload1D :: GLenum -> GLenum -> GLuint -> Uploading -> IO ()-upload1D target binding tex (Uploading {..}) =- withBinding target binding tex $- glTexSubImage1D target- (safeFromIntegral toMipmapLevel)- (safeFromIntegral xOffset)- (safeFromIntegral uWidth)- (toConstantUF uploadFormat)- (toConstantST specificationType)- (intPtrToPtr $- fromIntegral bufferOffset)--upload2D :: GLenum -> GLenum -> GLuint -> Uploading -> IO ()-upload2D target binding tex (Uploading {..}) =- withBinding target binding tex $- glTexSubImage2D target- (safeFromIntegral toMipmapLevel)- (safeFromIntegral xOffset)- (safeFromIntegral yOffset)- (safeFromIntegral uWidth)- (safeFromIntegral uHeight)- (toConstantUF uploadFormat)- (toConstantST specificationType)- (intPtrToPtr $- fromIntegral bufferOffset)--upload3D :: GLenum -> GLenum -> GLuint -> Uploading -> IO ()-upload3D target binding tex (Uploading {..}) =- withBinding target binding tex $- glTexSubImage3D target- (safeFromIntegral toMipmapLevel)- (safeFromIntegral xOffset)- (safeFromIntegral yOffset)- (safeFromIntegral zOffset)- (safeFromIntegral uWidth)- (safeFromIntegral uHeight)- (safeFromIntegral uDepth)- (toConstantUF uploadFormat)- (toConstantST specificationType)- (intPtrToPtr $- fromIntegral bufferOffset)--uploadCube :: GLenum -> GLenum -> GLuint -> Uploading -> IO ()-uploadCube target binding tex (Uploading {..}) =- withBinding target binding tex $- glTexSubImage2D (toConstantCS cubeSide)- (safeFromIntegral toMipmapLevel)- (safeFromIntegral xOffset)- (safeFromIntegral yOffset)- (safeFromIntegral uWidth)- (safeFromIntegral uHeight)- (toConstantUF uploadFormat)- (toConstantST specificationType)- (intPtrToPtr $- fromIntegral bufferOffset)--isValidMipmap :: Int -> Int -> Bool-isValidMipmap w level- | w <= 0 = False- | level < 0 = False- | level > floor (logBase (2 :: Double) (fromIntegral w)) + 1 = False- | otherwise = True---- | Returns the maximal number of mipmap levels when given a side length.-maxMipmapLevels :: Int -> Int-maxMipmapLevels width- | width <= 0 = 0- | otherwise = floor (logBase (2 :: Double) (fromIntegral width)) + 1--class TexParam a where- tpEnum :: a -> GLenum- tpToConstant :: a -> GLenum- tpFromConstant :: GLenum -> a--data MinFilter =- MiNearest- | MiLinear- | MiNearestMipmapNearest- | MiLinearMipmapNearest- | MiNearestMipmapLinear- | MiLinearMipmapLinear- deriving ( Eq, Ord, Show, Read, Typeable )--data MagFilter =- MaNearest- | MaLinear- deriving ( Eq, Ord, Show, Read, Typeable )--data Wrapping =- Clamp- | Repeat- deriving ( Eq, Ord, Show, Read, Typeable )---- | Texture comparison modes.------ See @ glTexParameteri @ documentation in OpenGL.-data CompareMode- = NoCompare- | CompareRefToTexture- deriving ( Eq, Ord, Show, Read, Typeable )--toConstantC :: CompareMode -> GLenum-toConstantC NoCompare = gl_NONE-toConstantC CompareRefToTexture = gl_COMPARE_REF_TO_TEXTURE--toConstantW :: Wrapping -> GLenum-toConstantW Clamp = gl_CLAMP_TO_EDGE-toConstantW Repeat = gl_REPEAT--instance TexParam MinFilter where- tpEnum _ = gl_TEXTURE_MIN_FILTER- tpToConstant MiNearest = gl_NEAREST- tpToConstant MiLinear = gl_LINEAR- tpToConstant MiNearestMipmapNearest = gl_NEAREST_MIPMAP_NEAREST- tpToConstant MiLinearMipmapNearest = gl_LINEAR_MIPMAP_NEAREST- tpToConstant MiNearestMipmapLinear = gl_NEAREST_MIPMAP_LINEAR- tpToConstant MiLinearMipmapLinear = gl_LINEAR_MIPMAP_LINEAR- tpFromConstant c- | c == gl_NEAREST = MiNearest- | c == gl_LINEAR = MiLinear- | c == gl_NEAREST_MIPMAP_NEAREST = MiNearestMipmapNearest- | c == gl_LINEAR_MIPMAP_NEAREST = MiLinearMipmapNearest- | c == gl_NEAREST_MIPMAP_LINEAR = MiNearestMipmapLinear- | c == gl_LINEAR_MIPMAP_LINEAR = MiLinearMipmapLinear- | otherwise = error "MinFilter: unexpected filtering value."--instance TexParam MagFilter where- tpEnum _ = gl_TEXTURE_MAG_FILTER- tpToConstant MaNearest = gl_NEAREST- tpToConstant MaLinear = gl_LINEAR-- tpFromConstant c- | c == gl_NEAREST = MaNearest- | c == gl_LINEAR = MaLinear- | otherwise = error "MagFilter: unexpected filtering value."--setMinFilter :: MinFilter -> Texture -> IO ()-setMinFilter = setTexParam--setMagFilter :: MagFilter -> Texture -> IO ()-setMagFilter = setTexParam--getMinFilter :: Texture -> IO MinFilter-getMinFilter = getTexParam--getMagFilter :: Texture -> IO MagFilter-getMagFilter = getTexParam--setTexParam :: TexParam a => a -> Texture -> IO ()-setTexParam param tex = withBindingByTopology tex $ \target ->- glTexParameteri target (tpEnum param) (fromIntegral $ tpToConstant param)--getTexParam :: forall a. TexParam a => Texture -> IO a-getTexParam tex = withBindingByTopology tex $ \target ->- alloca $ \result_ptr -> do- glGetTexParameteriv target (tpEnum (undefined :: a)) result_ptr- tpFromConstant . fromIntegral <$> peek result_ptr--setWrapping :: Wrapping -> Texture -> IO ()-setWrapping wrapping tex = withBindingByTopology tex $ \target -> do- glTexParameteri target gl_TEXTURE_WRAP_S- (fromIntegral $ toConstantW wrapping)- glTexParameteri target gl_TEXTURE_WRAP_T- (fromIntegral $ toConstantW wrapping)- glTexParameteri target gl_TEXTURE_WRAP_R- (fromIntegral $ toConstantW wrapping)--setCompareMode :: CompareMode -> Texture -> IO ()-setCompareMode cmp_mode tex = withBindingByTopology tex $ \target ->- glTexParameteri target gl_TEXTURE_COMPARE_MODE- (fromIntegral $ toConstantC cmp_mode)--getCompareMode :: Texture -> IO CompareMode-getCompareMode tex = withBindingByTopology tex $ \target ->- alloca $ \result_ptr -> do- glGetTexParameteriv target gl_TEXTURE_COMPARE_MODE result_ptr- result <- fromIntegral <$> peek result_ptr- return $ if- | result == gl_NONE -> NoCompare- | result == gl_COMPARE_REF_TO_TEXTURE -> CompareRefToTexture- | otherwise -> error "getCompareMode: unexpected comparing mode."--getWrapping :: Texture -> IO Wrapping-getWrapping tex = withBindingByTopology tex $ \target ->- alloca $ \result_ptr -> do- glGetTexParameteriv target gl_TEXTURE_WRAP_S result_ptr- result <- fromIntegral <$> peek result_ptr- return $ if- | result == gl_CLAMP_TO_EDGE -> Clamp- | result == gl_REPEAT -> Repeat- | otherwise -> error "getWrapping: unexpected wrapping mode."--setAnisotropy :: Float -> Texture -> IO ()-setAnisotropy ani tex = withBindingByTopology tex $ \target ->- glTexParameterf target gl_TEXTURE_MAX_ANISOTROPY_EXT (CFloat ani)--getAnisotropy :: Texture -> IO Float-getAnisotropy tex = withBindingByTopology tex $ \target ->- alloca $ \ani_ptr -> do- glGetTexParameterfv target gl_TEXTURE_MAX_ANISOTROPY_EXT ani_ptr- unwrap <$> peek ani_ptr- where- unwrap (CFloat f) = f--{--nextMipmapLevel :: Int -> Int-nextMipmapLevel 0 = 0-nextMipmapLevel 1 = 1-nextMipmapLevel x = max 1 (x `div` 2)--nthMipmapLevel :: Int -> Int -> Int-nthMipmapLevel x 0 = x-nthMipmapLevel x n = nthMipmapLevel (nextMipmapLevel x) (n-1)--}-
− src/Caramia/Texture/Internal.hs
@@ -1,129 +0,0 @@-{-# LANGUAGE RecordWildCards, NoImplicitPrelude, LambdaCase #-}-{-# LANGUAGE DeriveDataTypeable #-}--module Caramia.Texture.Internal where--import Caramia.Prelude--import Caramia.Resource-import Caramia.Internal.OpenGLCApi-import qualified Caramia.Buffer.Internal as Buf-import Caramia.ImageFormats-import System.IO.Unsafe-import Control.Exception--data Texture = Texture- { resource :: !(Resource Texture_)- , ordIndex :: !Int- , viewSpecification :: !TextureSpecification }- deriving ( Typeable )--newtype Texture_ = Texture_ GLuint---- | The type of a texture unit.------ The minimum valid value is 0 and maximum is implementation dependant but--- in OpenGL at least 48 units will work at the same time in shaders.-type TextureUnit = Int--ordIndices :: IORef Int-ordIndices = unsafePerformIO $ newIORef 0-{-# NOINLINE ordIndices #-}--instance Eq Texture where- tex1 == tex2 = resource tex1 == resource tex2--instance Ord Texture where- tex1 `compare` tex2 = ordIndex tex1 `compare` ordIndex tex2---- | Specification on what the texture should be like.------ Use `textureSpecification` and set at least `topology` and `imageFormat`.--- Future minor versions remain compatible if you use `textureSpecification`--- instead of the constructor directly.-data TextureSpecification = TextureSpecification- { topology :: Topology- , imageFormat :: ImageFormat- , mipmapLevels :: Int -- ^ How many mipmap levels including the base- -- level? Must be at least 1.- --- -- Ignored and not evaluated for multisampling- -- textures.- }- deriving ( Eq, Typeable )---- | Specifies a topology of a texture.-data Topology =- Tex1D { width1D :: !Int }- | Tex2D { width2D :: !Int- , height2D :: !Int }- | Tex3D { width3D :: !Int- , height3D :: !Int- , depth3D :: !Int }- | Tex1DArray- { width1DArray :: !Int- , layers1D :: !Int }- | Tex2DArray- { width2DArray :: !Int- , height2DArray :: !Int- , layers2D :: !Int }- | Tex2DMultisample- { width2DMS :: !Int- , height2DMS :: !Int- , samples2DMS :: !Int- , fixedSampleLocations2DMS :: !Bool }- | Tex2DMultisampleArray- { width2DMSArray :: !Int- , height2DMSArray :: !Int- , layers2DMS :: !Int- , samples2DMSArray :: !Int- , fixedSampleLocations2DMSArray :: !Bool }- | TexCube { widthCube :: Int }- | TexBuffer { texBuffer :: !Buf.Buffer }- -- ^ Buffer textures, see- -- <https://www.opengl.org/wiki/Buffer_Texture>- deriving ( Eq, Typeable )--withBinding :: GLenum -> GLenum -> GLuint -> IO a -> IO a-withBinding tex tex_binding tex_name action = do- old <- gi tex_binding- finally- (glBindTexture tex tex_name *>- action)- (glBindTexture tex old)--getTopologyBindPoints :: Topology -> (GLenum, GLenum)-getTopologyBindPoints = \case- Tex1D {..} -> (gl_TEXTURE_1D, gl_TEXTURE_BINDING_1D)- Tex2D {..} -> (gl_TEXTURE_2D, gl_TEXTURE_BINDING_2D)- Tex3D {..} -> (gl_TEXTURE_3D, gl_TEXTURE_BINDING_3D)- Tex1DArray {..} -> (gl_TEXTURE_1D_ARRAY, gl_TEXTURE_BINDING_1D_ARRAY)- Tex2DArray {..} -> (gl_TEXTURE_2D_ARRAY, gl_TEXTURE_BINDING_2D_ARRAY)- Tex2DMultisample {..} ->- (gl_TEXTURE_2D_MULTISAMPLE- ,gl_TEXTURE_BINDING_2D_MULTISAMPLE)- Tex2DMultisampleArray {..} ->- (gl_TEXTURE_2D_MULTISAMPLE_ARRAY- ,gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY)- TexCube {..} ->- (gl_TEXTURE_CUBE_MAP- ,gl_TEXTURE_BINDING_CUBE_MAP)- TexBuffer {} ->- (gl_TEXTURE_BUFFER- ,gl_TEXTURE_BINDING_BUFFER)--withBindingByTopology :: Texture -> (GLenum -> IO a) -> IO a-withBindingByTopology tex action =- withResource (resource tex) $ \(Texture_ name) ->- let (bind_target, bind_query) = getTopologyBindPoints topo- in withBinding bind_target bind_query name $ action bind_target- where- topo = topology $ viewSpecification tex--withTextureBinding :: Texture -> TextureUnit -> IO a -> IO a-withTextureBinding tex unit action = do- old_active <- gi gl_ACTIVE_TEXTURE- glActiveTexture (gl_TEXTURE0 + fromIntegral unit)- finally (withBindingByTopology tex $ const action) $- glActiveTexture old_active-
− src/Caramia/VAO.hs
@@ -1,283 +0,0 @@--- | Vertex array objects, or VAOs as we abbreviate them.------ These are used to specify how data in a `Caramia.Buffer.Buffer` is made--- available in a shader program.------ <https://www.opengl.org/wiki/Vertex_Array_Object>-----module Caramia.VAO- ( -- * Creation- newVAO- , VAO()- -- * Sourcing- , sourceVertexData- , Sourcing(..)- , defaultSourcing- , defaultSourcingType- -- * Sourceable types- , SourceableType(..)- , SourceType(..)- , sourceTypeSize )- where--import Caramia.Prelude--import Caramia.VAO.Internal-import Caramia.Resource-import qualified Caramia.Buffer.Internal as Buf-import Caramia.Internal.OpenGLCApi-import Control.Exception---- | Creates a vertex array object.------ Initially, the vertex array object makes no data available to a shader--- program.-newVAO :: IO VAO-newVAO = mask_ $ do- res <- newResource create- (\(VAO_ vao) -> mglDeleteVertexArray vao)- (return ())- ref <- newIORef []- return VAO { resource = res- , boundBuffers = ref }- where- create = VAO_ <$> mglGenVertexArray---- | Types allowed for sourcing.------ These are mostly Haskell types except for `SHalfFloat` which has no Haskell--- equivalent.-data SourceType =- SWord8- | SWord16- | SWord32- | SInt8- | SInt16- | SInt32- | SHalfFloat -- ^ 16-bit floating point value.- | SFloat- | SDouble- deriving ( Eq, Ord, Show, Read )---- | This returns the size of a `SourceType`, in bytes.-sourceTypeSize :: SourceType -> Int-sourceTypeSize SWord8 = 1-sourceTypeSize SWord16 = 2-sourceTypeSize SWord32 = 4-sourceTypeSize SInt8 = 1-sourceTypeSize SInt16 = 2-sourceTypeSize SInt32 = 4-sourceTypeSize SHalfFloat = 2-sourceTypeSize SFloat = 4-sourceTypeSize SDouble = 8--isIntegerType :: SourceType -> Bool-isIntegerType SWord8 = True-isIntegerType SWord16 = True-isIntegerType SWord32 = True-isIntegerType SInt8 = True-isIntegerType SInt16 = True-isIntegerType SInt32 = True-isIntegerType SHalfFloat = False-isIntegerType SFloat = False-isIntegerType SDouble = False--toConstant :: SourceType -> GLenum-toConstant SWord8 = gl_UNSIGNED_BYTE-toConstant SWord16 = gl_UNSIGNED_SHORT-toConstant SWord32 = gl_UNSIGNED_INT-toConstant SInt8 = gl_BYTE-toConstant SInt16 = gl_SHORT-toConstant SInt32 = gl_INT-toConstant SHalfFloat = gl_HALF_FLOAT-toConstant SFloat = gl_FLOAT-toConstant SDouble = gl_DOUBLE---- | Class of types that are valid for sourcing data.------ This is a convenience class to turn Haskell types to `SourceType`.-class SourceableType a where- -- ^ Reify the type to a compatible `SourceType`.- reifyType :: a -> SourceType--instance SourceableType Word8 where- reifyType _ = SWord8--instance SourceableType Word16 where- reifyType _ = SWord16--instance SourceableType Word32 where- reifyType _ = SWord32--instance SourceableType Int8 where- reifyType _ = SInt8--instance SourceableType Int16 where- reifyType _ = SInt16--instance SourceableType Int32 where- reifyType _ = SInt32--instance SourceableType Float where- reifyType _ = SFloat--instance SourceableType Double where- reifyType _ = SDouble---- | Specifies how to source data.------ For forward compatibility, you might want to use `defaultSourcing` or--- `defaultSourcingType` and then set the fields that are of interest to you.-data Sourcing = Sourcing- { offset :: Int- -- ^ Offset, in bytes, at which point from buffer to start sourcing.- , attributeIndex :: Int- -- ^ Which attribute index in a shader program to source this data. See- -- `Caramia.Shader` on attributes.- , components :: Int- -- ^ Number of components in one piece of data (that is, per vertex).- -- This must be an integer between 1 and 4.- , stride :: Int- -- ^ How many bytes there are between pieces of data. Because of OpenGL- -- inconsistencies behind the scenes, 0 means the data is tightly packed,- -- that is, @ stride = components * sizeOf sourceType @- , normalize :: Bool- -- ^ This only applies when an integer type is used in `sourceType` and- -- `integerMapping` is false. It determines whether integer values should- -- be normalized.- --- -- Normalization maps the integer value to [-1..1] or [0..1] range. For- -- example, if you use `Word16` as the type parameter, then 0 is mapped to- -- 0.0 and 65535 is mapped to 1.0. Signed types (for example, `Int16`) are- -- mapped to [-1..1] instead so for `Int16` 32767 is mapped to 1 and -32768- -- is mapped to -1.- --- -- This value is ignored and unevaluated for types that are one of the- -- floating point types.- , integerMapping :: Bool- -- ^ Don't convert integers to floats in any way. Normally integers are- -- converted to floating point. If this is set, then `normalize` is ignored- -- and not evalutated.- , instancingDivisor :: Int- -- ^ When doing instanced rendering (`Caramia.Render.numInstances` > 1),- -- this value tells how many instances must be rendered before the- -- attribute from this source advances.- --- -- If zero (the default) then the attribute is advanced after every vertex.- --- -- You can look up @ glVertexAttribDivisor @ from OpenGL to find more- -- information about this.- , sourceType :: SourceType- -- ^ The data type of values in the buffer. It tells the type of a single- -- component.- }---- | The default sourcing.------ Offset and stride are set to 0.------ At the very least you must set `components` and `attributeIndex`.------ You must also set `normalize`, `integerMapping` and `sourceType` in a--- consistent way. See `Sourcing`.-defaultSourcing :: Sourcing-defaultSourcing = Sourcing- { offset = 0- , components =- error "defaultSourcing: number of components is not set."- , stride = 0- , instancingDivisor = 0- , attributeIndex =- error "defaultSourcing: attribute index is not set."- , integerMapping =- error "defaultSourcing: whether to do integer mapping is not set."- , normalize =- error "defaultSourcing: normalize is not set for an integer type."- , sourceType =- error "defaultSourcing: source type is not set." }---- | Same as `defaultSourcing` but sets `sourceType` according to a Haskell--- type.-defaultSourcingType :: SourceableType a- => a -- ^ Used to pass the type; not evaluated.- -> Sourcing-defaultSourcingType x =- defaultSourcing { sourceType = reifyType x }---- | Specifies that some data from a buffer should be sourced for each vertex.------ The vertex array object retains a reference to the buffer which means it--- will not be garbage collected as long as the VAO remains active.------ Consequences are undefined if your `Sourcing` does not make sense. There is--- some error checking but it can only detect obviously invalid values in the--- sourcing.-sourceVertexData :: Buf.Buffer -- ^ From which buffer to source the data.- -> Sourcing -- ^ Specifies how the sourcing is done.- -> VAO- -> IO ()-sourceVertexData buffer sourcing vao = mask_ $- withResource (resource vao) $ \(VAO_ name) ->- withResource (Buf.resource buffer) $ \(Buf.Buffer_ bufname) -> do- errorChecking-- if isIntegerType stype && integerMapping sourcing- then doIntegerMapping name bufname- else doOrdinaryMapping name bufname-- mglVertexArrayVertexAttribDivisor- name- (safeFromIntegral $ attributeIndex sourcing)- (safeFromIntegral $ instancingDivisor sourcing)-- atomicModifyIORef' (boundBuffers vao) $ \old ->- ( addIfNotUnique buffer old, () )- where- addIfNotUnique new old =- maybe (new:old)- (const old)- (find (new ==) old)-- stype = sourceType sourcing- ncomponents = components sourcing-- doIntegerMapping name bufname =- mglVertexArrayVertexAttribIOffsetAndEnable- name- bufname- (safeFromIntegral $ attributeIndex sourcing)- (safeFromIntegral ncomponents)- (toConstant stype)- (safeFromIntegral $ stride sourcing)- (safeFromIntegral $ offset sourcing)-- doOrdinaryMapping name bufname =- mglVertexArrayVertexAttribOffsetAndEnable- name- bufname- (safeFromIntegral $ attributeIndex sourcing)- (safeFromIntegral ncomponents)- (toConstant stype)- (fromIntegral $ if isIntegerType stype && normalize sourcing- then gl_TRUE- else gl_FALSE)- (safeFromIntegral $ stride sourcing)- (safeFromIntegral $ offset sourcing)-- errorChecking = do- when (isIntegerType stype) $- unless (integerMapping sourcing) $- let x = normalize sourcing- in x `seq` return ()-- attributeIndex sourcing `seq` return ()- when (stride sourcing < 0) $- error "sourceVertexData: stride is negative."- when (offset sourcing < 0) $- error "sourceVertexData: offset is negative."- when (ncomponents < 1 ||- ncomponents > 4) $ error $- "sourceVertexData: number of components must be between " <>- "1 and 4. I was given " <> show ncomponents-
− src/Caramia/VAO/Internal.hs
@@ -1,24 +0,0 @@-{-# LANGUAGE NoImplicitPrelude, ViewPatterns, DeriveDataTypeable #-}--module Caramia.VAO.Internal- ( VAO(..)- , VAO_(..) )- where--import Caramia.Prelude--import Caramia.Resource-import Caramia.Internal.OpenGLCApi-import qualified Caramia.Buffer.Internal as Buf---- | The vertex array object data type.-data VAO = VAO- { resource :: !(Resource VAO_)- , boundBuffers :: !(IORef [Buf.Buffer]) }- deriving ( Typeable )--instance Eq VAO where- (resource -> res1) == (resource -> res2) = res1 == res2--newtype VAO_ = VAO_ GLuint-
+ src/Graphics/Caramia.hs view
@@ -0,0 +1,33 @@+-- | This module re-exports most Caramia modules.++module Graphics.Caramia+ ( module Graphics.Caramia.Resource+ , module Graphics.Caramia.Context+ , module Graphics.Caramia.Buffer+ , module Graphics.Caramia.VAO+ , module Graphics.Caramia.Shader+ , module Graphics.Caramia.Render+ , module Graphics.Caramia.ImageFormats+ , module Graphics.Caramia.Texture+ , module Graphics.Caramia.Memory+ , module Graphics.Caramia.Framebuffer+ , module Graphics.Caramia.Color+ , module Graphics.Caramia.Blend+ , module Graphics.Caramia.Sync+ )+ where++import Graphics.Caramia.Resource+import Graphics.Caramia.Context+import Graphics.Caramia.Buffer+import Graphics.Caramia.VAO+import Graphics.Caramia.Shader+import Graphics.Caramia.Render+import Graphics.Caramia.ImageFormats+import Graphics.Caramia.Texture+import Graphics.Caramia.Memory+import Graphics.Caramia.Framebuffer+import Graphics.Caramia.Color+import Graphics.Caramia.Blend+import Graphics.Caramia.Sync+
+ src/Graphics/Caramia/Blend.hs view
@@ -0,0 +1,42 @@+-- | Blending stuff.+--+-- <https://www.opengl.org/wiki/Blending>+--++module Graphics.Caramia.Blend+ (+ -- * Data types+ BlendSpec(..)+ , BlendEquation(..)+ , BlendFunc(..)+ -- * Pre-defined blending specs+ , preMultipliedAlpha+ , nopBlend )+ where++--import Graphics.Caramia.Prelude+import Graphics.Caramia.Blend.Internal+import Graphics.Caramia.Color++preMultipliedAlpha :: BlendSpec+preMultipliedAlpha = BlendSpec+ { srcColorFunc = BFOne+ , srcAlphaFunc = BFOne+ , dstColorFunc = BFOneMinusSrcAlpha+ , dstAlphaFunc = BFOneMinusSrcAlpha+ , colorEquation = BEAdd+ , alphaEquation = BEAdd+ , blendColor = rgba 1 1 1 1 }++-- | Blending that doesn't do anything special; just copies the source pixel to+-- destination.+nopBlend :: BlendSpec+nopBlend = BlendSpec+ { srcColorFunc = BFOne+ , srcAlphaFunc = BFOne+ , dstColorFunc = BFZero+ , dstAlphaFunc = BFZero+ , colorEquation = BEAdd+ , alphaEquation = BEAdd+ , blendColor = rgba 1 1 1 1 }+
+ src/Graphics/Caramia/Blend/Internal.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE RecordWildCards, NoImplicitPrelude, DeriveDataTypeable #-}++module Graphics.Caramia.Blend.Internal where++import Graphics.Caramia.Prelude++import Graphics.Caramia.Internal.OpenGLCApi+import Graphics.Caramia.Color+import Control.Exception+import Foreign+import Foreign.C.Types++-- | Describes which equation to use in blending.+--+-- See `glBlendEquation` in OpenGL documentation.+data BlendEquation =+ BEAdd+ | BESubtract+ | BEReverseSubtract+ | BEMin+ | BEMax+ deriving ( Eq, Ord, Show, Read, Typeable )++-- | Describes the arithmetic to use in blending.+--+-- See `glBlendFunc` in OpenGL documentation.+data BlendFunc =+ BFZero+ | BFOne+ | BFSrcColor+ | BFOneMinusSrcColor+ | BFDstColor+ | BFOneMinusDstColor+ | BFSrcAlpha+ | BFOneMinusSrcAlpha+ | BFDstAlpha+ | BFOneMinusDstAlpha+ | BFConstantColor+ | BFOneMinusConstantColor+ | BFConstantAlpha+ | BFOneMinusConstantAlpha+ | BFSrcAlphaSaturate+ deriving ( Eq, Ord, Show, Read, Typeable )++toConstantBE :: BlendEquation -> GLenum+toConstantBE BEAdd = gl_FUNC_ADD+toConstantBE BESubtract = gl_FUNC_SUBTRACT+toConstantBE BEReverseSubtract = gl_FUNC_REVERSE_SUBTRACT+toConstantBE BEMin = gl_MIN+toConstantBE BEMax = gl_MAX++toConstantBF :: BlendFunc -> GLenum+toConstantBF BFZero = gl_ZERO+toConstantBF BFOne = gl_ONE+toConstantBF BFSrcColor = gl_SRC_COLOR+toConstantBF BFOneMinusSrcColor = gl_ONE_MINUS_SRC_COLOR+toConstantBF BFDstColor = gl_DST_COLOR+toConstantBF BFOneMinusDstColor = gl_ONE_MINUS_DST_COLOR+toConstantBF BFSrcAlpha = gl_SRC_ALPHA+toConstantBF BFOneMinusSrcAlpha = gl_ONE_MINUS_SRC_ALPHA+toConstantBF BFDstAlpha = gl_DST_ALPHA+toConstantBF BFOneMinusDstAlpha = gl_ONE_MINUS_DST_ALPHA+toConstantBF BFConstantColor = gl_CONSTANT_COLOR+toConstantBF BFOneMinusConstantColor = gl_ONE_MINUS_CONSTANT_COLOR+toConstantBF BFConstantAlpha = gl_CONSTANT_ALPHA+toConstantBF BFOneMinusConstantAlpha = gl_ONE_MINUS_CONSTANT_ALPHA+toConstantBF BFSrcAlphaSaturate = gl_SRC_ALPHA_SATURATE++-- | Captures the blending parameters.+data BlendSpec = BlendSpec+ { alphaEquation :: !BlendEquation+ , colorEquation :: !BlendEquation+ , srcColorFunc :: !BlendFunc+ , srcAlphaFunc :: !BlendFunc+ , dstColorFunc :: !BlendFunc+ , dstAlphaFunc :: !BlendFunc+ , blendColor :: !Color }+ deriving ( Eq, Ord, Show, Read, Typeable )++setBlendings :: BlendSpec -> IO ()+setBlendings (BlendSpec{..}) = do+ glBlendFuncSeparate (toConstantBF srcColorFunc)+ (toConstantBF dstColorFunc)+ (toConstantBF srcAlphaFunc)+ (toConstantBF dstAlphaFunc)+ glBlendEquationSeparate (toConstantBE colorEquation)+ (toConstantBE alphaEquation)+ glBlendColor (CFloat $ viewRed blendColor)+ (CFloat $ viewGreen blendColor)+ (CFloat $ viewBlue blendColor)+ (CFloat $ viewAlpha blendColor)++withBlendings :: BlendSpec+ -> IO a+ -> IO a+withBlendings spec@(BlendSpec {..}) action = do+ old_be_color <- gi gl_BLEND_EQUATION_RGB+ old_be_alpha <- gi gl_BLEND_EQUATION_ALPHA+ old_src_color <- gi gl_BLEND_SRC_RGB+ old_src_alpha <- gi gl_BLEND_SRC_ALPHA+ old_dst_color <- gi gl_BLEND_DST_RGB+ old_dst_alpha <- gi gl_BLEND_DST_ALPHA+ allocaArray 4 $ \color_ptr -> do+ glGetFloatv gl_BLEND_COLOR color_ptr+ r <- peekElemOff color_ptr 0+ g <- peekElemOff color_ptr 1+ b <- peekElemOff color_ptr 2+ a <- peekElemOff color_ptr 3+ finally (setBlendings spec >> action) $ do+ glBlendColor r g b a+ glBlendFuncSeparate old_src_color+ old_dst_color+ old_src_alpha+ old_dst_alpha+ glBlendEquationSeparate old_be_color+ old_be_alpha++
+ src/Graphics/Caramia/Buffer.hs view
@@ -0,0 +1,411 @@+-- | Buffer objects.+--+-- These are chunks of memory (typically) kept on the GPU.+--+-- <https://www.opengl.org/wiki/Buffer_Object>+--++-- TODO: Add glBufferStorage based implementation.+-- OpenGLRaw (1.4.0.0) doesn't have this yet.++{-# LANGUAGE DeriveDataTypeable, NoImplicitPrelude #-}++module Graphics.Caramia.Buffer+ ( -- * Creation+ newBuffer+ , Buffer()+ , AccessFrequency(..)+ , AccessNature(..)+ , AccessFlags(..)+ , MapFlag(..)+ , BufferCreation(..)+ , defaultBufferCreation+ -- * Invalidation+ , invalidateBuffer+ -- * Manipulation+ , map+ , map2+ , unmap+ , copy+ , withMapping+ , withMapping2+ , uploadVector+ -- * Views+ , viewSize+ , viewAllowedMappings+ -- * Exceptions+ , BufferCorruption(..)+ )+ where++import Graphics.Caramia.Prelude hiding ( map )+import Graphics.Caramia.Buffer.Internal++import Graphics.Caramia.Resource+import Graphics.Caramia.Internal.OpenGLCApi++import qualified Data.Vector.Storable as V+import qualified Data.Set as S++import Data.Bits+import Foreign+import Control.Exception++-- | The frequency of access to a buffer.+--+-- These correspond to the OpenGL access frequency hints. You can look for them+-- in the OpenGL specification or check this link:+--+-- <https://www.opengl.org/wiki/GLAPI/glBufferData>+data AccessFrequency =+ Stream+ | Static+ | Dynamic+ deriving ( Eq, Ord, Show, Read )++-- | The nature of access to a buffer.+--+-- These correspond to the OpenGL access nature hints. You can look for them+-- in the OpenGL specification or check this link:+--+-- <https://www.opengl.org/wiki/GLAPI/glBufferData>+data AccessNature =+ Draw+ | Read+ | Copy+ deriving ( Eq, Ord, Show, Read )++canMapWith :: AccessFlags -> AccessFlags -> Bool+canMapWith ReadWriteAccess _ = True+canMapWith WriteAccess WriteAccess = True+canMapWith WriteAccess _ = False+canMapWith ReadAccess ReadAccess = True+canMapWith ReadAccess _ = False+canMapWith NoAccess NoAccess = True+canMapWith NoAccess _ = False++toConstant :: AccessFrequency -> AccessNature -> GLuint+toConstant Stream Draw = gl_STREAM_DRAW+toConstant Stream Read = gl_STREAM_READ+toConstant Stream Copy = gl_STREAM_COPY+toConstant Static Draw = gl_STATIC_DRAW+toConstant Static Read = gl_STATIC_READ+toConstant Static Copy = gl_STATIC_COPY+toConstant Dynamic Draw = gl_DYNAMIC_DRAW+toConstant Dynamic Read = gl_DYNAMIC_READ+toConstant Dynamic Copy = gl_DYNAMIC_COPY++toConstantF :: AccessFlags -> GLbitfield+toConstantF ReadAccess = gl_MAP_READ_BIT+toConstantF WriteAccess = gl_MAP_WRITE_BIT+toConstantF ReadWriteAccess = gl_MAP_READ_BIT .|. gl_MAP_WRITE_BIT+toConstantF NoAccess = 0++toConstantMF :: S.Set MapFlag -> GLbitfield+toConstantMF ss+ | S.null ss = 0+ | otherwise =+ if UnSynchronized `S.member` ss+ then gl_MAP_UNSYNCHRONIZED_BIT+ else 0++-- | This data describes how a buffer should behave and what operations can be+-- done with it.+--+-- Accurate description can improve performance.+--+-- For forwards compatibility, it is recommended to use+-- `defaultBufferCreation` and then set the fields you want to change.+data BufferCreation = BufferCreation+ { accessHints :: !(AccessFrequency, AccessNature) -- ^ Hints on how the+ -- buffer will be used.++ , size :: !Int -- ^ How large the buffer should be, in+ -- bytes.+ , initialData ::+ !(Maybe (Ptr ())) -- ^ The initial data to be copied to+ -- the buffer. Can be `Nothing` in+ -- which case the initial contents are+ -- undefined.++ , accessFlags :: !AccessFlags -- ^ What kind of mapping access is+ -- allowed. See `map`.+ }++-- | The default buffer creation flags.+--+-- The default attempts to give you the most general (and possibly slowest)+-- buffer. Both read and write access are allowed.+--+-- Default size is 0 which will make `newBuffer` fail if you don't set it.+defaultBufferCreation :: BufferCreation+defaultBufferCreation = BufferCreation {+ accessHints = (Dynamic, Draw)+ , size = 0+ , initialData = Nothing+ , accessFlags = ReadWriteAccess }++-- | Creates a new buffer according to `BufferCreation` specification.+newBuffer :: BufferCreation+ -> IO Buffer+newBuffer creation+ | size creation <= 0 =+ error "newBuffer: size must be positive."+ | otherwise = mask_ $ do+ resource <-+ newResource createBuffer+ (\(Buffer_ bufname) -> mglDeleteBuffer bufname)+ (return ())+ initial_status <- newIORef BufferStatus { mapped = False }+ oi <- atomicModifyIORef' bufferOrdIndex $ \old -> ( old+1, old )+ return Buffer { resource = resource+ , status = initial_status+ , viewAllowedMappings = accessFlags creation+ , viewSize = size creation+ , ordIndex = oi }+ where+ initial_data = fromMaybe nullPtr (assertNotNull <$> initialData creation)+ safe_size = safeFromIntegral $ size creation+ (usage, access) = accessHints creation++ createBuffer = do+ buf <- mglGenBuffer+ mglNamedBufferData buf+ safe_size+ (castPtr initial_data)+ (toConstant usage access)+ return (Buffer_ buf)++ assertNotNull ptr+ | ptr == nullPtr = error "newBuffer: initial data is a null pointer."+ | otherwise = ptr++-- | Same as `map` but allows more control over mapping.+--+-- @ map = map2 [] @+map2 :: S.Set MapFlag+ -> Int+ -> Int+ -> AccessFlags+ -> Buffer+ -> IO (Ptr ())+map2 map_flags offset num_bytes access_flags buffer+ -- a lot of this implementation is just error checking...++ -- check that offset/num_bytes makes sense+ | offset < 0 || offset >= viewSize buffer ||+ num_bytes <= 0 ||+ offset + num_bytes > viewSize buffer =+ error $ "map: requested mapping has invalid offset " <>+ "and/or range. " <>+ "Buffer size is " <> show (viewSize buffer) <> ", " <>+ "requested mapping was [" <> show offset <> ".." <>+ show (offset + num_bytes - 1) <> "]."+ | otherwise =+ withResource (resource buffer) $ \(Buffer_ buf) -> mask_ $ do+ bufstatus <- readIORef (status buffer)+ -- make sure buffer has not been alreayd mapped+ when (mapped bufstatus) $+ error "map: buffer is already mapped."+ -- can we really map with these access flags+ unless (canMapWith (viewAllowedMappings buffer) access_flags) $+ error $ "map: attempted to map buffer with " <> show access_flags+ <> ", allowed mappings are: " <>+ show (viewAllowedMappings buffer)++ ptr <- mglMapNamedBufferRange+ buf+ (safeFromIntegral offset)+ (safeFromIntegral num_bytes)+ (toConstantF access_flags .|. toConstantMF map_flags)++ -- what if it just mysteriously fails? I think we caught most, if not+ -- all user errors so any other error should be some rare condition+ -- depending on external factors. I hope.+ when (ptr == nullPtr) $+ -- I am so sorry for any user who sees this error message.+ error $ "map: for some reason, mapping a buffer failed. " <>+ "You might want to check OpenGL debug log."++ atomicModifyIORef' (status buffer) $ \old ->+ ( old { mapped = True }, () )++ return ptr++-- | Maps (part) of a buffer to system memory space.+--+-- The mapping is valid until the buffer is garbage collected (in which case+-- the mapping is automatically unmapped) or when `unmap` is called on the+-- buffer.+--+-- You can not have two mappings going on at the same time.+map :: Int -- ^ Offset, in bytes, from start of the buffer from where+ -- to map.+ -> Int -- ^ How many bytes to map.+ -> AccessFlags -- ^ What access is allowed in the mapping.+ -> Buffer+ -> IO (Ptr ())+map = map2 S.empty++-- | Exception that is thrown from `unmap` when buffer corruption is detected.+--+-- Corruption can happen due to external factors and is system-specific.+data BufferCorruption = BufferCorruption Buffer+ deriving ( Eq, Typeable )++instance Show BufferCorruption where+ show _ = "BufferCorruption <#Buffer>"++instance Exception BufferCorruption++-- | Unmaps a buffer.+--+-- Does nothing if the buffer was not mapped.+--+-- It is possible that the mapping become corrupt during the time it was+-- mapped. If there was corruption, `BufferCorruption` is thrown in this call.+--+-- Corruption means that the contents of the buffer are now undefined.+unmap :: Buffer -> IO ()+unmap buffer = do+ bufstatus <- readIORef (status buffer)+ when (mapped bufstatus) $+ withResource (resource buffer) $ \(Buffer_ buf) -> mask_ $ do+ result <- mglUnmapNamedBuffer buf+ when (fromIntegral result == gl_FALSE) $+ throwIO $ BufferCorruption buffer+ atomicModifyIORef' (status buffer) $ \old ->+ ( old { mapped = False }, () )++-- | Same as `withMapping` but with map flags.+--+-- See `map2`.+withMapping2 :: S.Set MapFlag+ -> Int+ -> Int+ -> AccessFlags+ -> Buffer+ -> (Ptr () -> IO a)+ -> IO a+withMapping2 map_flags offset num_bytes access_flags buffer action =+ mask $ \restore -> do+ ptr <- map2 map_flags offset num_bytes access_flags buffer+ did_it_work <- try $ restore $ action ptr+ did_unmapping_work <- try $ unmap buffer+ case did_it_work of+ Left exc -> throwIO (exc :: SomeException)+ Right result ->+ case did_unmapping_work of+ Left no -> throwIO (no :: BufferCorruption)+ Right () -> return result++-- | A convenience function over map/unmap that automatically unmaps the buffer+-- when done (even in the case of exceptions).+--+-- The arguments to this function are the same as for `map`, except for extra+-- action argument.+--+-- This calls `unmap` which means it can throw `BufferCorruption` when the+-- action is done.+--+-- There is a rare case that can happen if your action throws an exception AND+-- the unmapping throws an exception. Which exception is propagated upwards?+-- If this happens, this call silences `BufferCorruption` exception and+-- re-throws the user exception. This unfortunately means there is no way to+-- know if the buffer was corrupted if you threw an exception inside the+-- action.+withMapping :: Int+ -> Int+ -> AccessFlags+ -> Buffer+ -> (Ptr () -> IO a) -- ^ The pointer is valid during this action.+ -> IO a+withMapping = withMapping2 S.empty++-- | A convenience function to upload a storable vector to a buffer.+--+-- The buffer must be in an unmapped state and must be write-mappable.+uploadVector :: V.Storable a+ => V.Vector a -- ^ The vector from which to pull data.+ -> Int -- ^ Offset, in bytes, to which point in the+ -- buffer to copy the data.+ -> Buffer+ -> IO ()+uploadVector vec offset buffer =+ V.unsafeWith vec $ \src_ptr ->+ withMapping offset byte_size WriteAccess buffer $ \tgt_ptr ->+ copyBytes tgt_ptr (castPtr src_ptr) byte_size+ where+ byte_size = V.length vec * sizeOf (undefined `asTypeOf` (vec V.! 0))++-- | Copies bytes from one buffer to another.+--+-- The buffers must not be mapped; however this call can bypass the access+-- flags set in `newBuffer`. That is, you can copy data even to a buffer that+-- was set as not writable or copy from a buffer that was set as not readable.+--+-- This is faster than mapping both buffers and then doing a memcpy() style+-- copying in system memory because this call does not require a round-trip to+-- the driver.+--+-- You can use the same buffer for both destination and source but the copying+-- area may not overlap.+copy :: Buffer -- ^ Destination buffer.+ -> Int -- ^ Offset in destination buffer.+ -> Buffer -- ^ Source buffer.+ -> Int -- ^ Offset in source buffer.+ -> Int -- ^ How many bytes to copy.+ -> IO ()+copy dst_buffer dst_offset src_buffer src_offset num_bytes+ | dst_offset < 0 ||+ src_offset < 0 ||+ dst_offset + num_bytes > viewSize dst_buffer ||+ src_offset + num_bytes > viewSize src_buffer ||+ num_bytes < 0 =+ error "copy: invalid offsets/byte sizes to make a buffer copy."+ | overlaps = error "copy: copying area overlaps."+ | otherwise =+ withResource (resource dst_buffer) $ \(Buffer_ dst) ->+ withResource (resource src_buffer) $ \(Buffer_ src) -> do+ dst_status <- readIORef (status dst_buffer)+ when (mapped dst_status) $+ error "copy: destination buffer is mapped."+ src_status <- readIORef (status src_buffer)+ when (mapped src_status) $+ error "copy: source buffer is mapped."++ when (num_bytes > 0) $+ mglNamedCopyBufferSubData+ src+ dst+ (safeFromIntegral src_offset)+ (safeFromIntegral dst_offset)+ (safeFromIntegral num_bytes)++ where+ overlaps+ | dst_buffer /= src_buffer = False+ | dst_offset + num_bytes - 1 < src_offset ||+ dst_offset > src_offset + num_bytes - 1 = False+ | otherwise = True++-- | Invalidates the contents of a buffer.+--+-- This is you saying: \"I don't care what's in this buffer anymore. You can do+-- whatever you want with it.\".+--+-- The data may be gone or it may not be gone. Use this as a hint to the+-- implementation that you will not use the _current_ contents of the buffer+-- anymore.+--+-- This requires the OpenGL extension \"GL_ARB_invalidate_subdata\" but if this+-- extension is not present, then this simply does nothing.+--+-- See <https://www.opengl.org/wiki/Buffer_Object#Invalidation>.+invalidateBuffer :: Buffer -> IO ()+invalidateBuffer buf = do+ has_it <- has_GL_ARB_invalidate_subdata+ when has_it $+ withResource (resource buf) $ \(Buffer_ name) ->+ glInvalidateBufferData name+
+ src/Graphics/Caramia/Buffer/Internal.hs view
@@ -0,0 +1,51 @@+{-# LANGUAGE NoImplicitPrelude, ViewPatterns, DeriveDataTypeable #-}++module Graphics.Caramia.Buffer.Internal where++import Graphics.Caramia.Prelude++import Graphics.Caramia.Resource+import Graphics.Caramia.Internal.OpenGLCApi+import System.IO.Unsafe++-- | Buffer data type.+data Buffer = Buffer+ { resource :: !(Resource Buffer_)+ , status :: !(IORef BufferStatus)+ , viewAllowedMappings :: !AccessFlags -- ^ Returns the allowed mappings.+ , viewSize :: !Int -- ^ Returns the size of the buffer, in bytes.+ , ordIndex :: !Int+ }++bufferOrdIndex :: IORef Int+bufferOrdIndex = unsafePerformIO $ newIORef 0+{-# NOINLINE bufferOrdIndex #-}++instance Ord Buffer where+ (ordIndex -> o1) `compare` (ordIndex -> o2) = o1 `compare` o2++data BufferStatus = BufferStatus+ { mapped :: !Bool }++instance Eq Buffer where+ (resource -> res1) == (resource -> res2) = res1 == res2++newtype Buffer_ = Buffer_ GLuint++-- | Describes a style of mapping.+data AccessFlags =+ ReadAccess -- ^ The mapping can be read from.+ | WriteAccess -- ^ The mapping can be written to.+ | ReadWriteAccess -- ^ Both reading and writing can be done.+ | NoAccess -- ^ No access; you cannot map the buffer at all after+ -- creation.+ deriving ( Eq, Ord, Show, Read )++-- | Additional mapping flags.+data MapFlag =+ UnSynchronized -- ^ Map the buffer without synchronization.+ -- You will have to use synchronization primitives+ -- to make sure you and OpenGL won't be using+ -- the buffer at the same time.+ deriving ( Eq, Ord, Show, Read, Typeable )+
+ src/Graphics/Caramia/Color.hs view
@@ -0,0 +1,100 @@+-- | Color handling.+--++{-# LANGUAGE DeriveDataTypeable, NoImplicitPrelude #-}++module Graphics.Caramia.Color+ (+ -- * Types+ Color()+ -- * Constructing colors+ , rgba+ -- * Lenses+ , rgbaL+ , redL+ , greenL+ , blueL+ , alphaL+ -- * Views+ , viewRgba+ , viewRed+ , viewGreen+ , viewBlue+ , viewAlpha )+ where++import Graphics.Caramia.Prelude+import Graphics.Caramia.Internal.Lens+import Foreign.Storable+import Foreign.Ptr++-- | The color data type.+--+-- This data type says nothing about the color space these values are in. The+-- color space depends on the usage; for example, a framebuffer with sRGB+-- textures attached uses sRGB color space in these color values.+data Color = Color+ { viewRed :: !Float+ , viewGreen :: !Float+ , viewBlue :: !Float+ , viewAlpha :: !Float+ }+ deriving ( Eq, Ord, Show, Read, Typeable )++-- | Construct a color from rgba values.+rgba :: Float -> Float -> Float -> Float -> Color+rgba = Color+{-# INLINE rgba #-}++-- | View rgba in a tuple.+viewRgba :: Color -> (Float, Float, Float, Float)+viewRgba (Color r g b a) = (r, g, b, a)+{-# INLINE viewRgba #-}++-- | Lens to all components.+rgbaL :: Lens' Color (Float, Float, Float, Float)+rgbaL = lens viewRgba (\old (r, g, b, a) ->+ old { viewRed = r+ , viewGreen = g+ , viewBlue = b+ , viewAlpha = a })++-- | Lens to red component.+redL :: Lens' Color Float+redL = lens viewRed (\old new -> old { viewRed = new })++-- | Lens to green component.+greenL :: Lens' Color Float+greenL = lens viewGreen (\old new -> old { viewGreen = new })++-- | Lens to blue component.+blueL :: Lens' Color Float+blueL = lens viewBlue (\old new -> old { viewBlue = new })++-- | Lens to alpha component.+alphaL :: Lens' Color Float+alphaL = lens viewAlpha (\old new -> old { viewAlpha = new })++instance Storable Color where+ sizeOf _ = sizeOf (undefined :: Float) * 4+ alignment _ = alignment (undefined :: Float) * 4+ peek ptr = do+ r <- peekElemOff cptr 0 :: IO Float+ g <- peekElemOff cptr 1 :: IO Float+ b <- peekElemOff cptr 2 :: IO Float+ a <- peekElemOff cptr 3 :: IO Float+ return $ Color r g b a+ where+ cptr = castPtr ptr :: Ptr Float+ {-# INLINE peek #-}++ poke ptr (Color r g b a) = do+ pokeElemOff cptr 0 r+ pokeElemOff cptr 1 g+ pokeElemOff cptr 2 b+ pokeElemOff cptr 3 a+ where+ cptr = castPtr ptr :: Ptr Float+ {-# INLINE poke #-}++
+ src/Graphics/Caramia/Context.hs view
@@ -0,0 +1,205 @@+-- | This module manages OpenGL contexts in Caramia.+--+-- Caramia does not actually have any functionality about creating OpenGL+-- contexts. You need to tell it about them with this module.+--+-- `giveContext` is the most important function in this module. You also want+-- to `runPendingFinalizers` regularly to make sure OpenGL resources are+-- garbage collected.+--++{-# LANGUAGE NoImplicitPrelude, ScopedTypeVariables, DeriveDataTypeable #-}+{-# LANGUAGE CPP, LambdaCase #-}++module Graphics.Caramia.Context+ (+ -- * Running with an OpenGL context+ giveContext+ -- * Context IDs+ , currentContextID+ , ContextID+ -- * Finalization+ , runPendingFinalizers+ , scheduleFinalizer+ -- * Context local data+ , storeContextLocalData+ , retrieveContextLocalData+ -- * Exceptions+ , TooOldOpenGL(..) )+ where++import Graphics.Caramia.Prelude+import Graphics.Caramia.Internal.ContextLocalData+import Graphics.Caramia.Internal.OpenGLDebug+import Graphics.Caramia.Internal.FlextGL++import Control.Concurrent+import Control.Exception+import System.IO.Unsafe+import System.Environment+import Graphics.Rendering.OpenGL.Raw.GetProcAddress+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal.Alloc++import qualified Data.Map.Strict as M+import qualified Data.IntMap.Strict as IM++-- | An exception that is thrown when the OpenGL version is too old for this+-- library.+data TooOldOpenGL = TooOldOpenGL+ { wantedVersion :: (Int, Int) -- ^ The OpenGL version this+ -- library needs.+ , reportedVersion :: (Int, Int)+ -- ^ The OpenGL version reported by current OpenGL+ -- context.+ }+ deriving ( Eq, Show, Read, Typeable )++instance Exception TooOldOpenGL++-- | Tell Caramia the current thread has an OpenGL context active.+--+-- When the given IO action returns, Caramia will think that the OpenGL context+-- is now gone. It is probably best to actually close the context because this+-- also means OpenGL finalizers will not be run (Caramia thinks they were all+-- released when the OpenGL context went away).+--+-- The context in the IO action is referred to as \'Caramia context\' in this+-- documentation to distinguish it from OpenGL context.+--+-- If the environment variable \'CARAMIA_OPENGL_DEBUG\' is set, then, if+-- \'GL_KHR_debug\' extension is supported, OpenGL debug output is written.+-- Note that you might need a debug OpenGL context for there to be any+-- messages.+--+-- Throws `TooOldOpenGL` if the code detects a context that does not provide+-- OpenGL 3.3.+giveContext :: IO a -> IO a+giveContext action = mask $ \restore -> do+ is_bound_thread <- isCurrentThreadBound+ unless is_bound_thread $+ error $ "giveContext: current thread is not bound. How can it have " <>+ "an OpenGL context?"++ flextInit (\str -> castFunPtrToPtr <$> getProcAddress str)+ (\_ -> return True) >>= \case+ f@(Failure _) -> throwIO f+ _ -> return ()++ checkOpenGLVersion33++ cid <- atomicModifyIORef' nextContextID $ \old -> ( old+1, old )+ tid <- myThreadId+ atomicModifyIORef' runningContexts $ \old_map ->+ ( M.insert tid cid old_map, () )+ finally (restore insides) (flushDebugMessages >> scrapContext)+ where+ insides = do+ should_activate_debug_mode <- isJust <$> lookupEnv "CARAMIA_OPENGL_DEBUG"+ when should_activate_debug_mode activateDebugMode++ -- Enable sRGB framebuffers+ -- There seems to be no reason not to enable it; you can turn off sRGB+ -- handling in other ways.+ glEnable gl_FRAMEBUFFER_SRGB+ glEnable gl_BLEND++ action++checkOpenGLVersion33 :: IO ()+checkOpenGLVersion33 =+ -- You cannot trust OS X to report versions correctly :-(+#ifdef MAC_OPENGL+ return ()+#else+ alloca $ \major_ptr -> alloca $ \minor_ptr -> do+ -- in case glGetIntegerv is completely broken, set initial values for+ -- major and minor pointers+ poke major_ptr 0+ poke minor_ptr 0++ glGetIntegerv gl_MAJOR_VERSION major_ptr+ glGetIntegerv gl_MAJOR_VERSION minor_ptr+ major <- peek major_ptr+ minor <- peek minor_ptr+ unless (major > 3 ||+ (major == 3 && minor >= 3)) $+ throwIO+ TooOldOpenGL { wantedVersion = (3, 3)+ , reportedVersion = ( fromIntegral major+ , fromIntegral minor )+ }+#endif++-- | Scraps the current context.+--+-- Not public API.+scrapContext :: IO ()+scrapContext = mask_ $ do+ maybe_cid <- currentContextID+ tid <- myThreadId+ case maybe_cid of+ Nothing -> return ()+ Just cid -> do+ atomicModifyIORef' runningContexts $ \old_map ->+ ( M.delete tid old_map, () )+ atomicModifyIORef' pendingFinalizers $ \old_map ->+ ( IM.delete cid old_map, () )+ atomicModifyIORef' contextLocalData $ \old_map ->+ ( IM.delete cid old_map, () )++-- | Run any pending finalizers in the current Caramia context.+--+-- Does nothing if current thread does not have a Caramia context or there are+-- no pending finalizers.+--+-- If any finalizer throws an exception (asynchronous or synchronous), the+-- Caramia context dies and that exception is propagated upwards.+-- `runPendingFinalizers` itself runs `mask_` to run the finalizers with+-- exceptions masked but you might still receive asynchronous exceptions with,+-- for example, the `MVar` functions.+--+-- A good place to call this is right after or before swapping buffers.+runPendingFinalizers :: IO ()+runPendingFinalizers = mask_ $ do+ maybe_cid <- currentContextID+ case maybe_cid of+ Nothing -> return ()+ Just cid -> do+ finalizers <- atomicModifyIORef' pendingFinalizers $+ IM.delete cid &&&+ IM.findWithDefault (return ())+ cid++ -- We scrap the Caramia context if any of these finalizers throw an+ -- exception. The reason is that we cannot expect the OpenGL state+ -- to be consistent anymore.+ result <- try finalizers+ case result of+ Left exc -> scrapContext >> throwIO (exc :: SomeException)+ Right () -> return ()+ flushDebugMessages++-- | Schedules a finalizer to be run in a Caramia context.+--+-- Does nothing if given context is not alive anymore.+--+-- This is typically called from Haskell garbage collector finalizers because+-- they cannot do finalization there (Haskell finalizers are running in the+-- wrong operating system thread).+scheduleFinalizer :: ContextID -> IO () -> IO ()+scheduleFinalizer cid finalizer =+ atomicModifyIORef' pendingFinalizers $ \old ->+ ( IM.insertWith+ (flip (>>))+ cid+ finalizer+ old, () )++-- these are the pending OpenGL finalizers that wait for a time they can be+-- safely run.+pendingFinalizers :: IORef (IM.IntMap (IO ()))+pendingFinalizers = unsafePerformIO $ newIORef IM.empty+{-# NOINLINE pendingFinalizers #-}+
+ src/Graphics/Caramia/Framebuffer.hs view
@@ -0,0 +1,302 @@+-- | Framebuffers. You can render on them.+--+-- If you come from the OpenGL world, for simplicity, we have combined the+-- concept of draw buffers and color attachments. Nth color attachment is bound+-- exactly to Nth draw buffer. Caramia only talks about draw buffers.+--+-- <https://www.opengl.org/wiki/Framebuffer_Object>+--++{-# LANGUAGE NoImplicitPrelude, ViewPatterns, DeriveDataTypeable #-}++module Graphics.Caramia.Framebuffer+ (+ -- * Creating framebuffers+ newFramebuffer+ , Framebuffer()+ -- * Specifying texture targets+ , frontTextureTarget+ , mipmapTextureTarget+ , layerTextureTarget+ , TextureTarget()+ , Attachment(..)+ -- * Size query+ , getDimensions+ -- * Clearing framebuffers+ , clear+ , Clearing(..)+ , clearing+ -- * Special framebuffers+ , screenFramebuffer+ -- * Hardware limits+ , getMaximumDrawBuffers+ -- * Views+ , viewTargets )+ where++import Graphics.Caramia.Prelude+import Graphics.Caramia.Context+import Graphics.Caramia.Color+import Graphics.Caramia.Resource+import Graphics.Caramia.Texture+import Graphics.Caramia.Framebuffer.Internal+import qualified Graphics.Caramia.Texture.Internal as Tex+import Graphics.Caramia.ImageFormats+import Graphics.Caramia.Internal.OpenGLCApi+import Control.Exception+import Data.List ( nub )+import Data.Bits+import System.IO.Unsafe+import Foreign.Storable+import Foreign.Marshal.Alloc+import Foreign.Marshal.Array+import Foreign.C.Types+import GHC.Float+import qualified Data.IntSet as IS++-- | Returns the screen framebuffer.+--+-- Note that all `screenFramebuffer`s are equal to each other with `Eq`, even+-- those in unrelated Caramia contexts.+--+-- This makes it easy to check if any framebuffer happens to be the screen+-- framebuffer.+screenFramebuffer :: Framebuffer+screenFramebuffer = ScreenFramebuffer++-- | Make a texture target that is the \"front\" of the given texture.+--+-- This is the most common use case. \"front\" means the first texture in a+-- texture array and the base layer mipmap level.+frontTextureTarget :: Tex.Texture -> TextureTarget+frontTextureTarget tex = TextureTarget {+ attacher = \attachment ->+ withResource (Tex.resource tex) $ \(Tex.Texture_ texname) ->+ glFramebufferTexture+ gl_DRAW_FRAMEBUFFER+ attachment+ texname+ 0+ , texture = tex }++-- | Map a specific mipmlayer from a texture.+mipmapTextureTarget :: Tex.Texture+ -> Int -- ^ Which mipmap layer?+ -> TextureTarget+mipmapTextureTarget tex mipmap_layer = TextureTarget {+ attacher = \attachment ->+ withResource (Tex.resource tex) $ \(Tex.Texture_ texname) ->+ glFramebufferTexture+ gl_DRAW_FRAMEBUFFER+ attachment+ texname+ (safeFromIntegral mipmap_layer)+ , texture = tex }++-- | Map a specific mipmap layer of a specific layer in a 3D or array texture.+layerTextureTarget :: Tex.Texture+ -> Int -- ^ Which mipmap layer?+ -> Int -- ^ Which topological layer?+ -> TextureTarget+layerTextureTarget tex mipmap_layer topo_layer = TextureTarget {+ attacher = \attachment ->+ withResource (Tex.resource tex) $ \(Tex.Texture_ texname) ->+ glFramebufferTextureLayer+ gl_DRAW_FRAMEBUFFER+ attachment+ texname+ (safeFromIntegral mipmap_layer)+ (safeFromIntegral topo_layer)+ , texture = tex }++runningIndices :: IORef Int+runningIndices = unsafePerformIO $ newIORef 0+{-# NOINLINE runningIndices #-}++toConstantA :: Attachment -> GLenum+toConstantA (ColorAttachment x) = gl_COLOR_ATTACHMENT0 + fromIntegral x+toConstantA DepthAttachment = gl_DEPTH_ATTACHMENT+toConstantA StencilAttachment = gl_STENCIL_ATTACHMENT++-- | Creates a new framebuffer.+newFramebuffer :: [(Attachment, TextureTarget)]+ -> IO Framebuffer+newFramebuffer targets+ | null targets =+ error "newFramebuffer: no texture targets specified."+ | nub (fmap fst targets) /= fmap fst targets =+ error "newFramebuffer: there are duplicate attachments."+ | otherwise = mask_ $ do+ max_bufs <- getMaximumDrawBuffers+ targetsSanityCheck max_bufs++ res <- newResource (creator max_bufs)+ deleter+ (return ())+ index <- atomicModifyIORef' runningIndices $ \old ->+ ( old+1, old )+ return Framebuffer { resource = res+ , ordIndex = index+ , viewTargets = targets+ , dimensions = calculatedDimensions+ , binder = withThisFramebuffer res+ , setter = setThisFramebuffer res }+ where+ calculatedDimensions@(fw, fh) =+ foldl' (\(lowest_w, lowest_h) (w, h) ->+ (min lowest_w w, min lowest_h h))+ (maxBound, maxBound)+ (fmap (\(snd -> tex) ->+ (viewWidth $ texture tex, viewHeight $ texture tex))+ targets)++ creator max_bufs =+ bracketOnError mglGenFramebuffer+ mglDeleteFramebuffer $ \fbuf_name -> do+ withBoundDrawFramebuffer fbuf_name $ do+ forM_ targets $ \(index, tex) ->+ attacher tex (toConstantA index)++ allocaArray max_bufs $ \buf_ptr -> do+ forM_ [0..max_bufs-1] $ \bufnum ->+ pokeElemOff buf_ptr bufnum $+ if IS.member bufnum color_attachments+ then gl_COLOR_ATTACHMENT0 ++ fromIntegral bufnum+ else gl_NONE+ glDrawBuffers (fromIntegral max_bufs) buf_ptr++ return $ Framebuffer_ fbuf_name++ color_attachments :: IS.IntSet+ color_attachments =+ foldl' folder IS.empty (fmap fst targets)+ where+ folder :: IS.IntSet -> Attachment -> IS.IntSet+ folder accum (ColorAttachment x) = IS.insert x accum+ folder accum _ = accum++ deleter (Framebuffer_ fbuf_name) =+ mglDeleteFramebuffer fbuf_name++ targetsSanityCheck max_bufs = forM_ targets $ \(attachment, target) -> do+ let format = Tex.imageFormat $ Tex.viewSpecification $ texture target+ unless (isRenderTargettable format) $+ error $ "newFramebuffer: cannot render to " <> show format+ case attachment of+ ColorAttachment x | x < 0 || x >= max_bufs ->+ error $ "newFramebuffer: color attachment " <> show x <>+ " is out of range. Valid range is [0.." <>+ show (max_bufs-1) <> "]."+ ColorAttachment _ | not (isColorFormat format) ->+ error $ "newFramebuffer: " <> show format <> " is not a " <>+ "color format but was attempted to be attached to " <>+ "attachment " <> show attachment <> "."+ DepthAttachment | not (hasDepthComponent format) ->+ error $ "newFramebuffer: " <> show format <> " has no " <>+ "depth component but was attempted to be attached " <>+ "to depth attachment."+ StencilAttachment | not (hasStencilComponent format) ->+ error $ "newFramebuffer: " <> show format <> " has no " <>+ "stencil component but was attempted to be " <>+ "attached to stencil attachment."+ _ -> return ()++ setThisFramebuffer res = do+ withResource res $ \(Framebuffer_ fbuf_name) ->+ glBindFramebuffer gl_FRAMEBUFFER fbuf_name+ glViewport 0 0 (fromIntegral fw) (fromIntegral fh)++ withThisFramebuffer res action = mask $ \restore -> do+ old_draw_framebuffer <- gi gl_DRAW_FRAMEBUFFER_BINDING+ old_read_framebuffer <- gi gl_READ_FRAMEBUFFER_BINDING+ allocaArray 4 $ \viewport_ptr -> do+ glGetIntegerv gl_VIEWPORT viewport_ptr+ withResource res $ \(Framebuffer_ fbuf_name) -> do+ glBindFramebuffer gl_FRAMEBUFFER fbuf_name+ x <- peekElemOff viewport_ptr 0+ y <- peekElemOff viewport_ptr 1+ w <- peekElemOff viewport_ptr 2+ h <- peekElemOff viewport_ptr 3+ glViewport 0 0 (fromIntegral fw) (fromIntegral fh)+ finally (restore action) $ do+ glViewport x y w h+ glBindFramebuffer gl_DRAW_FRAMEBUFFER old_draw_framebuffer+ glBindFramebuffer gl_READ_FRAMEBUFFER old_read_framebuffer++-- | Returns the maximum number of draw buffers in the current context.+--+-- Almost all GPUs in the last few years have at least 8.+getMaximumDrawBuffers :: IO Int+getMaximumDrawBuffers = do+ _ <- currentContextID+ -- number of draw buffers+ num_drawbuffers <- gi gl_MAX_DRAW_BUFFERS+ -- number of attachments+ num_attachments <- gi gl_MAX_COLOR_ATTACHMENTS+ return (fromIntegral $ min num_drawbuffers num_attachments)++-- | Specifies what to clear in a `clear` invocation.+--+-- Use `clearing` smart constructor instead for forward-compatibility.+--+-- Each member of this data type is a `Maybe` value; if any value is `Just`+-- then that value is cleared, otherwise it is not touched.+data Clearing = Clearing+ { clearDepth :: !(Maybe Float)+ -- ^ Clear depth buffer to this value.+ , clearStencil :: !(Maybe Int32)+ -- ^ Clear stencil buffer to this value.+ , clearColor :: !(Maybe Color)+ -- ^ Clear (all) color buffers to some color.+ }+ deriving ( Eq, Ord, Show, Read, Typeable )++-- TODO: selective clearing for different color buffers.++-- | Smart constructor for `Clearing`. All members are `Nothing`.+clearing :: Clearing+clearing = Clearing { clearDepth = Nothing+ , clearStencil = Nothing+ , clearColor = Nothing }++-- | Clears values in a framebuffer.+clear :: Clearing -> Framebuffer -> IO ()+clear clearing fbuf = withBinding fbuf $ mask_ $+ recColor (clearColor clearing)+ where+ bits = maybe 0 (const gl_COLOR_BUFFER_BIT) (clearColor clearing) .|.+ maybe 0 (const gl_DEPTH_BUFFER_BIT) (clearDepth clearing) .|.+ maybe 0 (const gl_STENCIL_BUFFER_BIT) (clearStencil clearing)++ recColor Nothing = recDepth (clearDepth clearing)+ recColor (Just (viewRgba -> (r, g, b, a))) =+ allocaArray 4 $ \ptr -> do+ glGetFloatv gl_COLOR_CLEAR_VALUE ptr+ glClearColor (CFloat r)+ (CFloat g)+ (CFloat b)+ (CFloat a)+ recDepth (clearDepth clearing)+ nr <- peekElemOff ptr 0+ ng <- peekElemOff ptr 1+ nb <- peekElemOff ptr 2+ na <- peekElemOff ptr 3+ glClearColor (nr :: CFloat) ng nb na++ recDepth Nothing = recStencil (clearStencil clearing)+ recDepth (Just depth) = do+ old_depth <- alloca $ \ptr ->+ glGetDoublev gl_DEPTH_CLEAR_VALUE ptr *> peek ptr+ glClearDepth (CDouble $ float2Double depth)+ recStencil (clearStencil clearing)+ glClearDepth old_depth++ recStencil Nothing = glClear bits+ recStencil (Just stencil) = do+ old_stencil <- alloca $ \ptr ->+ glGetIntegerv gl_STENCIL_CLEAR_VALUE ptr *> peek ptr+ glClearStencil (safeFromIntegral stencil)+ glClear bits+ glClearStencil old_stencil+
+ src/Graphics/Caramia/Framebuffer/Internal.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE RankNTypes, NoImplicitPrelude, DeriveDataTypeable #-}++module Graphics.Caramia.Framebuffer.Internal where++import Graphics.Caramia.Prelude++import Graphics.Caramia.Resource+import Graphics.Caramia.Internal.OpenGLCApi+import qualified Graphics.Caramia.Texture.Internal as Tex+import Control.Exception+import Foreign++data Framebuffer =+ ScreenFramebuffer+ | Framebuffer {+ resource :: !(Resource Framebuffer_)+ , ordIndex :: !Int+ , viewTargets :: [(Attachment, TextureTarget)]+ , dimensions :: !(Int, Int)+ , binder :: forall a. IO a -> IO a+ , setter :: IO ()+ }+ deriving ( Typeable )++data Attachment = ColorAttachment !Int+ | DepthAttachment+ | StencilAttachment+ deriving ( Eq, Ord, Show, Read, Typeable )++instance Eq Framebuffer where+ ScreenFramebuffer == ScreenFramebuffer = True+ ScreenFramebuffer == _ = False+ _ == ScreenFramebuffer = False+ fbuf1 == fbuf2 = resource fbuf1 == resource fbuf2++instance Ord Framebuffer where+ ScreenFramebuffer `compare` ScreenFramebuffer = EQ+ ScreenFramebuffer `compare` _ = LT+ _ `compare` ScreenFramebuffer = GT+ fbuf1 `compare` fbuf2 = ordIndex fbuf1 `compare` ordIndex fbuf2++newtype Framebuffer_ = Framebuffer_ GLuint++data TextureTarget = TextureTarget+ { attacher :: GLuint -> IO ()+ , texture :: Tex.Texture }++setBinding :: Framebuffer -> IO ()+setBinding ScreenFramebuffer = do+ (w, h) <- getDimensions ScreenFramebuffer+ glBindFramebuffer gl_FRAMEBUFFER 0+ glViewport 0 0 (fromIntegral w) (fromIntegral h)+setBinding fbuf = setter fbuf++withBinding :: Framebuffer -> IO a -> IO a+withBinding ScreenFramebuffer action =+ allocaArray 4 $ \viewport_ptr -> do+ glGetIntegerv gl_VIEWPORT viewport_ptr+ ox <- peekElemOff viewport_ptr 0+ oy <- peekElemOff viewport_ptr 1+ ow <- peekElemOff viewport_ptr 2+ oh <- peekElemOff viewport_ptr 3+ (w, h) <- getDimensions ScreenFramebuffer+ old_draw <- gi gl_DRAW_FRAMEBUFFER_BINDING+ old_read <- gi gl_READ_FRAMEBUFFER_BINDING+ finally (glBindFramebuffer gl_FRAMEBUFFER 0 >>+ glViewport 0 0 (fromIntegral w) (fromIntegral h) >>+ action) $ do+ glViewport ox oy ow oh+ glBindFramebuffer gl_DRAW_FRAMEBUFFER old_draw+ glBindFramebuffer gl_READ_FRAMEBUFFER old_read+withBinding fbuf action = binder fbuf action++-- | Returns the size of a framebuffer.+--+-- This is an `IO` action because it can change for the screen framebuffer.+getDimensions :: Framebuffer -> IO (Int, Int)+getDimensions ScreenFramebuffer =+ allocaArray 4 $ \vptr -> do+ glGetIntegerv gl_VIEWPORT vptr+ w <- peekElemOff vptr 2+ h <- peekElemOff vptr 3+ return (fromIntegral w, fromIntegral h)+getDimensions fbuf = return $ dimensions fbuf+{-# INLINE getDimensions #-}++
+ src/Graphics/Caramia/ImageFormats.hs view
@@ -0,0 +1,18 @@+module Graphics.Caramia.ImageFormats+ (+ -- * Image formats+ ImageFormat(..)+ , isRenderTargettable+ , isCompressed+ , isColorFormat+ , isSRGBFormat+ , hasDepthComponent+ , hasStencilComponent+ -- * Specification types+ , SpecificationType(..)+ , sizeOfSpecificationType+ , SpecificationTypeable(..) )+ where++import Graphics.Caramia.ImageFormats.Internal+
+ src/Graphics/Caramia/ImageFormats/Internal.hs view
@@ -0,0 +1,328 @@+-- | This module contains data types that describe the data formats of images.+--+-- <https://www.opengl.org/wiki/Image_Format>+--++{-# LANGUAGE DeriveDataTypeable, NoImplicitPrelude #-}++module Graphics.Caramia.ImageFormats.Internal where++import Graphics.Caramia.Prelude++import Graphics.Caramia.Internal.OpenGLCApi+import Foreign.C.Types++-- | Given a format, returns `True` if that format can be rendered to. That is,+-- if it can be one of the targets in a framebuffer.+--+-- This is conservative. Sometimes you may be able to render anyway; however+-- this is not guaranteed by the OpenGL specification.+isRenderTargettable :: ImageFormat -> Bool+isRenderTargettable R8 = True+isRenderTargettable R8I = True+isRenderTargettable R8UI = True+isRenderTargettable R16 = True+isRenderTargettable R16I = True+isRenderTargettable R16UI = True+isRenderTargettable R16F = True+isRenderTargettable R32F = True+isRenderTargettable R32I = True+isRenderTargettable R32UI = True+isRenderTargettable RG8 = True+isRenderTargettable RG8I = True+isRenderTargettable RG8UI = True+isRenderTargettable RG16 = True+isRenderTargettable RG16I = True+isRenderTargettable RG16UI = True+isRenderTargettable RG16F = True+isRenderTargettable RG32F = True+isRenderTargettable RG32I = True+isRenderTargettable RG32UI = True+isRenderTargettable R11F_G11F_B10F = True+isRenderTargettable RGB8 = True+isRenderTargettable RGBA32F = True+isRenderTargettable RGBA32I = True+isRenderTargettable RGBA32UI = True+isRenderTargettable RGBA16 = True+isRenderTargettable RGBA16F = True+isRenderTargettable RGBA16I = True+isRenderTargettable RGBA16UI = True+isRenderTargettable RGBA8 = True+isRenderTargettable RGBA8UI = True+isRenderTargettable SRGB8_ALPHA8 = True+isRenderTargettable RGB10_A2 = True+isRenderTargettable DEPTH_COMPONENT32 = True+isRenderTargettable DEPTH_COMPONENT32F = True+isRenderTargettable DEPTH_COMPONENT24 = True+isRenderTargettable DEPTH_COMPONENT16 = True+isRenderTargettable DEPTH32F_STENCIL8 = True+isRenderTargettable DEPTH24_STENCIL8 = True+isRenderTargettable _ = False++-- | Returns true if the given format is a compressed format.+isCompressed :: ImageFormat -> Bool+isCompressed COMPRESSED_RG_RGTC2 = True+isCompressed COMPRESSED_SIGNED_RG_RGTC2 = True+isCompressed COMPRESSED_RED_RGTC1 = True+isCompressed COMPRESSED_SIGNED_RED_RGTC1 = True+isCompressed COMPRESSED_RGB_S3TC_DXT1 = True+isCompressed COMPRESSED_RGBA_S3TC_DXT1 = True+isCompressed COMPRESSED_RGBA_S3TC_DXT3 = True+isCompressed COMPRESSED_RGBA_S3TC_DXT5 = True+isCompressed COMPRESSED_SRGB_S3TC_DXT1 = True+isCompressed COMPRESSED_SRGB_ALPHA_S3TC_DXT1 = True+isCompressed COMPRESSED_SRGB_ALPHA_S3TC_DXT3 = True+isCompressed COMPRESSED_SRGB_ALPHA_S3TC_DXT5 = True+isCompressed _ = False++-- | Returns true if the given format is a color format.+isColorFormat :: ImageFormat -> Bool+isColorFormat DEPTH_COMPONENT32 = False+isColorFormat DEPTH_COMPONENT32F = False+isColorFormat DEPTH_COMPONENT24 = False+isColorFormat DEPTH_COMPONENT16 = False+isColorFormat DEPTH32F_STENCIL8 = False+isColorFormat DEPTH24_STENCIL8 = False+isColorFormat _ = True++-- | Returns true if the given format has a depth component.+hasDepthComponent :: ImageFormat -> Bool+hasDepthComponent DEPTH_COMPONENT32 = True+hasDepthComponent DEPTH_COMPONENT32F = True+hasDepthComponent DEPTH_COMPONENT24 = True+hasDepthComponent DEPTH_COMPONENT16 = True+hasDepthComponent DEPTH32F_STENCIL8 = True+hasDepthComponent DEPTH24_STENCIL8 = True+hasDepthComponent _ = False++-- | Returns true if the given format has a stencil component.+hasStencilComponent :: ImageFormat -> Bool+hasStencilComponent DEPTH32F_STENCIL8 = True+hasStencilComponent DEPTH24_STENCIL8 = True+hasStencilComponent _ = False++-- | Returns true if the given format uses the sRGB color space.+--+-- If the format is not a color format, returns `False`.+isSRGBFormat :: ImageFormat -> Bool+isSRGBFormat SRGB8_ALPHA8 = True+isSRGBFormat SRGB8 = True+isSRGBFormat COMPRESSED_SRGB_S3TC_DXT1 = True+isSRGBFormat COMPRESSED_SRGB_ALPHA_S3TC_DXT1 = True+isSRGBFormat COMPRESSED_SRGB_ALPHA_S3TC_DXT3 = True+isSRGBFormat COMPRESSED_SRGB_ALPHA_S3TC_DXT5 = True+isSRGBFormat _ = False++-- | All the various internal formats.+--+-- This list corresponds to the OpenGL specification of 3.3, required texture+-- formats (+ S3TC compressed formats). Check the OpenGL specification for+-- explanations on how these formats work.+data ImageFormat =+ R8+ | R8I+ | R8UI+ | R16+ | R16I+ | R16UI+ | R16F+ | R32F+ | R32I+ | R32UI+ | RG8+ | RG8I+ | RG8UI+ | RG16+ | RG16I+ | RG16UI+ | RG16F+ | RG32F+ | RG32I+ | RG32UI+ | R11F_G11F_B10F+ | RGBA32F+ | RGBA32I+ | RGBA32UI+ | RGBA16+ | RGBA16F+ | RGBA16I+ | RGBA16UI+ | RGBA8+ | RGBA8UI+ | SRGB8_ALPHA8+ | RGB10_A2+ | RGB32F+ | RGB32I+ | RGB32UI+ | RGB16F+ | RGB16I+ | RGB16UI+ | RGB16+ | RGB8+ | RGB8I+ | RGB8UI+ | SRGB8+ | RGB9_E5+ | COMPRESSED_RG_RGTC2+ | COMPRESSED_SIGNED_RG_RGTC2+ | COMPRESSED_RED_RGTC1+ | COMPRESSED_SIGNED_RED_RGTC1+ | COMPRESSED_RGB_S3TC_DXT1+ | COMPRESSED_RGBA_S3TC_DXT1+ | COMPRESSED_RGBA_S3TC_DXT3+ | COMPRESSED_RGBA_S3TC_DXT5+ | COMPRESSED_SRGB_S3TC_DXT1+ | COMPRESSED_SRGB_ALPHA_S3TC_DXT1+ | COMPRESSED_SRGB_ALPHA_S3TC_DXT3+ | COMPRESSED_SRGB_ALPHA_S3TC_DXT5+ | DEPTH_COMPONENT32+ | DEPTH_COMPONENT32F+ | DEPTH_COMPONENT24+ | DEPTH_COMPONENT16+ | DEPTH32F_STENCIL8+ | DEPTH24_STENCIL8+ deriving ( Eq, Ord, Show, Read, Typeable )++toConstantIF :: ImageFormat -> GLenum+toConstantIF R8 = gl_R8+toConstantIF R8I = gl_R8I+toConstantIF R8UI = gl_R8UI+toConstantIF R16 = gl_R16+toConstantIF R16I = gl_R16I+toConstantIF R16UI = gl_R16UI+toConstantIF R16F = gl_R16F+toConstantIF R32F = gl_R32F+toConstantIF R32I = gl_R32I+toConstantIF R32UI = gl_R32UI+toConstantIF RG8 = gl_RG8+toConstantIF RG8I = gl_RG8I+toConstantIF RG8UI = gl_RG8UI+toConstantIF RG16 = gl_RG16+toConstantIF RG16I = gl_RG16I+toConstantIF RG16UI = gl_RG16UI+toConstantIF RG16F = gl_RG16F+toConstantIF RG32F = gl_RG32F+toConstantIF RG32I = gl_RG32I+toConstantIF RG32UI = gl_RG32UI+toConstantIF R11F_G11F_B10F = gl_R11F_G11F_B10F+toConstantIF RGBA32F = gl_RGBA32F+toConstantIF RGBA32I = gl_RGBA32I+toConstantIF RGBA32UI = gl_RGBA32UI+toConstantIF RGBA16 = gl_RGBA16+toConstantIF RGBA16F = gl_RGBA16F+toConstantIF RGBA16I = gl_RGBA16I+toConstantIF RGBA16UI = gl_RGBA16UI+toConstantIF RGBA8 = gl_RGBA8+toConstantIF RGBA8UI = gl_RGBA8UI+toConstantIF SRGB8_ALPHA8 = gl_SRGB8_ALPHA8+toConstantIF RGB10_A2 = gl_RGB10_A2+toConstantIF RGB32F = gl_RGB32F+toConstantIF RGB32I = gl_RGB32I+toConstantIF RGB32UI = gl_RGB32UI+toConstantIF RGB16F = gl_RGB16F+toConstantIF RGB16I = gl_RGB16I+toConstantIF RGB16UI = gl_RGB16UI+toConstantIF RGB16 = gl_RGB16+toConstantIF RGB8 = gl_RGB8+toConstantIF RGB8I = gl_RGB8I+toConstantIF RGB8UI = gl_RGB8UI+toConstantIF SRGB8 = gl_SRGB8+toConstantIF RGB9_E5 = gl_RGB9_E5+toConstantIF COMPRESSED_RG_RGTC2 = gl_COMPRESSED_RG_RGTC2+toConstantIF COMPRESSED_SIGNED_RG_RGTC2 = gl_COMPRESSED_SIGNED_RG_RGTC2+toConstantIF COMPRESSED_RED_RGTC1 = gl_COMPRESSED_RED_RGTC1+toConstantIF COMPRESSED_SIGNED_RED_RGTC1 = gl_COMPRESSED_SIGNED_RED_RGTC1+toConstantIF COMPRESSED_RGB_S3TC_DXT1 = gl_COMPRESSED_RGB_S3TC_DXT1_EXT+toConstantIF COMPRESSED_RGBA_S3TC_DXT1 = gl_COMPRESSED_RGBA_S3TC_DXT1_EXT+toConstantIF COMPRESSED_RGBA_S3TC_DXT3 = gl_COMPRESSED_RGBA_S3TC_DXT3_EXT+toConstantIF COMPRESSED_RGBA_S3TC_DXT5 = gl_COMPRESSED_RGBA_S3TC_DXT5_EXT+toConstantIF COMPRESSED_SRGB_S3TC_DXT1 = gl_COMPRESSED_SRGB_S3TC_DXT1_EXT+toConstantIF COMPRESSED_SRGB_ALPHA_S3TC_DXT1 =+ gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT+toConstantIF COMPRESSED_SRGB_ALPHA_S3TC_DXT3 =+ gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT+toConstantIF COMPRESSED_SRGB_ALPHA_S3TC_DXT5 =+ gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT+toConstantIF DEPTH_COMPONENT32 = gl_DEPTH_COMPONENT32+toConstantIF DEPTH_COMPONENT32F = gl_DEPTH_COMPONENT32F+toConstantIF DEPTH_COMPONENT24 = gl_DEPTH_COMPONENT24+toConstantIF DEPTH_COMPONENT16 = gl_DEPTH_COMPONENT16+toConstantIF DEPTH32F_STENCIL8 = gl_DEPTH32F_STENCIL8+toConstantIF DEPTH24_STENCIL8 = gl_DEPTH24_STENCIL8++-- | Specification formats.+--+-- These formats specify the type of the data passed from Haskell to GPU.+data SpecificationType =+ FWord8+ | FWord16+ | FWord32+ | FInt8+ | FInt16+ | FInt32+ | FFloat+ | FHalfFloat+ deriving ( Eq, Ord, Show, Read, Typeable )++toConstantST :: SpecificationType -> GLenum+toConstantST FWord8 = gl_UNSIGNED_BYTE+toConstantST FWord16 = gl_UNSIGNED_SHORT+toConstantST FWord32 = gl_UNSIGNED_INT+toConstantST FInt8 = gl_BYTE+toConstantST FInt16 = gl_SHORT+toConstantST FInt32 = gl_INT+toConstantST FFloat = gl_FLOAT+toConstantST FHalfFloat = gl_HALF_FLOAT++-- TODO: add special interpretation formats to `SpecificationType`.+--++-- | Given a specification format, returns the number of bytes one element+-- uses.+sizeOfSpecificationType :: SpecificationType -> Int+sizeOfSpecificationType FWord8 = 1+sizeOfSpecificationType FWord16 = 2+sizeOfSpecificationType FWord32 = 2+sizeOfSpecificationType FInt8 = 1+sizeOfSpecificationType FInt16 = 2+sizeOfSpecificationType FInt32 = 4+sizeOfSpecificationType FFloat = 4+sizeOfSpecificationType FHalfFloat = 2++-- | Class that turns Haskell types into `SpecificationType`.+class SpecificationTypeable a where+ -- | Returns the corresponding `SpecificationType` for a Haskell type.+ toSpecificationType :: a -- ^ Used to pass the type; not evaluated.+ -> SpecificationType++instance SpecificationTypeable Word8 where+ toSpecificationType _ = FWord8++instance SpecificationTypeable Word16 where+ toSpecificationType _ = FWord16++instance SpecificationTypeable Word32 where+ toSpecificationType _ = FWord32++instance SpecificationTypeable Int8 where+ toSpecificationType _ = FInt8++instance SpecificationTypeable Int16 where+ toSpecificationType _ = FInt16++instance SpecificationTypeable Int32 where+ toSpecificationType _ = FInt32++instance SpecificationTypeable CInt where+ toSpecificationType _ = FInt32++instance SpecificationTypeable CUInt where+ toSpecificationType _ = FWord32++instance SpecificationTypeable Float where+ toSpecificationType _ = FFloat++instance SpecificationTypeable CFloat where+ toSpecificationType _ = FFloat++
+ src/Graphics/Caramia/Internal/ContextLocalData.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE NoImplicitPrelude, ScopedTypeVariables #-}++module Graphics.Caramia.Internal.ContextLocalData where++import Graphics.Caramia.Prelude+import qualified Data.IntMap.Strict as IM+import qualified Data.Map.Strict as M+import System.IO.Unsafe+import Data.Dynamic+import Control.Concurrent++-- | The type of a Caramia context ID.+type ContextID = Int++-- currently running contexts, map from thread IDs to context IDs+runningContexts :: IORef (M.Map ThreadId ContextID)+runningContexts = unsafePerformIO $ newIORef M.empty+{-# NOINLINE runningContexts #-}++-- used to give out new unique context IDs+nextContextID :: IORef ContextID+nextContextID = unsafePerformIO $ newIORef 0+{-# NOINLINE nextContextID #-}++-- context local data. This is like poor man's thread local storage but for+-- contexts.+--+-- The `TypeRep` and `Dynamic` lets this module be agnostic to what other+-- modules hang on to thread local data.+--+-- Other modules can specify a type that there should be only one per context.+-- And this type's TypeRep is stored/queried from the map below.+contextLocalData :: IORef (IM.IntMap (M.Map TypeRep Dynamic))+contextLocalData = unsafePerformIO $ newIORef IM.empty+{-# NOINLINE contextLocalData #-}++-- | Returns the current Caramia context ID.+--+-- The context ID is unique between different calls to `giveContext`.+--+-- Returns `Nothing` if there is no context active.+currentContextID :: IO (Maybe ContextID)+currentContextID =+ M.lookup <$> myThreadId <*> readIORef runningContexts+{-# INLINE currentContextID #-}++-- | Stores a context local value.+--+-- The type of the given value is used as a key. This means that if a value of+-- the same type was stored before, that value is thrown away and replaced with+-- this new value you just gave.+--+-- The value is evaluated to WHNF.+--+-- You don't need this function to work with context local data.+-- `retrieveContextLocalData` is sufficient as it also lets you set a default+-- value in case a value was not already set.+--+-- Context local data is wiped to oblivion once `giveContext` ends.+storeContextLocalData :: Typeable a => a -> IO ()+storeContextLocalData value =+ maybe (error "storeContextLocalData: not in a context.")+ (\cid ->+ atomicModifyIORef' contextLocalData $ \old ->+ ( IM.alter (Just . maybe (M.singleton+ (typeOf value)+ (toDyn value))+ (M.insert (typeOf value)+ (toDyn value)))+ cid+ old+ , () ) )+ =<< currentContextID+{-# INLINE storeContextLocalData #-}++-- | Retrieves a context local value.+--+-- See `storeContextLocalData`.+retrieveContextLocalData :: forall a. Typeable a+ => IO a -- ^ Default value generating action; not+ -- evaluated if there was already a value+ -- stored.+ -> IO a+retrieveContextLocalData defvalue =+ maybe (error "retrieveContextLocalData: not in a context.")+ (\cid -> do+ -- No need to care about IORef race conditions because all+ -- functions operating on a certain context ID will be+ -- run in the same thread, sequentially.+ snapshot <- readIORef contextLocalData+ case IM.lookup cid snapshot of+ Nothing -> do+ val <- dyndefvalue+ atomicModifyIORef' contextLocalData $ \old ->+ ( IM.insert cid (M.singleton typ val) old+ , fromDyn val undefined )+ Just old_map ->+ case M.lookup typ old_map of+ Nothing -> do+ val <- dyndefvalue+ atomicModifyIORef' contextLocalData $ \old ->+ ( IM.adjust (M.insert typ val)+ cid+ old+ , fromDyn val undefined )+ Just value -> return (fromDyn value undefined))+ =<< currentContextID+ where+ typ = typeOf (undefined :: a)+ dyndefvalue = toDyn <$> defvalue+{-# INLINEABLE retrieveContextLocalData #-}++
+ src/Graphics/Caramia/Internal/FlextGL.hs view
@@ -0,0 +1,28572 @@+{-# LANGUAGE CPP, ForeignFunctionInterface, EmptyDataDecls #-}+#ifdef __GLASGOW_HASKELL__+{-# LANGUAGE DeriveDataTypeable, StandaloneDeriving #-}+#endif+-- WARNING: This file was automatically generated+-- Do not edit.++++module Graphics.Caramia.Internal.FlextGL+ ( flextInit+ , FlextInitResult(..)+ , has_GL_ARB_texture_storage+ , has_GL_KHR_debug+ , has_GL_EXT_direct_state_access+ , has_GL_ARB_buffer_storage+ , has_GL_ARB_separate_shader_objects+ , has_GL_ATI_meminfo+ , has_GL_NVX_gpu_memory_info+ , has_GL_ARB_invalidate_subdata+ , glCullFace+ , glFrontFace+ , glHint+ , glLineWidth+ , glPointSize+ , glPolygonMode+ , glScissor+ , glTexParameterf+ , glTexParameterfv+ , glTexParameteri+ , glTexParameteriv+ , glTexImage1D+ , glTexImage2D+ , glDrawBuffer+ , glClear+ , glClearColor+ , glClearStencil+ , glClearDepth+ , glStencilMask+ , glColorMask+ , glDepthMask+ , glDisable+ , glEnable+ , glFinish+ , glFlush+ , glBlendFunc+ , glLogicOp+ , glStencilFunc+ , glStencilOp+ , glDepthFunc+ , glPixelStoref+ , glPixelStorei+ , glReadBuffer+ , glReadPixels+ , glGetBooleanv+ , glGetDoublev+ , glGetError+ , glGetFloatv+ , glGetIntegerv+ , glGetString+ , glGetTexImage+ , glGetTexParameterfv+ , glGetTexParameteriv+ , glGetTexLevelParameterfv+ , glGetTexLevelParameteriv+ , glIsEnabled+ , glDepthRange+ , glViewport+ , glDrawArrays+ , glDrawElements+ , glPolygonOffset+ , glCopyTexImage1D+ , glCopyTexImage2D+ , glCopyTexSubImage1D+ , glCopyTexSubImage2D+ , glTexSubImage1D+ , glTexSubImage2D+ , glBindTexture+ , glDeleteTextures+ , glGenTextures+ , glIsTexture+ , glDrawRangeElements+ , glTexImage3D+ , glTexSubImage3D+ , glCopyTexSubImage3D+ , glActiveTexture+ , glSampleCoverage+ , glCompressedTexImage3D+ , glCompressedTexImage2D+ , glCompressedTexImage1D+ , glCompressedTexSubImage3D+ , glCompressedTexSubImage2D+ , glCompressedTexSubImage1D+ , glGetCompressedTexImage+ , glBlendFuncSeparate+ , glMultiDrawArrays+ , glMultiDrawElements+ , glPointParameterf+ , glPointParameterfv+ , glPointParameteri+ , glPointParameteriv+ , glBlendColor+ , glBlendEquation+ , glGenQueries+ , glDeleteQueries+ , glIsQuery+ , glBeginQuery+ , glEndQuery+ , glGetQueryiv+ , glGetQueryObjectiv+ , glGetQueryObjectuiv+ , glBindBuffer+ , glDeleteBuffers+ , glGenBuffers+ , glIsBuffer+ , glBufferData+ , glBufferSubData+ , glGetBufferSubData+ , glMapBuffer+ , glUnmapBuffer+ , glGetBufferParameteriv+ , glGetBufferPointerv+ , glBlendEquationSeparate+ , glDrawBuffers+ , glStencilOpSeparate+ , glStencilFuncSeparate+ , glStencilMaskSeparate+ , glAttachShader+ , glBindAttribLocation+ , glCompileShader+ , glCreateProgram+ , glCreateShader+ , glDeleteProgram+ , glDeleteShader+ , glDetachShader+ , glDisableVertexAttribArray+ , glEnableVertexAttribArray+ , glGetActiveAttrib+ , glGetActiveUniform+ , glGetAttachedShaders+ , glGetAttribLocation+ , glGetProgramiv+ , glGetProgramInfoLog+ , glGetShaderiv+ , glGetShaderInfoLog+ , glGetShaderSource+ , glGetUniformLocation+ , glGetUniformfv+ , glGetUniformiv+ , glGetVertexAttribdv+ , glGetVertexAttribfv+ , glGetVertexAttribiv+ , glGetVertexAttribPointerv+ , glIsProgram+ , glIsShader+ , glLinkProgram+ , glShaderSource+ , glUseProgram+ , glUniform1f+ , glUniform2f+ , glUniform3f+ , glUniform4f+ , glUniform1i+ , glUniform2i+ , glUniform3i+ , glUniform4i+ , glUniform1fv+ , glUniform2fv+ , glUniform3fv+ , glUniform4fv+ , glUniform1iv+ , glUniform2iv+ , glUniform3iv+ , glUniform4iv+ , glUniformMatrix2fv+ , glUniformMatrix3fv+ , glUniformMatrix4fv+ , glValidateProgram+ , glVertexAttrib1d+ , glVertexAttrib1dv+ , glVertexAttrib1f+ , glVertexAttrib1fv+ , glVertexAttrib1s+ , glVertexAttrib1sv+ , glVertexAttrib2d+ , glVertexAttrib2dv+ , glVertexAttrib2f+ , glVertexAttrib2fv+ , glVertexAttrib2s+ , glVertexAttrib2sv+ , glVertexAttrib3d+ , glVertexAttrib3dv+ , glVertexAttrib3f+ , glVertexAttrib3fv+ , glVertexAttrib3s+ , glVertexAttrib3sv+ , glVertexAttrib4Nbv+ , glVertexAttrib4Niv+ , glVertexAttrib4Nsv+ , glVertexAttrib4Nub+ , glVertexAttrib4Nubv+ , glVertexAttrib4Nuiv+ , glVertexAttrib4Nusv+ , glVertexAttrib4bv+ , glVertexAttrib4d+ , glVertexAttrib4dv+ , glVertexAttrib4f+ , glVertexAttrib4fv+ , glVertexAttrib4iv+ , glVertexAttrib4s+ , glVertexAttrib4sv+ , glVertexAttrib4ubv+ , glVertexAttrib4uiv+ , glVertexAttrib4usv+ , glVertexAttribPointer+ , glUniformMatrix2x3fv+ , glUniformMatrix3x2fv+ , glUniformMatrix2x4fv+ , glUniformMatrix4x2fv+ , glUniformMatrix3x4fv+ , glUniformMatrix4x3fv+ , glColorMaski+ , glGetBooleani_v+ , glGetIntegeri_v+ , glEnablei+ , glDisablei+ , glIsEnabledi+ , glBeginTransformFeedback+ , glEndTransformFeedback+ , glBindBufferRange+ , glBindBufferBase+ , glTransformFeedbackVaryings+ , glGetTransformFeedbackVarying+ , glClampColor+ , glBeginConditionalRender+ , glEndConditionalRender+ , glVertexAttribIPointer+ , glGetVertexAttribIiv+ , glGetVertexAttribIuiv+ , glVertexAttribI1i+ , glVertexAttribI2i+ , glVertexAttribI3i+ , glVertexAttribI4i+ , glVertexAttribI1ui+ , glVertexAttribI2ui+ , glVertexAttribI3ui+ , glVertexAttribI4ui+ , glVertexAttribI1iv+ , glVertexAttribI2iv+ , glVertexAttribI3iv+ , glVertexAttribI4iv+ , glVertexAttribI1uiv+ , glVertexAttribI2uiv+ , glVertexAttribI3uiv+ , glVertexAttribI4uiv+ , glVertexAttribI4bv+ , glVertexAttribI4sv+ , glVertexAttribI4ubv+ , glVertexAttribI4usv+ , glGetUniformuiv+ , glBindFragDataLocation+ , glGetFragDataLocation+ , glUniform1ui+ , glUniform2ui+ , glUniform3ui+ , glUniform4ui+ , glUniform1uiv+ , glUniform2uiv+ , glUniform3uiv+ , glUniform4uiv+ , glTexParameterIiv+ , glTexParameterIuiv+ , glGetTexParameterIiv+ , glGetTexParameterIuiv+ , glClearBufferiv+ , glClearBufferuiv+ , glClearBufferfv+ , glClearBufferfi+ , glGetStringi+ , glIsRenderbuffer+ , glBindRenderbuffer+ , glDeleteRenderbuffers+ , glGenRenderbuffers+ , glRenderbufferStorage+ , glGetRenderbufferParameteriv+ , glIsFramebuffer+ , glBindFramebuffer+ , glDeleteFramebuffers+ , glGenFramebuffers+ , glCheckFramebufferStatus+ , glFramebufferTexture1D+ , glFramebufferTexture2D+ , glFramebufferTexture3D+ , glFramebufferRenderbuffer+ , glGetFramebufferAttachmentParameteriv+ , glGenerateMipmap+ , glBlitFramebuffer+ , glRenderbufferStorageMultisample+ , glFramebufferTextureLayer+ , glMapBufferRange+ , glFlushMappedBufferRange+ , glBindVertexArray+ , glDeleteVertexArrays+ , glGenVertexArrays+ , glIsVertexArray+ , glDrawArraysInstanced+ , glDrawElementsInstanced+ , glTexBuffer+ , glPrimitiveRestartIndex+ , glCopyBufferSubData+ , glGetUniformIndices+ , glGetActiveUniformsiv+ , glGetActiveUniformName+ , glGetUniformBlockIndex+ , glGetActiveUniformBlockiv+ , glGetActiveUniformBlockName+ , glUniformBlockBinding+ , glDrawElementsBaseVertex+ , glDrawRangeElementsBaseVertex+ , glDrawElementsInstancedBaseVertex+ , glMultiDrawElementsBaseVertex+ , glProvokingVertex+ , glFenceSync+ , glIsSync+ , glDeleteSync+ , glClientWaitSync+ , glWaitSync+ , glGetInteger64v+ , glGetSynciv+ , glGetInteger64i_v+ , glGetBufferParameteri64v+ , glFramebufferTexture+ , glTexImage2DMultisample+ , glTexImage3DMultisample+ , glGetMultisamplefv+ , glSampleMaski+ , glBindFragDataLocationIndexed+ , glGetFragDataIndex+ , glGenSamplers+ , glDeleteSamplers+ , glIsSampler+ , glBindSampler+ , glSamplerParameteri+ , glSamplerParameteriv+ , glSamplerParameterf+ , glSamplerParameterfv+ , glSamplerParameterIiv+ , glSamplerParameterIuiv+ , glGetSamplerParameteriv+ , glGetSamplerParameterIiv+ , glGetSamplerParameterfv+ , glGetSamplerParameterIuiv+ , glQueryCounter+ , glGetQueryObjecti64v+ , glGetQueryObjectui64v+ , glVertexAttribDivisor+ , glVertexAttribP1ui+ , glVertexAttribP1uiv+ , glVertexAttribP2ui+ , glVertexAttribP2uiv+ , glVertexAttribP3ui+ , glVertexAttribP3uiv+ , glVertexAttribP4ui+ , glVertexAttribP4uiv+ , glTexStorage1D+ , glTexStorage2D+ , glTexStorage3D+ , glDebugMessageControl+ , glDebugMessageInsert+ , glDebugMessageCallback+ , glGetDebugMessageLog+ , glPushDebugGroup+ , glPopDebugGroup+ , glObjectLabel+ , glGetObjectLabel+ , glObjectPtrLabel+ , glGetObjectPtrLabel+ , glGetPointerv+ , glDebugMessageControlKHR+ , glDebugMessageInsertKHR+ , glDebugMessageCallbackKHR+ , glGetDebugMessageLogKHR+ , glPushDebugGroupKHR+ , glPopDebugGroupKHR+ , glObjectLabelKHR+ , glGetObjectLabelKHR+ , glObjectPtrLabelKHR+ , glGetObjectPtrLabelKHR+ , glGetPointervKHR+ , glMatrixLoadfEXT+ , glMatrixLoaddEXT+ , glMatrixMultfEXT+ , glMatrixMultdEXT+ , glMatrixLoadIdentityEXT+ , glMatrixRotatefEXT+ , glMatrixRotatedEXT+ , glMatrixScalefEXT+ , glMatrixScaledEXT+ , glMatrixTranslatefEXT+ , glMatrixTranslatedEXT+ , glMatrixFrustumEXT+ , glMatrixOrthoEXT+ , glMatrixPopEXT+ , glMatrixPushEXT+ , glClientAttribDefaultEXT+ , glPushClientAttribDefaultEXT+ , glTextureParameterfEXT+ , glTextureParameterfvEXT+ , glTextureParameteriEXT+ , glTextureParameterivEXT+ , glTextureImage1DEXT+ , glTextureImage2DEXT+ , glTextureSubImage1DEXT+ , glTextureSubImage2DEXT+ , glCopyTextureImage1DEXT+ , glCopyTextureImage2DEXT+ , glCopyTextureSubImage1DEXT+ , glCopyTextureSubImage2DEXT+ , glGetTextureImageEXT+ , glGetTextureParameterfvEXT+ , glGetTextureParameterivEXT+ , glGetTextureLevelParameterfvEXT+ , glGetTextureLevelParameterivEXT+ , glTextureImage3DEXT+ , glTextureSubImage3DEXT+ , glCopyTextureSubImage3DEXT+ , glBindMultiTextureEXT+ , glMultiTexCoordPointerEXT+ , glMultiTexEnvfEXT+ , glMultiTexEnvfvEXT+ , glMultiTexEnviEXT+ , glMultiTexEnvivEXT+ , glMultiTexGendEXT+ , glMultiTexGendvEXT+ , glMultiTexGenfEXT+ , glMultiTexGenfvEXT+ , glMultiTexGeniEXT+ , glMultiTexGenivEXT+ , glGetMultiTexEnvfvEXT+ , glGetMultiTexEnvivEXT+ , glGetMultiTexGendvEXT+ , glGetMultiTexGenfvEXT+ , glGetMultiTexGenivEXT+ , glMultiTexParameteriEXT+ , glMultiTexParameterivEXT+ , glMultiTexParameterfEXT+ , glMultiTexParameterfvEXT+ , glMultiTexImage1DEXT+ , glMultiTexImage2DEXT+ , glMultiTexSubImage1DEXT+ , glMultiTexSubImage2DEXT+ , glCopyMultiTexImage1DEXT+ , glCopyMultiTexImage2DEXT+ , glCopyMultiTexSubImage1DEXT+ , glCopyMultiTexSubImage2DEXT+ , glGetMultiTexImageEXT+ , glGetMultiTexParameterfvEXT+ , glGetMultiTexParameterivEXT+ , glGetMultiTexLevelParameterfvEXT+ , glGetMultiTexLevelParameterivEXT+ , glMultiTexImage3DEXT+ , glMultiTexSubImage3DEXT+ , glCopyMultiTexSubImage3DEXT+ , glEnableClientStateIndexedEXT+ , glDisableClientStateIndexedEXT+ , glGetFloatIndexedvEXT+ , glGetDoubleIndexedvEXT+ , glGetPointerIndexedvEXT+ , glEnableIndexedEXT+ , glDisableIndexedEXT+ , glIsEnabledIndexedEXT+ , glGetIntegerIndexedvEXT+ , glGetBooleanIndexedvEXT+ , glCompressedTextureImage3DEXT+ , glCompressedTextureImage2DEXT+ , glCompressedTextureImage1DEXT+ , glCompressedTextureSubImage3DEXT+ , glCompressedTextureSubImage2DEXT+ , glCompressedTextureSubImage1DEXT+ , glGetCompressedTextureImageEXT+ , glCompressedMultiTexImage3DEXT+ , glCompressedMultiTexImage2DEXT+ , glCompressedMultiTexImage1DEXT+ , glCompressedMultiTexSubImage3DEXT+ , glCompressedMultiTexSubImage2DEXT+ , glCompressedMultiTexSubImage1DEXT+ , glGetCompressedMultiTexImageEXT+ , glMatrixLoadTransposefEXT+ , glMatrixLoadTransposedEXT+ , glMatrixMultTransposefEXT+ , glMatrixMultTransposedEXT+ , glNamedBufferDataEXT+ , glNamedBufferSubDataEXT+ , glMapNamedBufferEXT+ , glUnmapNamedBufferEXT+ , glGetNamedBufferParameterivEXT+ , glGetNamedBufferPointervEXT+ , glGetNamedBufferSubDataEXT+ , glProgramUniform1fEXT+ , glProgramUniform2fEXT+ , glProgramUniform3fEXT+ , glProgramUniform4fEXT+ , glProgramUniform1iEXT+ , glProgramUniform2iEXT+ , glProgramUniform3iEXT+ , glProgramUniform4iEXT+ , glProgramUniform1fvEXT+ , glProgramUniform2fvEXT+ , glProgramUniform3fvEXT+ , glProgramUniform4fvEXT+ , glProgramUniform1ivEXT+ , glProgramUniform2ivEXT+ , glProgramUniform3ivEXT+ , glProgramUniform4ivEXT+ , glProgramUniformMatrix2fvEXT+ , glProgramUniformMatrix3fvEXT+ , glProgramUniformMatrix4fvEXT+ , glProgramUniformMatrix2x3fvEXT+ , glProgramUniformMatrix3x2fvEXT+ , glProgramUniformMatrix2x4fvEXT+ , glProgramUniformMatrix4x2fvEXT+ , glProgramUniformMatrix3x4fvEXT+ , glProgramUniformMatrix4x3fvEXT+ , glTextureBufferEXT+ , glMultiTexBufferEXT+ , glTextureParameterIivEXT+ , glTextureParameterIuivEXT+ , glGetTextureParameterIivEXT+ , glGetTextureParameterIuivEXT+ , glMultiTexParameterIivEXT+ , glMultiTexParameterIuivEXT+ , glGetMultiTexParameterIivEXT+ , glGetMultiTexParameterIuivEXT+ , glProgramUniform1uiEXT+ , glProgramUniform2uiEXT+ , glProgramUniform3uiEXT+ , glProgramUniform4uiEXT+ , glProgramUniform1uivEXT+ , glProgramUniform2uivEXT+ , glProgramUniform3uivEXT+ , glProgramUniform4uivEXT+ , glNamedProgramLocalParameters4fvEXT+ , glNamedProgramLocalParameterI4iEXT+ , glNamedProgramLocalParameterI4ivEXT+ , glNamedProgramLocalParametersI4ivEXT+ , glNamedProgramLocalParameterI4uiEXT+ , glNamedProgramLocalParameterI4uivEXT+ , glNamedProgramLocalParametersI4uivEXT+ , glGetNamedProgramLocalParameterIivEXT+ , glGetNamedProgramLocalParameterIuivEXT+ , glEnableClientStateiEXT+ , glDisableClientStateiEXT+ , glGetFloati_vEXT+ , glGetDoublei_vEXT+ , glGetPointeri_vEXT+ , glNamedProgramStringEXT+ , glNamedProgramLocalParameter4dEXT+ , glNamedProgramLocalParameter4dvEXT+ , glNamedProgramLocalParameter4fEXT+ , glNamedProgramLocalParameter4fvEXT+ , glGetNamedProgramLocalParameterdvEXT+ , glGetNamedProgramLocalParameterfvEXT+ , glGetNamedProgramivEXT+ , glGetNamedProgramStringEXT+ , glNamedRenderbufferStorageEXT+ , glGetNamedRenderbufferParameterivEXT+ , glNamedRenderbufferStorageMultisampleEXT+ , glNamedRenderbufferStorageMultisampleCoverageEXT+ , glCheckNamedFramebufferStatusEXT+ , glNamedFramebufferTexture1DEXT+ , glNamedFramebufferTexture2DEXT+ , glNamedFramebufferTexture3DEXT+ , glNamedFramebufferRenderbufferEXT+ , glGetNamedFramebufferAttachmentParameterivEXT+ , glGenerateTextureMipmapEXT+ , glGenerateMultiTexMipmapEXT+ , glFramebufferDrawBufferEXT+ , glFramebufferDrawBuffersEXT+ , glFramebufferReadBufferEXT+ , glGetFramebufferParameterivEXT+ , glNamedCopyBufferSubDataEXT+ , glNamedFramebufferTextureEXT+ , glNamedFramebufferTextureLayerEXT+ , glNamedFramebufferTextureFaceEXT+ , glTextureRenderbufferEXT+ , glMultiTexRenderbufferEXT+ , glVertexArrayVertexOffsetEXT+ , glVertexArrayColorOffsetEXT+ , glVertexArrayEdgeFlagOffsetEXT+ , glVertexArrayIndexOffsetEXT+ , glVertexArrayNormalOffsetEXT+ , glVertexArrayTexCoordOffsetEXT+ , glVertexArrayMultiTexCoordOffsetEXT+ , glVertexArrayFogCoordOffsetEXT+ , glVertexArraySecondaryColorOffsetEXT+ , glVertexArrayVertexAttribOffsetEXT+ , glVertexArrayVertexAttribIOffsetEXT+ , glEnableVertexArrayEXT+ , glDisableVertexArrayEXT+ , glEnableVertexArrayAttribEXT+ , glDisableVertexArrayAttribEXT+ , glGetVertexArrayIntegervEXT+ , glGetVertexArrayPointervEXT+ , glGetVertexArrayIntegeri_vEXT+ , glGetVertexArrayPointeri_vEXT+ , glMapNamedBufferRangeEXT+ , glFlushMappedNamedBufferRangeEXT+ , glNamedBufferStorageEXT+ , glClearNamedBufferDataEXT+ , glClearNamedBufferSubDataEXT+ , glNamedFramebufferParameteriEXT+ , glGetNamedFramebufferParameterivEXT+ , glProgramUniform1dEXT+ , glProgramUniform2dEXT+ , glProgramUniform3dEXT+ , glProgramUniform4dEXT+ , glProgramUniform1dvEXT+ , glProgramUniform2dvEXT+ , glProgramUniform3dvEXT+ , glProgramUniform4dvEXT+ , glProgramUniformMatrix2dvEXT+ , glProgramUniformMatrix3dvEXT+ , glProgramUniformMatrix4dvEXT+ , glProgramUniformMatrix2x3dvEXT+ , glProgramUniformMatrix2x4dvEXT+ , glProgramUniformMatrix3x2dvEXT+ , glProgramUniformMatrix3x4dvEXT+ , glProgramUniformMatrix4x2dvEXT+ , glProgramUniformMatrix4x3dvEXT+ , glTextureBufferRangeEXT+ , glTextureStorage1DEXT+ , glTextureStorage2DEXT+ , glTextureStorage3DEXT+ , glTextureStorage2DMultisampleEXT+ , glTextureStorage3DMultisampleEXT+ , glVertexArrayBindVertexBufferEXT+ , glVertexArrayVertexAttribFormatEXT+ , glVertexArrayVertexAttribIFormatEXT+ , glVertexArrayVertexAttribLFormatEXT+ , glVertexArrayVertexAttribBindingEXT+ , glVertexArrayVertexBindingDivisorEXT+ , glVertexArrayVertexAttribLOffsetEXT+ , glTexturePageCommitmentEXT+ , glVertexArrayVertexAttribDivisorEXT+ , glBufferStorage+ , glUseProgramStages+ , glActiveShaderProgram+ , glCreateShaderProgramv+ , glBindProgramPipeline+ , glDeleteProgramPipelines+ , glGenProgramPipelines+ , glIsProgramPipeline+ , glGetProgramPipelineiv+ , glProgramUniform1i+ , glProgramUniform1iv+ , glProgramUniform1f+ , glProgramUniform1fv+ , glProgramUniform1d+ , glProgramUniform1dv+ , glProgramUniform1ui+ , glProgramUniform1uiv+ , glProgramUniform2i+ , glProgramUniform2iv+ , glProgramUniform2f+ , glProgramUniform2fv+ , glProgramUniform2d+ , glProgramUniform2dv+ , glProgramUniform2ui+ , glProgramUniform2uiv+ , glProgramUniform3i+ , glProgramUniform3iv+ , glProgramUniform3f+ , glProgramUniform3fv+ , glProgramUniform3d+ , glProgramUniform3dv+ , glProgramUniform3ui+ , glProgramUniform3uiv+ , glProgramUniform4i+ , glProgramUniform4iv+ , glProgramUniform4f+ , glProgramUniform4fv+ , glProgramUniform4d+ , glProgramUniform4dv+ , glProgramUniform4ui+ , glProgramUniform4uiv+ , glProgramUniformMatrix2fv+ , glProgramUniformMatrix3fv+ , glProgramUniformMatrix4fv+ , glProgramUniformMatrix2dv+ , glProgramUniformMatrix3dv+ , glProgramUniformMatrix4dv+ , glProgramUniformMatrix2x3fv+ , glProgramUniformMatrix3x2fv+ , glProgramUniformMatrix2x4fv+ , glProgramUniformMatrix4x2fv+ , glProgramUniformMatrix3x4fv+ , glProgramUniformMatrix4x3fv+ , glProgramUniformMatrix2x3dv+ , glProgramUniformMatrix3x2dv+ , glProgramUniformMatrix2x4dv+ , glProgramUniformMatrix4x2dv+ , glProgramUniformMatrix3x4dv+ , glProgramUniformMatrix4x3dv+ , glValidateProgramPipeline+ , glGetProgramPipelineInfoLog+ , glInvalidateTexSubImage+ , glInvalidateTexImage+ , glInvalidateBufferSubData+ , glInvalidateBufferData+ , glInvalidateFramebuffer+ , glInvalidateSubFramebuffer+ , gl_UNSIGNED_INT_10_10_10_2_EXT+ , gl_ACTIVE_RESOURCES+ , gl_MAX_GEOMETRY_SHADER_INVOCATIONS+ , gl_RESTART_PATH_NV+ , gl_MAX_DEEP_3D_TEXTURE_DEPTH_NV+ , gl_PACK_SKIP_IMAGES+ , gl_IMAGE_CLASS_2_X_16+ , gl_FRAMEBUFFER_COMPLETE+ , gl_HSL_LUMINOSITY_NV+ , gl_IMAGE_BINDING_LAYERED_EXT+ , gl_ZOOM_Y+ , gl_TEXTURE_LUMINANCE_TYPE_ARB+ , gl_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB+ , gl_TEXTURE_HEIGHT+ , gl_OUTPUT_TEXTURE_COORD0_EXT+ , gl_FLOAT_CLEAR_COLOR_VALUE_NV+ , gl_LIGHT_MODEL_AMBIENT+ , gl_INT16_VEC3_NV+ , gl_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV+ , gl_MATRIX6_NV+ , gl_COMPUTE_PROGRAM_NV+ , gl_SCALED_RESOLVE_FASTEST_EXT+ , gl_REPLACEMENT_CODE_ARRAY_SUN+ , gl_TEXTURE_DT_SIZE_NV+ , gl_NUM_SPARSE_LEVELS_ARB+ , gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR+ , gl_NO_ERROR+ , gl_INTERNALFORMAT_ALPHA_TYPE+ , gl_FONT_HEIGHT_BIT_NV+ , gl_TANGENT_ARRAY_POINTER_EXT+ , gl_LOCAL_CONSTANT_VALUE_EXT+ , gl_READ_WRITE+ , gl_TEXTURE_2D+ , gl_UNSIGNED_INT_2_10_10_10_REV_EXT+ , gl_TEXTURE_WRAP_R+ , gl_FLOAT_MAT4x2+ , gl_MAX_COMPUTE_WORK_GROUP_SIZE+ , gl_POLYGON_OFFSET_CLAMP_EXT+ , gl_SYNC_FLUSH_COMMANDS_BIT+ , gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB+ , gl_INT_IMAGE_BUFFER+ , gl_VERTEX_ATTRIB_ARRAY_TYPE+ , gl_ONE+ , gl_COLOR_CLEAR_UNCLAMPED_VALUE_ATI+ , gl_TRANSLATE_X_NV+ , gl_HI_SCALE_NV+ , gl_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT+ , gl_HILO_NV+ , gl_TRIANGLES+ , gl_LINEARLIGHT_NV+ , gl_MAX_3D_TEXTURE_SIZE_OES+ , gl_ANY_SAMPLES_PASSED_CONSERVATIVE+ , gl_UNIFORM_BLOCK_BINDING+ , gl_MAX_TESS_CONTROL_INPUT_COMPONENTS+ , gl_TEXTURE_ALPHA_TYPE_ARB+ , gl_MAX_CONVOLUTION_HEIGHT+ , gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS+ , gl_DEPTH_BUFFER_BIT5_QCOM+ , gl_PROGRAM_TEX_INDIRECTIONS_ARB+ , gl_BLUE+ , gl_RGBA_S3TC+ , gl_DECR+ , gl_MAJOR_VERSION+ , gl_ARRAY_STRIDE+ , gl_CONSTANT_COLOR1_NV+ , gl_SAMPLES_EXT+ , gl_MAX_SAMPLES_APPLE+ , gl_COLOR_ARRAY_SIZE+ , gl_SAMPLE_ALPHA_TO_MASK_SGIS+ , gl_DUP_LAST_CUBIC_CURVE_TO_NV+ , gl_TEXTURE10+ , gl_R1UI_T2F_C4F_N3F_V3F_SUN+ , gl_MAX_VARYING_COMPONENTS+ , gl_DRAW_BUFFER7_EXT+ , gl_MAX_COMBINED_ATOMIC_COUNTERS+ , gl_PROGRAM_ERROR_STRING_ARB+ , gl_TRACE_ALL_BITS_MESA+ , gl_DEPTH_CLAMP_NV+ , gl_REDUCE+ , gl_UNSIGNED_SHORT_4_4_4_4+ , gl_SKIP_COMPONENTS1_NV+ , gl_PIXEL_TILE_CACHE_INCREMENT_SGIX+ , gl_COLOR_ARRAY+ , gl_STATIC_VERTEX_ARRAY_IBM+ , gl_INDEX_BIT_PGI+ , gl_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT+ , gl_ETC1_SRGB8_NV+ , gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS+ , gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT+ , gl_LIGHT_MODEL_COLOR_CONTROL_EXT+ , gl_PATCH_DEFAULT_OUTER_LEVEL_EXT+ , gl_SAMPLER_CUBE_ARB+ , gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT+ , gl_STORAGE_PRIVATE_APPLE+ , gl_MAP1_TEXTURE_COORD_2+ , gl_REPLACEMENT_CODE_ARRAY_STRIDE_SUN+ , gl_VERTEX_ATTRIB_ARRAY8_NV+ , gl_LUMINANCE16F_ARB+ , gl_DEPTH_COMPONENT32F_NV+ , gl_MAX_VERTEX_BINDABLE_UNIFORMS_EXT+ , gl_MATRIX28_ARB+ , gl_SYNC_FLUSH_COMMANDS_BIT_APPLE+ , gl_READ_FRAMEBUFFER_BINDING_ANGLE+ , gl_FOG_COORDINATE_ARRAY_TYPE+ , gl_RGBA32UI_EXT+ , gl_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG+ , gl_2_BYTES_NV+ , gl_TEXTURE_HI_SIZE_NV+ , gl_PACK_SWAP_BYTES+ , gl_EVAL_FRACTIONAL_TESSELLATION_NV+ , gl_RG16+ , gl_SWIZZLE_STR_ATI+ , gl_CON_6_ATI+ , gl_PATH_FOG_GEN_MODE_NV+ , gl_SRGB8_ALPHA8_EXT+ , gl_COMPRESSED_SLUMINANCE_ALPHA_EXT+ , gl_TEXTURE_COMPARE_FUNC_EXT+ , gl_UNIFORM_MATRIX_STRIDE+ , gl_INVALID_OPERATION+ , gl_DRAW_BUFFER4_ATI+ , gl_BYTE+ , gl_SECONDARY_COLOR_ARRAY_POINTER+ , gl_TEXTURE_CUBE_MAP_POSITIVE_X+ , gl_TEXTURE_2D_ARRAY+ , gl_OFFSET_TEXTURE_MATRIX_NV+ , gl_FLOAT_MAT2x4+ , gl_REG_31_ATI+ , gl_DEBUG_TYPE_PORTABILITY+ , gl_SAMPLER_2D_ARB+ , gl_DRAW_BUFFER11+ , gl_MAX_COMPUTE_WORK_GROUP_INVOCATIONS+ , gl_TEXTURE5_ARB+ , gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT+ , gl_COLOR_TABLE_SCALE+ , gl_POINT_FADE_THRESHOLD_SIZE_SGIS+ , gl_MAX_SPARSE_3D_TEXTURE_SIZE_ARB+ , gl_ACCUM_CLEAR_VALUE+ , gl_OPERAND0_ALPHA_EXT+ , gl_QUERY_NO_WAIT+ , gl_PRIMITIVE_RESTART+ , gl_STENCIL_ATTACHMENT_OES+ , gl_BUFFER_USAGE+ , gl_COLOR_TABLE_BLUE_SIZE+ , gl_VERTEX_ARRAY_SIZE_EXT+ , gl_ALPHA8+ , gl_PROXY_TEXTURE_2D+ , gl_HALF_BIT_ATI+ , gl_TRANSPOSE_MODELVIEW_MATRIX+ , gl_DRAW_BUFFER3+ , gl_4PASS_2_SGIS+ , gl_MAX_GEOMETRY_OUTPUT_COMPONENTS+ , gl_SAMPLER_2D_ARRAY_SHADOW_EXT+ , gl_TEXTURE_FORMAT_QCOM+ , gl_RGB16_SNORM+ , gl_DRAW_BUFFER8_NV+ , gl_AUX_BUFFERS+ , gl_CONVOLUTION_HINT_SGIX+ , gl_FOG_COLOR+ , gl_COLOR_TABLE_RED_SIZE_SGI+ , gl_FUNC_SUBTRACT_OES+ , gl_LUMINANCE_ALPHA16F_ARB+ , gl_MODELVIEW10_ARB+ , gl_LOGIC_OP+ , gl_PROGRAM_NATIVE_INSTRUCTIONS_ARB+ , gl_SOURCE0_ALPHA_EXT+ , gl_INDEX_SHIFT+ , gl_PIXEL_FRAGMENT_RGB_SOURCE_SGIS+ , gl_RG32F_EXT+ , gl_GEOMETRY_LINKED_VERTICES_OUT_EXT+ , gl_STACK_UNDERFLOW_KHR+ , gl_TESS_GEN_POINT_MODE_EXT+ , gl_BUFFER_ACCESS_ARB+ , gl_DOT_PRODUCT_NV+ , gl_INVERTED_SCREEN_W_REND+ , gl_REG_11_ATI+ , gl_MAX_FRAMEZOOM_FACTOR_SGIX+ , gl_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD+ , gl_MATRIX20_ARB+ , gl_EVAL_VERTEX_ATTRIB1_NV+ , gl_COLOR_ATTACHMENT10_NV+ , gl_OUTPUT_TEXTURE_COORD28_EXT+ , gl_MAX_TEXTURE_COORDS_ARB+ , gl_COLOR_ARRAY_PARALLEL_POINTERS_INTEL+ , gl_MAX_COMBINED_SHADER_OUTPUT_RESOURCES+ , gl_RENDERBUFFER_BLUE_SIZE+ , gl_MULTISAMPLE_BIT+ , gl_CURRENT_PROGRAM+ , gl_AUX_DEPTH_STENCIL_APPLE+ , gl_LUMINANCE8_ALPHA8_EXT+ , gl_VIDEO_CAPTURE_SURFACE_ORIGIN_NV+ , gl_INTERLACE_OML+ , gl_REG_27_ATI+ , gl_UNSIGNED_INT_24_8_OES+ , gl_COMBINER_AB_OUTPUT_NV+ , gl_CURRENT_RASTER_INDEX+ , gl_SYNC_FENCE_APPLE+ , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT+ , gl_MAX_TEXTURE_SIZE+ , gl_TEXTURE24+ , gl_STENCIL_BACK_FUNC+ , gl_LUMINANCE12+ , gl_PARAMETER_BUFFER_ARB+ , gl_AUX2+ , gl_SLICE_ACCUM_SUN+ , gl_COLOR_TABLE_ALPHA_SIZE+ , gl_TEXTURE_CUBE_MAP_POSITIVE_X_EXT+ , gl_DRAW_FRAMEBUFFER_BINDING_ANGLE+ , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER+ , gl_SUBTRACT+ , gl_MAX_PROGRAM_IF_DEPTH_NV+ , gl_T2F_C4F_N3F_V3F+ , gl_ACTIVE_SUBROUTINE_UNIFORMS+ , gl_EMBOSS_LIGHT_NV+ , gl_POINT_SIZE_RANGE+ , gl_GEOMETRY_LINKED_OUTPUT_TYPE_EXT+ , gl_CLAMP_TO_BORDER+ , gl_TEXTURE_BUFFER_OFFSET_EXT+ , gl_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV+ , gl_COMPRESSED_INTENSITY+ , gl_MAX_PROGRAM_OUTPUT_VERTICES_NV+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES+ , gl_MAX_PROGRAM_ATTRIBS_ARB+ , gl_POST_COLOR_MATRIX_GREEN_SCALE_SGI+ , gl_TEXTURE_3D_BINDING_EXT+ , gl_SHADER_STORAGE_BUFFER_START+ , gl_MAP2_INDEX+ , gl_CONSTANT_COLOR_EXT+ , gl_RG32UI+ , gl_BGRA+ , gl_FRAGMENT_DEPTH_EXT+ , gl_GENERATE_MIPMAP_HINT_SGIS+ , gl_DIFFERENCE_NV+ , gl_UNSIGNED_SHORT_1_15_REV_MESA+ , gl_PROGRAM_BINARY_RETRIEVABLE_HINT+ , gl_RGBA32I+ , gl_UNSIGNED_INT_8_8_8_8+ , gl_DOMAIN+ , gl_COLOR_MATRIX+ , gl_PROGRAM_NATIVE_ATTRIBS_ARB+ , gl_OP_ROUND_EXT+ , gl_VIEW_CLASS_96_BITS+ , gl_TEXTURE_WRAP_R_OES+ , gl_VERTEX_ARRAY_TYPE+ , gl_VIDEO_BUFFER_INTERNAL_FORMAT_NV+ , gl_PIXEL_MAP_R_TO_R_SIZE+ , gl_UNSIGNED_NORMALIZED_ARB+ , gl_UNSIGNED_INT8_VEC3_NV+ , gl_COMPRESSED_RGBA8_ETC2_EAC_OES+ , gl_HI_BIAS_NV+ , gl_SECONDARY_COLOR_ARRAY_EXT+ , gl_BUFFER_MAP_OFFSET+ , gl_LUMINANCE4_ALPHA4_OES+ , gl_FORMAT_SUBSAMPLE_244_244_OML+ , gl_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA+ , gl_PLUS_CLAMPED_ALPHA_NV+ , gl_COLOR_ATTACHMENT0_NV+ , gl_COMPRESSED_RGB_S3TC_DXT1_EXT+ , gl_GEOMETRY_OUTPUT_TYPE+ , gl_INTENSITY8_EXT+ , gl_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT+ , gl_COMPRESSED_RED_GREEN_RGTC2_EXT+ , gl_DEBUG_SOURCE_API_KHR+ , gl_BLEND_PREMULTIPLIED_SRC_NV+ , gl_CLIENT_STORAGE_BIT+ , gl_INTENSITY12_EXT+ , gl_MATRIX_INDEX_ARRAY_STRIDE_OES+ , gl_CURRENT_RASTER_SECONDARY_COLOR+ , gl_REPLACE+ , gl_LINEAR+ , gl_COMBINER_INPUT_NV+ , gl_TRANSFORM_FEEDBACK_VARYINGS+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES+ , gl_IMAGE_BINDING_ACCESS+ , gl_NUM_LOOPBACK_COMPONENTS_ATI+ , gl_ARRAY_ELEMENT_LOCK_COUNT_EXT+ , gl_REPLACEMENT_CODE_ARRAY_POINTER_SUN+ , gl_TEXTURE_4DSIZE_SGIS+ , gl_COUNTER_RANGE_AMD+ , gl_RGB8_OES+ , gl_ALPHA16F_EXT+ , gl_C4F_N3F_V3F+ , gl_NEAREST_MIPMAP_LINEAR+ , gl_DEBUG_SEVERITY_LOW_KHR+ , gl_DISCARD_ATI+ , gl_LOCAL_CONSTANT_DATATYPE_EXT+ , gl_MAX_GEOMETRY_INPUT_COMPONENTS_EXT+ , gl_LOWER_LEFT+ , gl_RENDERBUFFER_HEIGHT_OES+ , gl_SPRITE_MODE_SGIX+ , gl_REPLACEMENT_CODE_ARRAY_TYPE_SUN+ , gl_UNSIGNED_INT8_VEC2_NV+ , gl_NONE_OES+ , gl_POINT_SIZE_MIN_ARB+ , gl_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV+ , gl_RENDERBUFFER_DEPTH_SIZE_EXT+ , gl_BUFFER_MAP_LENGTH+ , gl_WRITE_ONLY+ , gl_NEAREST_CLIPMAP_NEAREST_SGIX+ , gl_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV+ , gl_ALREADY_SIGNALED_APPLE+ , gl_REPLICATE_BORDER+ , gl_SUBPIXEL_BITS+ , gl_ALPHA_MIN_SGIX+ , gl_BLUE_BIT_ATI+ , gl_UNSIGNED_INT_IMAGE_2D_EXT+ , gl_TRANSFORM_FEEDBACK_VARYINGS_EXT+ , gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT+ , gl_PIXEL_COUNTER_BITS_NV+ , gl_422_REV_AVERAGE_EXT+ , gl_TEXTURE_RESIDENT_EXT+ , gl_STENCIL_WRITEMASK+ , gl_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES+ , gl_FLOAT_VEC3_ARB+ , gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM+ , gl_DYNAMIC_STORAGE_BIT+ , gl_DRAW_FRAMEBUFFER_BINDING_APPLE+ , gl_CLIP_PLANE4_IMG+ , gl_CON_26_ATI+ , gl_COMPRESSED_SIGNED_R11_EAC_OES+ , gl_LINES_ADJACENCY_EXT+ , gl_AUTO_GENERATE_MIPMAP+ , gl_OP_EXP_BASE_2_EXT+ , gl_ATTRIB_STACK_DEPTH+ , gl_ALPHA32F_EXT+ , gl_KEEP+ , gl_TEXTURE_FILTER4_SIZE_SGIS+ , gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT+ , gl_INT_VEC3+ , gl_MATRIX_MODE+ , gl_UNSIGNED_NORMALIZED+ , gl_DEBUG_PRINT_MESA+ , gl_DST_OUT_NV+ , gl_CLEAR_BUFFER+ , gl_COMBINER_SCALE_NV+ , gl_WRITE_ONLY_OES+ , gl_422_AVERAGE_EXT+ , gl_COLOR_INDEX12_EXT+ , gl_COLOR_BUFFER_BIT0_QCOM+ , gl_CAVEAT_SUPPORT+ , gl_BLUE_INTEGER+ , gl_IUI_N3F_V2F_EXT+ , gl_VERTEX_DATA_HINT_PGI+ , gl_REG_13_ATI+ , gl_NEGATIVE_ONE_EXT+ , gl_CON_16_ATI+ , gl_TEXTURE_EXTERNAL_OES+ , gl_SHADER_TYPE+ , gl_OVERLAY_KHR+ , gl_LUMINANCE6_ALPHA2_EXT+ , gl_COLOR_TABLE_SGI+ , gl_TEXTURE_STENCIL_SIZE_EXT+ , gl_NEAREST+ , gl_RGB8I+ , gl_TEXTURE_SPARSE_ARB+ , gl_MATRIX9_ARB+ , gl_TEXTURE_TARGET+ , gl_SECONDARY_COLOR_ARRAY_TYPE_EXT+ , gl_RENDERER+ , gl_TEXTURE_BINDING_BUFFER+ , gl_INT_VEC3_ARB+ , gl_MATRIX12_ARB+ , gl_VERTEX_ATTRIB_ARRAY_ENABLED+ , gl_RENDERBUFFER_SAMPLES_NV+ , gl_COLOR_ATTACHMENT1_EXT+ , gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE+ , gl_LINEAR_DETAIL_SGIS+ , gl_CURRENT_RASTER_POSITION_VALID+ , gl_LINEAR_DETAIL_COLOR_SGIS+ , gl_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT+ , gl_POINT_SIZE_MIN_EXT+ , gl_GPU_DISJOINT_EXT+ , gl_LIGHT_MODEL_COLOR_CONTROL+ , gl_MAX_TESS_PATCH_COMPONENTS+ , gl_CURRENT_PALETTE_MATRIX_OES+ , gl_SAMPLES_SGIS+ , gl_FUNC_REVERSE_SUBTRACT_OES+ , gl_TEXTURE13_ARB+ , gl_SMOOTH_CUBIC_CURVE_TO_NV+ , gl_COMPRESSED_RGBA_ASTC_3x3x3_OES+ , gl_MODELVIEW15_ARB+ , gl_EYE_PLANE_ABSOLUTE_NV+ , gl_READ_FRAMEBUFFER_BINDING_NV+ , gl_RENDERBUFFER_RED_SIZE+ , gl_PIXEL_PACK_BUFFER_BINDING_EXT+ , gl_MAX_RENDERBUFFER_SIZE+ , gl_DOUBLE_MAT4_EXT+ , gl_COMPRESSED_R11_EAC+ , gl_INT_IMAGE_2D_RECT+ , gl_MAD_ATI+ , gl_IMAGE_CLASS_4_X_32+ , gl_VIDEO_COLOR_CONVERSION_OFFSET_NV+ , gl_BOOL_VEC4+ , gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB+ , gl_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES+ , gl_HISTOGRAM_FORMAT_EXT+ , gl_UNSIGNED_INT_8_8_8_8_REV_EXT+ , gl_R1UI_C3F_V3F_SUN+ , gl_SAMPLER_1D_ARRAY_SHADOW_EXT+ , gl_TEXTURE_BINDING_2D_ARRAY+ , gl_TEXTURE_RANGE_POINTER_APPLE+ , gl_SMALL_CCW_ARC_TO_NV+ , gl_SHADER_COMPILER+ , gl_DEPTH_COMPONENT24_ARB+ , gl_COLOR_ATTACHMENT14_NV+ , gl_TIME_ELAPSED+ , gl_FRAMEBUFFER_DEFAULT_LAYERS_EXT+ , gl_MATRIX11_ARB+ , gl_XOR+ , gl_HSL_SATURATION_KHR+ , gl_R1UI_T2F_V3F_SUN+ , gl_COMPUTE_WORK_GROUP_SIZE+ , gl_BLEND_EQUATION_EXT+ , gl_SAMPLER+ , gl_NUM_FRAGMENT_REGISTERS_ATI+ , gl_REG_5_ATI+ , gl_DSDT8_MAG8_INTENSITY8_NV+ , gl_PIXEL_MAP_S_TO_S_SIZE+ , gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT+ , gl_OR_REVERSE+ , gl_QUERY_BUFFER_BARRIER_BIT+ , gl_TRANSFORM_FEEDBACK_BUFFER_BINDING+ , gl_SAMPLER_1D+ , gl_COLOR_TABLE_INTENSITY_SIZE+ , gl_TRIANGLE_FAN+ , gl_POINT_SIZE_MAX_SGIS+ , gl_ELEMENT_ARRAY_POINTER_ATI+ , gl_INT_IMAGE_1D_EXT+ , gl_CONVOLUTION_FILTER_SCALE_EXT+ , gl_EVAL_VERTEX_ATTRIB8_NV+ , gl_DYNAMIC_COPY_ARB+ , gl_REG_12_ATI+ , gl_SIGNED_NORMALIZED+ , gl_REG_8_ATI+ , gl_SAMPLE_COVERAGE_ARB+ , gl_ALLOW_DRAW_MEM_HINT_PGI+ , gl_INTENSITY16F_ARB+ , gl_PATH_FORMAT_PS_NV+ , gl_TEXTURE_FREE_MEMORY_ATI+ , gl_SYNC_FENCE+ , gl_WRITE_ONLY_ARB+ , gl_INVERT+ , gl_TRANSLATE_Y_NV+ , gl_SAMPLER_3D+ , gl_LINE_STRIP_ADJACENCY+ , gl_OPERAND2_RGB_EXT+ , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG+ , gl_COLOR_ARRAY_ADDRESS_NV+ , gl_POST_CONVOLUTION_BLUE_SCALE_EXT+ , gl_HIGH_FLOAT+ , gl_TESS_GEN_MODE_EXT+ , gl_DOT_PRODUCT_TEXTURE_RECTANGLE_NV+ , gl_MAX_LABEL_LENGTH+ , gl_QUERY_BY_REGION_NO_WAIT+ , gl_OP_RECIP_EXT+ , gl_PROXY_TEXTURE_2D_ARRAY+ , gl_COMPRESSED_RGBA_FXT1_3DFX+ , gl_PRIMITIVES_GENERATED+ , gl_TEXTURE26_ARB+ , gl_TESS_EVALUATION_TEXTURE+ , gl_TEXTURE1+ , gl_TRANSFORM_FEEDBACK_RECORD_NV+ , gl_DRAW_FRAMEBUFFER_NV+ , gl_MODELVIEW8_ARB+ , gl_UNSIGNED_INT_SAMPLER_BUFFER+ , gl_CONVOLUTION_1D+ , gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV+ , gl_SAMPLER_1D_ARRAY+ , gl_TRANSFORM_FEEDBACK_BINDING+ , gl_LIGHTING_BIT+ , gl_R1UI_C4F_N3F_V3F_SUN+ , gl_TEXTURE_RED_SIZE_EXT+ , gl_VERTEX_ARRAY_KHR+ , gl_ALPHA_BITS+ , gl_MAX_VERTEX_SHADER_INVARIANTS_EXT+ , gl_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS+ , gl_SAMPLE_MASK_INVERT_EXT+ , gl_TRANSPOSE_PROGRAM_MATRIX_EXT+ , gl_ABGR_EXT+ , gl_MULTISAMPLE_BIT_3DFX+ , gl_MATRIX0_NV+ , gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING+ , gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG+ , gl_RGB9_E5+ , gl_IMAGE_2D_MULTISAMPLE_ARRAY+ , gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE+ , gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV+ , gl_GEOMETRY_PROGRAM_NV+ , gl_RGB10_EXT+ , gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT+ , gl_ALWAYS_SOFT_HINT_PGI+ , gl_WEIGHT_ARRAY_BUFFER_BINDING+ , gl_BLEND_DST_ALPHA_OES+ , gl_UNIFORM_BUFFER_BINDING_EXT+ , gl_CONTINUOUS_AMD+ , gl_STENCIL_BUFFER_BIT4_QCOM+ , gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV+ , gl_TESS_EVALUATION_SHADER_BIT+ , gl_TEXTURE_COORD_ARRAY_EXT+ , gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET+ , gl_PROGRAM_INSTRUCTIONS_ARB+ , gl_PROXY_TEXTURE_3D+ , gl_CLIP_PLANE0+ , gl_CURRENT_QUERY_EXT+ , gl_T4F_C4F_N3F_V4F+ , gl_ADD+ , gl_STENCIL_EXT+ , gl_TEXTURE_BLUE_TYPE+ , gl_OUTPUT_TEXTURE_COORD8_EXT+ , gl_OBJECT_TYPE_ARB+ , gl_RESET_NOTIFICATION_STRATEGY+ , gl_UNSIGNED_INT_VEC2_EXT+ , gl_DRAW_BUFFER6_NV+ , gl_ASYNC_DRAW_PIXELS_SGIX+ , gl_INTERNALFORMAT_GREEN_SIZE+ , gl_TEXTURE_GREEN_SIZE+ , gl_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL+ , gl_VIRTUAL_PAGE_SIZE_Y_AMD+ , gl_OP_MUL_EXT+ , gl_NORMAL_MAP+ , gl_ALPHA16_EXT+ , gl_POINT_SIZE+ , gl_INTERNALFORMAT_SUPPORTED+ , gl_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT+ , gl_DEBUG_SEVERITY_HIGH_ARB+ , gl_TEXTURE_MAX_LEVEL_SGIS+ , gl_SHADING_LANGUAGE_VERSION_ARB+ , gl_STANDARD_FONT_FORMAT_NV+ , gl_VERTEX_WEIGHT_ARRAY_SIZE_EXT+ , gl_IR_INSTRUMENT1_SGIX+ , gl_SIGNED_HILO8_NV+ , gl_RENDERBUFFER_GREEN_SIZE_OES+ , gl_REG_1_ATI+ , gl_CLAMP_TO_EDGE+ , gl_GEOMETRY_SHADER_BIT+ , gl_MODELVIEW7_ARB+ , gl_BUFFER_MAPPED_ARB+ , gl_DRAW_BUFFER12_EXT+ , gl_RGB565_OES+ , gl_SHORT+ , gl_STENCIL_BACK_FAIL_ATI+ , gl_UNSIGNED_INT_IMAGE_2D_RECT_EXT+ , gl_PATH_MAX_PROJECTION_STACK_DEPTH_NV+ , gl_CON_31_ATI+ , gl_RGB5+ , gl_SAMPLER_2D_RECT+ , gl_COMPRESSED_RGBA_ASTC_5x4x4_OES+ , gl_PASS_THROUGH_TOKEN+ , gl_RGBA_FLOAT32_ATI+ , gl_TEXTURE_COLOR_WRITEMASK_SGIS+ , gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS+ , gl_OUTPUT_TEXTURE_COORD23_EXT+ , gl_YCBYCR8_422_NV+ , gl_SRC_NV+ , gl_MAX_EXT+ , gl_UNPACK_COMPRESSED_BLOCK_DEPTH+ , gl_UNSIGNED_SHORT_5_5_5_1_EXT+ , gl_IMAGE_3D+ , gl_DEPTH_BUFFER_BIT0_QCOM+ , gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS+ , gl_DECR_WRAP_OES+ , gl_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV+ , gl_SPARSE_STORAGE_BIT_ARB+ , gl_LAST_VIDEO_CAPTURE_STATUS_NV+ , gl_LAST_VERTEX_CONVENTION+ , gl_IDENTITY_NV+ , gl_RETAINED_APPLE+ , gl_FLOAT_RGB32_NV+ , gl_DRAW_BUFFER15_ARB+ , gl_COLOR_EXT+ , gl_WEIGHT_ARRAY_TYPE_OES+ , gl_DETAIL_TEXTURE_2D_BINDING_SGIS+ , gl_BGRA8_EXT+ , gl_T2F_IUI_V3F_EXT+ , gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS+ , gl_VERTEX_ARRAY_LIST_IBM+ , gl_INDEX_ARRAY_STRIDE_EXT+ , gl_SCALE_BY_ONE_HALF_NV+ , gl_PROXY_TEXTURE_4D_SGIS+ , gl_HALF_FLOAT+ , gl_FIELD_UPPER_NV+ , gl_OCCLUSION_QUERY_EVENT_MASK_AMD+ , gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV+ , gl_VERTEX_ATTRIB_ARRAY4_NV+ , gl_CONVOLUTION_BORDER_COLOR_HP+ , gl_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT+ , gl_MODULATE+ , gl_NO_RESET_NOTIFICATION_KHR+ , gl_CURRENT_INDEX+ , gl_RED_MAX_CLAMP_INGR+ , gl_SAMPLE_ALPHA_TO_MASK_EXT+ , gl_DEBUG_CATEGORY_DEPRECATION_AMD+ , gl_EXP2+ , gl_HISTOGRAM+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR+ , gl_VERTEX_WEIGHT_ARRAY_POINTER_EXT+ , gl_READ_FRAMEBUFFER_BINDING_APPLE+ , gl_COLOR_ATTACHMENT9+ , gl_PROXY_TEXTURE_CUBE_MAP_ARB+ , gl_SIGNED_RGB8_NV+ , gl_TEXTURE_INTENSITY_SIZE+ , gl_TEXTURE_MAX_CLAMP_S_SGIX+ , gl_PATH_TRANSPOSE_PROJECTION_MATRIX_NV+ , gl_BOUNDING_BOX_OF_BOUNDING_BOXES_NV+ , gl_TEXTURE_MAX_LOD_SGIS+ , gl_LUMINANCE+ , gl_FOG_COORD_ARRAY_BUFFER_BINDING+ , gl_OFFSET_TEXTURE_2D_BIAS_NV+ , gl_FEEDBACK+ , gl_MAGNITUDE_BIAS_NV+ , gl_POST_CONVOLUTION_ALPHA_SCALE+ , gl_PATH_TERMINAL_END_CAP_NV+ , gl_GLYPH_HEIGHT_BIT_NV+ , gl_TEXTURE_STORAGE_HINT_APPLE+ , gl_MATRIX2_NV+ , gl_RGB16I+ , gl_NUM_SHADER_BINARY_FORMATS+ , gl_MULTISAMPLE_BUFFER_BIT7_QCOM+ , gl_SAMPLE_ALPHA_TO_ONE+ , gl_CON_11_ATI+ , gl_MAP2_TEXTURE_COORD_1+ , gl_DRAW_BUFFER14_ARB+ , gl_SHARPEN_TEXTURE_FUNC_POINTS_SGIS+ , gl_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB+ , gl_FLOAT_RGBA_MODE_NV+ , gl_VERTEX_ATTRIB_ARRAY9_NV+ , gl_ALPHA4+ , gl_EVAL_VERTEX_ATTRIB9_NV+ , gl_VARIANT_ARRAY_POINTER_EXT+ , gl_INDEX_TEST_EXT+ , gl_MAX_RENDERBUFFER_SIZE_EXT+ , gl_MAP1_GRID_SEGMENTS+ , gl_DETAIL_TEXTURE_MODE_SGIS+ , gl_LINEARBURN_NV+ , gl_SOURCE2_ALPHA+ , gl_COLOR_ATTACHMENT9_EXT+ , gl_RENDERBUFFER_OES+ , gl_RGBA8UI+ , gl_MIPMAP+ , gl_SMOOTH_LINE_WIDTH_RANGE+ , gl_COMBINER7_NV+ , gl_VIEW_CLASS_64_BITS+ , gl_SAMPLE_MASK_VALUE_SGIS+ , gl_MAX_SHADER_STORAGE_BUFFER_BINDINGS+ , gl_ALPHA32UI_EXT+ , gl_NONE+ , gl_MATRIX25_ARB+ , gl_DUAL_LUMINANCE_ALPHA4_SGIS+ , gl_PATCH_VERTICES+ , gl_COLOR_MATERIAL_PARAMETER+ , gl_NUM_PROGRAM_BINARY_FORMATS+ , gl_PACK_ROW_LENGTH+ , gl_RENDERBUFFER_BINDING_EXT+ , gl_FORMAT_SUBSAMPLE_24_24_OML+ , gl_RELATIVE_ROUNDED_RECT4_NV+ , gl_TEXTURE3+ , gl_DEPTH_COMPONENT16_SGIX+ , gl_SAMPLER_2D_SHADOW_EXT+ , gl_MIN_MAP_BUFFER_ALIGNMENT+ , gl_PROXY_TEXTURE_2D_ARRAY_EXT+ , gl_WEIGHT_ARRAY_TYPE_ARB+ , gl_LOW_INT+ , gl_DRAW_BUFFER11_ATI+ , gl_MAX_ELEMENTS_VERTICES_EXT+ , gl_COMPRESSED_RED_RGTC1_EXT+ , gl_RGBA+ , gl_DRAW_BUFFER0_ARB+ , gl_TEXTURE_RED_TYPE+ , gl_FENCE_APPLE+ , gl_MAX_CONVOLUTION_WIDTH_EXT+ , gl_UNSIGNED_INVERT_NV+ , gl_LIGHT6+ , gl_STREAM_COPY+ , gl_INSTRUMENT_BUFFER_POINTER_SGIX+ , gl_MODELVIEW+ , gl_RGB32F+ , gl_MAP_COLOR+ , gl_COLOR_TABLE_INTENSITY_SIZE_SGI+ , gl_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV+ , gl_LAYER_PROVOKING_VERTEX_EXT+ , gl_COMPRESSED_RGBA_ASTC_6x5x5_OES+ , gl_FOG_BIT+ , gl_NATIVE_GRAPHICS_HANDLE_PGI+ , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT+ , gl_MAX_COMPUTE_SHARED_MEMORY_SIZE+ , gl_STENCIL_INDEX1_EXT+ , gl_COLOR_ATTACHMENT2_NV+ , gl_DRAW_BUFFER5_ARB+ , gl_TEXTURE_OBJECT_VALID_QCOM+ , gl_PHONG_HINT_WIN+ , gl_MAP1_VERTEX_ATTRIB0_4_NV+ , gl_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX+ , gl_COLOR_TABLE_WIDTH+ , gl_INT_IMAGE_1D_ARRAY+ , gl_BUFFER_MAPPED+ , gl_TEXTURE_SWIZZLE_R+ , gl_COLOR_ATTACHMENT9_NV+ , gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER+ , gl_LUMINANCE16_ALPHA16+ , gl_PERFQUERY_GLOBAL_CONTEXT_INTEL+ , gl_POINT_FADE_THRESHOLD_SIZE_EXT+ , gl_BLEND_EQUATION_OES+ , gl_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES+ , gl_TEXTURE_BINDING_2D_ARRAY_EXT+ , gl_CON_7_ATI+ , gl_DUAL_LUMINANCE16_SGIS+ , gl_RASTER_POSITION_UNCLIPPED_IBM+ , gl_ALLOW_DRAW_FRG_HINT_PGI+ , gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT+ , gl_TEXTURE_COORD_ARRAY+ , gl_MAX_DEBUG_LOGGED_MESSAGES_KHR+ , gl_ARRAY_BUFFER_BINDING_ARB+ , gl_PIXEL_TEXTURE_SGIS+ , gl_STENCIL_INDEX8+ , gl_IMAGE_CLASS_10_10_10_2+ , gl_DRAW_INDIRECT_LENGTH_NV+ , gl_DEBUG_CALLBACK_FUNCTION_ARB+ , gl_INT_SAMPLER_2D_ARRAY+ , gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB+ , gl_GENERIC_ATTRIB_NV+ , gl_TEXTURE_RED_TYPE_ARB+ , gl_MAX_VERTEX_UNITS_ARB+ , gl_DEPTH_BIAS+ , gl_SRGB+ , gl_TEXTURE_COORD_ARRAY_TYPE+ , gl_TRANSFORM_FEEDBACK_BUFFER_START_EXT+ , gl_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV+ , gl_CURRENT_TIME_NV+ , gl_TEXTURE_DEPTH_SIZE+ , gl_INDEX_ARRAY_LIST_STRIDE_IBM+ , gl_CLIP_PLANE1_IMG+ , gl_CULL_VERTEX_EYE_POSITION_EXT+ , gl_COPY_READ_BUFFER_NV+ , gl_CONTEXT_CORE_PROFILE_BIT+ , gl_ARC_TO_NV+ , gl_PACK_COMPRESSED_BLOCK_SIZE+ , gl_TRACE_NAME_MESA+ , gl_TEXTURE_CROP_RECT_OES+ , gl_MAP2_VERTEX_ATTRIB15_4_NV+ , gl_DRAW_INDIRECT_UNIFIED_NV+ , gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS+ , gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS+ , gl_CULL_FACE_MODE+ , gl_LUMINANCE_ALPHA_INTEGER_EXT+ , gl_SURFACE_MAPPED_NV+ , gl_FOG_COORD_ARRAY_LENGTH_NV+ , gl_R+ , gl_NUM_VIDEO_CAPTURE_STREAMS_NV+ , gl_VERTEX_PROGRAM_POINT_SIZE_NV+ , gl_CONSTANT_NV+ , gl_RGB10_A2+ , gl_INTENSITY16_EXT+ , gl_TEXTURE28+ , gl_COMPRESSED_RGBA_ASTC_4x4_KHR+ , gl_SRGB_READ+ , gl_LUMINANCE16_ALPHA16_SNORM+ , gl_UNSIGNED_INT_IMAGE_1D_ARRAY+ , gl_ELEMENT_ARRAY_TYPE_ATI+ , gl_PATCH_DEFAULT_OUTER_LEVEL+ , gl_LINE_STRIP_ADJACENCY_ARB+ , gl_POLYGON_OFFSET_POINT+ , gl_UNSIGNED_SHORT_8_8_APPLE+ , gl_DYNAMIC_ATI+ , gl_UNSIGNED_INT16_NV+ , gl_TEXTURE_BINDING_BUFFER_EXT+ , gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB+ , gl_MAP2_VERTEX_ATTRIB14_4_NV+ , gl_COMPRESSED_RGB+ , gl_VERTEX_ATTRIB_ARRAY0_NV+ , gl_MIN+ , gl_COLOR_SUM+ , gl_ATC_RGBA_INTERPOLATED_ALPHA_AMD+ , gl_RECIP_ADD_SIGNED_ALPHA_IMG+ , gl_FONT_MAX_ADVANCE_WIDTH_BIT_NV+ , gl_SPRITE_AXIAL_SGIX+ , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES+ , gl_TEXTURE_ENV_BIAS_SGIX+ , gl_PROGRAM_FORMAT_ASCII_ARB+ , gl_OUTPUT_COLOR1_EXT+ , gl_SELECTION_BUFFER_SIZE+ , gl_VERTEX_ATTRIB_MAP2_ORDER_APPLE+ , gl_INTENSITY_FLOAT16_ATI+ , gl_TEXTURE30_ARB+ , gl_TEXTURE_1D_STACK_MESAX+ , gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE+ , gl_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM+ , gl_SIGNED_HILO_NV+ , gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT+ , gl_ACTIVE_ATTRIBUTE_MAX_LENGTH+ , gl_IMAGE_2D_RECT_EXT+ , gl_TESS_GEN_MODE+ , gl_TEXTURE_MIN_FILTER+ , gl_FLOAT_VEC4+ , gl_LIGHT2+ , gl_MODELVIEW24_ARB+ , gl_TESS_EVALUATION_SHADER+ , gl_PROXY_COLOR_TABLE_SGI+ , gl_INDEX_ARRAY_EXT+ , gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB+ , gl_FRAGMENT_INPUT_NV+ , gl_CON_13_ATI+ , gl_IMAGE_ROTATE_ORIGIN_Y_HP+ , gl_VERTEX_ARRAY_COUNT_EXT+ , gl_STENCIL_INDEX1_OES+ , gl_BUFFER_DATA_SIZE+ , gl_MAX_NAME_STACK_DEPTH+ , gl_SAMPLES_PASSED_ARB+ , gl_TEXTURE_PRE_SPECULAR_HP+ , gl_RESCALE_NORMAL_EXT+ , gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY+ , gl_TRANSLATE_2D_NV+ , gl_QUAD_INTENSITY8_SGIS+ , gl_LOCATION_INDEX+ , gl_MODELVIEW9_ARB+ , gl_CONTEXT_RELEASE_BEHAVIOR_KHR+ , gl_EDGE_FLAG_ARRAY_BUFFER_BINDING+ , gl_DEBUG_TYPE_PERFORMANCE_KHR+ , gl_POINT_DISTANCE_ATTENUATION+ , gl_PIXEL_TILE_GRID_HEIGHT_SGIX+ , gl_COLOR_ATTACHMENT3+ , gl_COUNT_UP_NV+ , gl_STENCIL_BACK_VALUE_MASK+ , gl_PERFQUERY_DONOT_FLUSH_INTEL+ , gl_VARIABLE_F_NV+ , gl_STENCIL_BACK_PASS_DEPTH_FAIL+ , gl_IMAGE_CUBIC_WEIGHT_HP+ , gl_STENCIL+ , gl_DRAW_BUFFER6_ARB+ , gl_MAX_COMBINED_IMAGE_UNIFORMS+ , gl_PROGRAM_STRING_NV+ , gl_STREAM_DRAW+ , gl_BGR_INTEGER_EXT+ , gl_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES+ , gl_LAYER_PROVOKING_VERTEX+ , gl_TEXTURE_ALPHA_SIZE_EXT+ , gl_QUERY_DEPTH_PASS_EVENT_BIT_AMD+ , gl_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX+ , gl_VIEW_CLASS_48_BITS+ , gl_DRAW_BUFFER15_NV+ , gl_MAX_LABEL_LENGTH_KHR+ , gl_DEBUG_TYPE_PERFORMANCE+ , gl_DEPENDENT_RGB_TEXTURE_3D_NV+ , gl_MAX_GEOMETRY_ATOMIC_COUNTERS+ , gl_DRAW_BUFFER10_ARB+ , gl_FONT_UNDERLINE_THICKNESS_BIT_NV+ , gl_DRAW_BUFFER7+ , gl_TEXTURE_GREEN_TYPE_ARB+ , gl_TEXTURE_MIN_LOD_SGIS+ , gl_UNSIGNED_INT_SAMPLER_BUFFER_EXT+ , gl_ELEMENT_ARRAY_BARRIER_BIT_EXT+ , gl_SAMPLE_COVERAGE_VALUE+ , gl_VERTEX_ATTRIB_RELATIVE_OFFSET+ , gl_COLOR_TABLE_RED_SIZE+ , gl_TRANSFORM_FEEDBACK_BUFFER_START_NV+ , gl_NAME_STACK_DEPTH+ , gl_UNSIGNED_INT_5_9_9_9_REV+ , gl_FUNC_SUBTRACT_EXT+ , gl_STENCIL_INDEX4_EXT+ , gl_TEXTURE_COMPRESSION_HINT+ , gl_DEPTH_CLAMP+ , gl_SAMPLE_COVERAGE_INVERT+ , gl_DRAW_BUFFER0_EXT+ , gl_DRAW_BUFFER4+ , gl_ALPHA_FLOAT16_ATI+ , gl_AFFINE_2D_NV+ , gl_MAX_TRACK_MATRICES_NV+ , gl_BINORMAL_ARRAY_STRIDE_EXT+ , gl_UNSIGNED_SHORT_1_5_5_5_REV+ , gl_ROUNDED_RECT4_NV+ , gl_COMMAND_BARRIER_BIT_EXT+ , gl_TEXTURE_ENV_COLOR+ , gl_READ_WRITE_ARB+ , gl_RGBA8_EXT+ , gl_EVAL_VERTEX_ATTRIB10_NV+ , gl_POST_CONVOLUTION_RED_BIAS+ , gl_INT16_VEC4_NV+ , gl_COLOR_SUM_ARB+ , gl_OUTPUT_TEXTURE_COORD5_EXT+ , gl_COMPRESSED_RGBA_ASTC_12x10_KHR+ , gl_MAX_ELEMENTS_INDICES+ , gl_REFERENCED_BY_FRAGMENT_SHADER+ , gl_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB+ , gl_WEIGHT_ARRAY_ARB+ , gl_TIME_ELAPSED_EXT+ , gl_BACK_SECONDARY_COLOR_NV+ , gl_COMPARE_REF_TO_TEXTURE_EXT+ , gl_IS_PER_PATCH_EXT+ , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE+ , gl_TEXTURE_LUMINANCE_SIZE_EXT+ , gl_COVERAGE_BUFFERS_NV+ , gl_MATRIX5_ARB+ , gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT+ , gl_COMPRESSED_RGBA_ASTC_5x5x4_OES+ , gl_CONVOLUTION_FILTER_BIAS+ , gl_TRACE_PRIMITIVES_BIT_MESA+ , gl_POINT_SPRITE+ , gl_POLYGON_STIPPLE_BIT+ , gl_DEBUG_SEVERITY_HIGH+ , gl_RENDERBUFFER_STENCIL_SIZE_EXT+ , gl_RED+ , gl_DRAW_BUFFER12_NV+ , gl_COMPRESSED_RGBA_ASTC_10x10_KHR+ , gl_ACTIVE_TEXTURE+ , gl_Q+ , gl_STRICT_LIGHTING_HINT_PGI+ , gl_INT8_VEC2_NV+ , gl_MAP2_VERTEX_ATTRIB0_4_NV+ , gl_SHADER_SOURCE_LENGTH+ , gl_FLOAT_MAT4+ , gl_COLOR_MATRIX_SGI+ , gl_SAMPLER_2D_ARRAY_EXT+ , gl_MODULATE_SUBTRACT_ATI+ , gl_TRIANGLES_ADJACENCY_ARB+ , gl_PROGRAM_TARGET_NV+ , gl_GEOMETRY_SHADER_ARB+ , gl_TEXTURE_BASE_LEVEL_SGIS+ , gl_1PASS_SGIS+ , gl_TEXTURE_HEIGHT_QCOM+ , gl_LUMINANCE12_ALPHA4_EXT+ , gl_PIXEL_TILE_HEIGHT_SGIX+ , gl_UNSIGNED_INT_S8_S8_8_8_NV+ , gl_SOURCE0_RGB+ , gl_DRAW_BUFFER6_EXT+ , gl_PATH_FILL_BOUNDING_BOX_NV+ , gl_RENDER_MODE+ , gl_X_EXT+ , gl_CON_14_ATI+ , gl_TRIANGLE_STRIP_ADJACENCY+ , gl_ROUNDED_RECT_NV+ , gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB+ , gl_DSDT_MAG_INTENSITY_NV+ , gl_MODELVIEW13_ARB+ , gl_MAX_COMBINED_CLIP_AND_CULL_DISTANCES+ , gl_CLIP_ORIGIN+ , gl_PATH_CLIENT_LENGTH_NV+ , gl_SAMPLE_ALPHA_TO_ONE_ARB+ , gl_RENDERBUFFER_INTERNAL_FORMAT_OES+ , gl_POINT_SPRITE_ARB+ , gl_FLOAT_MAT3_ARB+ , gl_IMAGE_CLASS_4_X_8+ , gl_PIXEL_SUBSAMPLE_4242_SGIX+ , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT+ , gl_ROUNDED_RECT8_NV+ , gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING+ , gl_DST_NV+ , gl_MAX_TRANSFORM_FEEDBACK_BUFFERS+ , gl_FUNC_ADD_OES+ , gl_VERTEX_STREAM7_ATI+ , gl_RG_EXT+ , gl_STENCIL_BACK_PASS_DEPTH_PASS+ , gl_FRAMEBUFFER_RENDERABLE_LAYERED+ , gl_MAP2_VERTEX_ATTRIB1_4_NV+ , gl_DRAW_BUFFER2_ATI+ , gl_RGBA_FLOAT16_ATI+ , gl_EVAL_VERTEX_ATTRIB13_NV+ , gl_DRAW_BUFFER15_ATI+ , gl_MAP_WRITE_BIT+ , gl_DOT3_RGBA+ , gl_MAT_SHININESS_BIT_PGI+ , gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN+ , gl_MAX_TRACK_MATRIX_STACK_DEPTH_NV+ , gl_MATRIX30_ARB+ , gl_STENCIL_TEST+ , gl_MAX_INTEGER_SAMPLES+ , gl_COPY_READ_BUFFER_BINDING+ , gl_TRANSFORM_FEEDBACK_BUFFER+ , gl_LUMINANCE_FLOAT16_APPLE+ , gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS+ , gl_MAX_VERTEX_UNIFORM_VECTORS+ , gl_WRITE_PIXEL_DATA_RANGE_LENGTH_NV+ , gl_SAMPLER_RENDERBUFFER_NV+ , gl_DRAW_BUFFER13_NV+ , gl_RGB32F_ARB+ , gl_FRAGMENT_LIGHT5_SGIX+ , gl_MAX_GENERAL_COMBINERS_NV+ , gl_TRANSPOSE_TEXTURE_MATRIX_ARB+ , gl_OPERAND1_ALPHA_ARB+ , gl_COLOR_ATTACHMENT12+ , gl_GREEN_MAX_CLAMP_INGR+ , gl_PATH_PROJECTION_STACK_DEPTH_NV+ , gl_MAP2_COLOR_4+ , gl_COLOR_SUM_EXT+ , gl_CLAMP_FRAGMENT_COLOR_ARB+ , gl_INDEX_BITS+ , gl_CON_15_ATI+ , gl_BLEND_OVERLAP_NV+ , gl_DS_SCALE_NV+ , gl_CURRENT_PALETTE_MATRIX_ARB+ , gl_IMAGE_BINDING_LAYER_EXT+ , gl_WEIGHT_SUM_UNITY_ARB+ , gl_ALPHA32I_EXT+ , gl_SHADER_STORAGE_BUFFER_SIZE+ , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER+ , gl_MAX_UNIFORM_LOCATIONS+ , gl_DEBUG_SOURCE_OTHER_KHR+ , gl_FRACTIONAL_EVEN+ , gl_MIN_PROGRAM_TEXEL_OFFSET+ , gl_WEIGHT_ARRAY_OES+ , gl_RESET_NOTIFICATION_STRATEGY_KHR+ , gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV+ , gl_RGB2_EXT+ , gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT+ , gl_ELEMENT_ARRAY_BUFFER+ , gl_MEDIUM_FLOAT+ , gl_SAMPLER_1D_SHADOW_ARB+ , gl_DRAW_BUFFER5+ , gl_PARALLEL_ARRAYS_INTEL+ , gl_REG_24_ATI+ , gl_DEPTH_STENCIL_TO_BGRA_NV+ , gl_MAX_FRAMEBUFFER_WIDTH+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES+ , gl_POLYGON_OFFSET_FILL+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES+ , gl_TEXTURE_GEN_T+ , gl_TEXTURE_POST_SPECULAR_HP+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_X_OES+ , gl_MAGNITUDE_SCALE_NV+ , gl_VERTEX_SHADER_LOCALS_EXT+ , gl_INT_2_10_10_10_REV+ , gl_DOUBLE_MAT3x2_EXT+ , gl_DISCARD_NV+ , gl_MATRIX13_ARB+ , gl_GENERATE_MIPMAP_HINT+ , gl_MAX_PIXEL_MAP_TABLE+ , gl_SHADER_STORAGE_BUFFER+ , gl_BUFFER_UPDATE_BARRIER_BIT+ , gl_FRAMEBUFFER_BINDING_OES+ , gl_CONTEXT_PROFILE_MASK+ , gl_MAX_VIEWPORTS+ , gl_DRAW_BUFFER4_ARB+ , gl_RESAMPLE_DECIMATE_SGIX+ , gl_SHADER_OBJECT_ARB+ , gl_SYNC_FLAGS_APPLE+ , gl_Z4Y12Z4CB12Z4CR12_444_NV+ , gl_VERTEX_ARRAY_LENGTH_NV+ , gl_FOG_COORDINATE_ARRAY_LIST_IBM+ , gl_FRAMEBUFFER_DEFAULT_SAMPLES+ , gl_FLAT+ , gl_REG_2_ATI+ , gl_VIEWPORT_BIT+ , gl_TEXTURE_VIEW_MIN_LEVEL_EXT+ , gl_FRACTIONAL_ODD_EXT+ , gl_VIRTUAL_PAGE_SIZE_X_ARB+ , gl_GLOBAL_ALPHA_SUN+ , gl_TEXTURE_BORDER+ , gl_MAP2_VERTEX_ATTRIB7_4_NV+ , gl_BUFFER_ACCESS+ , gl_COLOR_ATTACHMENT15_EXT+ , gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT+ , gl_PRIMITIVE_RESTART_FIXED_INDEX+ , gl_MAX_COMBINED_DIMENSIONS+ , gl_MINUS_NV+ , gl_NORMAL_MAP_ARB+ , gl_MAT_AMBIENT_BIT_PGI+ , gl_REG_14_ATI+ , gl_SECONDARY_INTERPOLATOR_ATI+ , gl_FRAGMENT_SHADER_BIT_EXT+ , gl_CON_20_ATI+ , gl_DYNAMIC_DRAW+ , gl_STENCIL_INDEX1+ , gl_DEPTH_COMPONENTS+ , gl_SEPARATE_SPECULAR_COLOR_EXT+ , gl_CONSTANT_COLOR0_NV+ , gl_LUMINANCE16I_EXT+ , gl_TEXTURE_COORD_ARRAY_SIZE_EXT+ , gl_BLEND_DST_RGB+ , gl_VARIABLE_C_NV+ , gl_INT_VEC2_ARB+ , gl_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX+ , gl_PIXEL_MAP_G_TO_G_SIZE+ , gl_BLUE_MIN_CLAMP_INGR+ , gl_RETURN+ , gl_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD+ , gl_DOUBLE+ , gl_COMBINE4_NV+ , gl_IMAGE_ROTATE_ORIGIN_X_HP+ , gl_COMBINER5_NV+ , gl_SYNC_CONDITION+ , gl_DEBUG_LOGGED_MESSAGES_ARB+ , gl_REG_15_ATI+ , gl_BUFFER_MAP_POINTER_OES+ , gl_SM_COUNT_NV+ , gl_MAX_FRAMEBUFFER_HEIGHT+ , gl_INCR_WRAP_OES+ , gl_GCCSO_SHADER_BINARY_FJ+ , gl_DRAW_BUFFER4_NV+ , gl_RGB565+ , gl_WRITE_PIXEL_DATA_RANGE_NV+ , gl_UNIFORM_OFFSET+ , gl_UNSIGNED_INT64_ARB+ , gl_STENCIL_RENDERABLE+ , gl_COMPRESSED_RGBA_BPTC_UNORM+ , gl_FLOAT_R32_NV+ , gl_TEXTURE_CLIPMAP_OFFSET_SGIX+ , gl_TEXTURE_IMAGE_VALID_QCOM+ , gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC+ , gl_IMAGE_PIXEL_TYPE+ , gl_EDGE_FLAG_ARRAY_STRIDE+ , gl_RED_SCALE+ , gl_RENDERBUFFER_ALPHA_SIZE_OES+ , gl_CLIP_DISTANCE7+ , gl_INTENSITY32UI_EXT+ , gl_DEBUG_SOURCE_WINDOW_SYSTEM_KHR+ , gl_PN_TRIANGLES_ATI+ , gl_LIGHT5+ , gl_QUERY_RESULT_ARB+ , gl_LUMINANCE16+ , gl_ALPHA_TEST_QCOM+ , gl_TEXTURE_BORDER_COLOR_NV+ , gl_CULL_FRAGMENT_NV+ , gl_PATH_GEN_MODE_NV+ , gl_PROGRAM_POINT_SIZE_ARB+ , gl_INTERNALFORMAT_DEPTH_TYPE+ , gl_UNPACK_SKIP_ROWS+ , gl_DEBUG_SEVERITY_NOTIFICATION+ , gl_MAX_FRAGMENT_LIGHTS_SGIX+ , gl_COUNTER_TYPE_AMD+ , gl_TEXTURE_FETCH_BARRIER_BIT_EXT+ , gl_CURRENT_NORMAL+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES+ , gl_MULTIVIEW_EXT+ , gl_TESS_GEN_VERTEX_ORDER_EXT+ , gl_IMAGE_SCALE_X_HP+ , gl_TEXTURE_COLOR_TABLE_SGI+ , gl_DSDT_MAG_NV+ , gl_Z400_BINARY_AMD+ , gl_COLOR_INDEX8_EXT+ , gl_SRGB8_NV+ , gl_UNSIGNED_IDENTITY_NV+ , gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES+ , gl_ALPHA_SNORM+ , gl_MAX_TEXTURE_UNITS+ , gl_DEBUG_SEVERITY_MEDIUM_KHR+ , gl_TEXTURE_RECTANGLE+ , gl_CONTRAST_NV+ , gl_FILL+ , gl_BLEND_COLOR+ , gl_POINT_SMOOTH_HINT+ , gl_CONTEXT_ROBUST_ACCESS+ , gl_FRAGMENT_PROGRAM_NV+ , gl_OP_MULTIPLY_MATRIX_EXT+ , gl_DEPENDENT_GB_TEXTURE_2D_NV+ , gl_DOUBLE_EXT+ , gl_VERTEX_PROGRAM_NV+ , gl_PATH_END_CAPS_NV+ , gl_PATH_STROKE_MASK_NV+ , gl_SAMPLER_CUBE_SHADOW_EXT+ , gl_COLOR_SAMPLES_NV+ , gl_DUAL_INTENSITY16_SGIS+ , gl_IMPLEMENTATION_COLOR_READ_TYPE_OES+ , gl_MAX_DEBUG_GROUP_STACK_DEPTH_KHR+ , gl_SCISSOR_TEST+ , gl_ADJACENT_PAIRS_NV+ , gl_MAX_VERTEX_ATTRIB_BINDINGS+ , gl_TEXTURE_GATHER+ , gl_LUMINANCE_ALPHA8UI_EXT+ , gl_RELATIVE_ARC_TO_NV+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR+ , gl_TEXTURE_BINDING_CUBE_MAP_EXT+ , gl_FRAGMENT_ALPHA_MODULATE_IMG+ , gl_CURRENT_VERTEX_EXT+ , gl_MAP1_VERTEX_ATTRIB11_4_NV+ , gl_MATRIX_INDEX_ARRAY_SIZE_ARB+ , gl_TRANSFORM_FEEDBACK_BUFFER_MODE+ , gl_PIXEL_TILE_CACHE_SIZE_SGIX+ , gl_MODELVIEW0_EXT+ , gl_FONT_DESCENDER_BIT_NV+ , gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS+ , gl_RASTERIZER_DISCARD+ , gl_TRANSFORM_FEEDBACK_BUFFER_SIZE+ , gl_MAX_DEBUG_MESSAGE_LENGTH_ARB+ , gl_EXTENSIONS+ , gl_RESAMPLE_AVERAGE_OML+ , gl_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV+ , gl_RELATIVE_SMALL_CCW_ARC_TO_NV+ , gl_FRONT+ , gl_BLEND_COLOR_EXT+ , gl_BUFFER_ACCESS_OES+ , gl_MATRIX29_ARB+ , gl_GEOMETRY_LINKED_INPUT_TYPE_EXT+ , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES+ , gl_COLOR_ATTACHMENT12_EXT+ , gl_DRAW_BUFFER1+ , gl_FLOAT_32_UNSIGNED_INT_24_8_REV+ , gl_UNSIGNED_INT_SAMPLER_2D_RECT_EXT+ , gl_UNSIGNED_INT_SAMPLER_CUBE+ , gl_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI+ , gl_MAX_CULL_DISTANCES+ , gl_TEXTURE_LOD_BIAS_S_SGIX+ , gl_SPRITE_SGIX+ , gl_VERTEX_ATTRIB_ARRAY3_NV+ , gl_QUAD_INTENSITY4_SGIS+ , gl_DIFFERENCE_KHR+ , gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT+ , gl_VOLATILE_APPLE+ , gl_MAT_EMISSION_BIT_PGI+ , gl_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV+ , gl_DRAW_FRAMEBUFFER_BINDING+ , gl_TEXTURE8+ , gl_MUL_ATI+ , gl_PROGRAM_OBJECT_EXT+ , gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB+ , gl_MATRIX_INDEX_ARRAY_TYPE_ARB+ , gl_PIXEL_MAG_FILTER_EXT+ , gl_LESS+ , gl_SOURCE2_RGB_ARB+ , gl_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH+ , gl_PATH_STENCIL_VALUE_MASK_NV+ , gl_IMPLEMENTATION_COLOR_READ_TYPE+ , gl_TEXTURE_CLIPMAP_CENTER_SGIX+ , gl_BUFFER+ , gl_DEBUG_CALLBACK_USER_PARAM_ARB+ , gl_FIXED_OES+ , gl_INT_VEC2+ , gl_VARIANT_VALUE_EXT+ , gl_QUAD_STRIP+ , gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT+ , gl_ZERO_TO_ONE+ , gl_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB+ , gl_CND_ATI+ , gl_PROGRAM_POINT_SIZE+ , gl_VIEWPORT_BOUNDS_RANGE+ , gl_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL+ , gl_R1UI_T2F_N3F_V3F_SUN+ , gl_DEPTH_STENCIL_EXT+ , gl_RESCALE_NORMAL+ , gl_INDEX_CLEAR_VALUE+ , gl_VERTEX_STREAM5_ATI+ , gl_CON_4_ATI+ , gl_LAYOUT_DEFAULT_INTEL+ , gl_RGBA8I_EXT+ , gl_IMAGE_CLASS_4_X_16+ , gl_RGB8_EXT+ , gl_TEXTURE_DS_SIZE_NV+ , gl_CLAMP_VERTEX_COLOR+ , gl_DEPTH_CLEAR_VALUE+ , gl_VERTEX_ATTRIB_ARRAY_SIZE_ARB+ , gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS+ , gl_RGB_FLOAT16_APPLE+ , gl_DOT_PRODUCT_REFLECT_CUBE_MAP_NV+ , gl_COLOR_ATTACHMENT1+ , gl_MAX_TESS_GEN_LEVEL_EXT+ , gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER+ , gl_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM+ , gl_MATRIX3_ARB+ , gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB+ , gl_FRAGMENT_PROGRAM_BINDING_NV+ , gl_DOT2_ADD_ATI+ , gl_CON_2_ATI+ , gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES+ , gl_UNIFORM_ARRAY_STRIDE+ , gl_RECLAIM_MEMORY_HINT_PGI+ , gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS+ , gl_DRAW_BUFFER11_ARB+ , gl_NORMAL_ARRAY+ , gl_PATH_GEN_COMPONENTS_NV+ , gl_COLOR_FLOAT_APPLE+ , gl_WAIT_FAILED+ , gl_SAMPLER_1D_ARRAY_SHADOW+ , gl_PIXEL_TEX_GEN_Q_CEILING_SGIX+ , gl_ALWAYS_FAST_HINT_PGI+ , gl_GEOMETRY_OUTPUT_TYPE_EXT+ , gl_MAX_PROGRAM_PATCH_ATTRIBS_NV+ , gl_TEXTURE_1D_ARRAY+ , gl_LIST_MODE+ , gl_COLOR_ARRAY_TYPE+ , gl_SAMPLE_MASK_VALUE_EXT+ , gl_PIXEL_BUFFER_BARRIER_BIT+ , gl_SCISSOR_BOX+ , gl_UNSIGNED_INT_SAMPLER_3D_EXT+ , gl_MAX_ATOMIC_COUNTER_BUFFER_SIZE+ , gl_CLIENT_ALL_ATTRIB_BITS+ , gl_TRANSPOSE_MODELVIEW_MATRIX_ARB+ , gl_TEXTURE_BINDING_RECTANGLE_NV+ , gl_ALPHA_FLOAT32_ATI+ , gl_MAP1_TEXTURE_COORD_4+ , gl_CONSTANT_ALPHA+ , gl_PREVIOUS_EXT+ , gl_PACK_COMPRESSED_SIZE_SGIX+ , gl_IMAGE_2D_ARRAY_EXT+ , gl_ASYNC_TEX_IMAGE_SGIX+ , gl_QUERY_RESULT+ , gl_MATRIX0_ARB+ , gl_UNPACK_CMYK_HINT_EXT+ , gl_MAP1_TEXTURE_COORD_1+ , gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH+ , gl_PN_TRIANGLES_POINT_MODE_LINEAR_ATI+ , gl_TEXTURE_BLUE_SIZE_EXT+ , gl_VARIANT_EXT+ , gl_UNPACK_ROW_LENGTH+ , gl_VARIANT_DATATYPE_EXT+ , gl_LINEAR_MIPMAP_LINEAR+ , gl_ALPHA8I_EXT+ , gl_OUTPUT_TEXTURE_COORD20_EXT+ , gl_EYE_LINEAR+ , gl_VIEWPORT+ , gl_SHADER_BINARY_DMP+ , gl_TEXTURE25_ARB+ , gl_UNSIGNED_SHORT_4_4_4_4_EXT+ , gl_PROXY_HISTOGRAM_EXT+ , gl_SCALEBIAS_HINT_SGIX+ , gl_MAP_INVALIDATE_RANGE_BIT_EXT+ , gl_FRAGMENT_PROGRAM_CALLBACK_MESA+ , gl_TRANSLATE_3D_NV+ , gl_PATH_COORD_COUNT_NV+ , gl_MAX_ACTIVE_LIGHTS_SGIX+ , gl_TRANSFORM_FEEDBACK_OVERFLOW_ARB+ , gl_REFERENCE_PLANE_EQUATION_SGIX+ , gl_PATH_TERMINAL_DASH_CAP_NV+ , gl_INDEX_ARRAY+ , gl_INNOCENT_CONTEXT_RESET_ARB+ , gl_TEXTURE_BINDING_1D+ , gl_TRANSFORM_FEEDBACK_BUFFER_STRIDE+ , gl_QUERY_OBJECT_EXT+ , gl_UNIFORM_BLOCK+ , gl_CONVOLUTION_HEIGHT+ , gl_STENCIL_FAIL+ , gl_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX+ , gl_TEXTURE_SAMPLES_IMG+ , gl_REFLECTION_MAP_NV+ , gl_GREEN_SCALE+ , gl_TRANSFORM_FEEDBACK_BUFFER_EXT+ , gl_LIGHTEN_NV+ , gl_HISTOGRAM_ALPHA_SIZE_EXT+ , gl_UNSIGNED_INT64_NV+ , gl_LINE_STIPPLE_REPEAT+ , gl_YCBCR_MESA+ , gl_LEQUAL+ , gl_BUFFER_USAGE_ARB+ , gl_MAP1_VERTEX_ATTRIB6_4_NV+ , gl_SAMPLER_BUFFER_AMD+ , gl_OBJECT_DISTANCE_TO_LINE_SGIS+ , gl_PIXEL_COUNT_NV+ , gl_VERTEX_PROGRAM_POSITION_MESA+ , gl_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI+ , gl_POST_COLOR_MATRIX_BLUE_BIAS+ , gl_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX+ , gl_VERTEX_ATTRIB_MAP2_APPLE+ , gl_PLUS_DARKER_NV+ , gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT+ , gl_FRAGMENT_SHADER_INVOCATIONS_ARB+ , gl_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT+ , gl_PROXY_TEXTURE_CUBE_MAP_ARRAY+ , gl_UNSIGNED_INT_IMAGE_CUBE_EXT+ , gl_DYNAMIC_DRAW_ARB+ , gl_RGBA_SNORM+ , gl_MAX_UNIFORM_BLOCK_SIZE+ , gl_FUNC_REVERSE_SUBTRACT_EXT+ , gl_STENCIL_BUFFER_BIT1_QCOM+ , gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER+ , gl_TEXTURE_1D_BINDING_EXT+ , gl_RGBA4_EXT+ , gl_PREFER_DOUBLEBUFFER_HINT_PGI+ , gl_UNKNOWN_CONTEXT_RESET_KHR+ , gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES+ , gl_REFERENCED_BY_COMPUTE_SHADER+ , gl_REG_17_ATI+ , gl_BUFFER_FLUSHING_UNMAP_APPLE+ , gl_UNIFORM+ , gl_TEXCOORD4_BIT_PGI+ , gl_BIAS_BY_NEGATIVE_ONE_HALF_NV+ , gl_OP_FLOOR_EXT+ , gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV+ , gl_CURRENT_QUERY+ , gl_UNIFORM_BUFFER_START+ , gl_DEBUG_SEVERITY_HIGH_KHR+ , gl_T2F_C4UB_V3F+ , gl_FONT_GLYPHS_AVAILABLE_NV+ , gl_MAX_CONVOLUTION_HEIGHT_EXT+ , gl_STENCIL_BUFFER_BIT3_QCOM+ , gl_MAP1_VERTEX_ATTRIB3_4_NV+ , gl_BLEND_EQUATION_ALPHA_EXT+ , gl_RGB_FLOAT32_APPLE+ , gl_CONSTANT_BORDER+ , gl_CON_0_ATI+ , gl_VERTEX_ARRAY_RANGE_POINTER_NV+ , gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV+ , gl_INTERLACE_SGIX+ , gl_UNPACK_CONSTANT_DATA_SUNX+ , gl_VERTEX_BINDING_STRIDE+ , gl_IS_PER_PATCH+ , gl_AVERAGE_HP+ , gl_MAX_VERTEX_ATTRIBS+ , gl_MAX_SAMPLES_ANGLE+ , gl_RED_EXT+ , gl_MAP1_NORMAL+ , gl_TEXTURE_COMPRESSED_BLOCK_HEIGHT+ , gl_MIN_SAMPLE_SHADING_VALUE_ARB+ , gl_COMPRESSED_SLUMINANCE_EXT+ , gl_RGBA4+ , gl_TEXTURE_VIEW_MIN_LAYER+ , gl_ONE_EXT+ , gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES+ , gl_MODELVIEW31_ARB+ , gl_MAX_TEXTURE_IMAGE_UNITS+ , gl_COLOR_ATTACHMENT3_NV+ , gl_LUMINANCE6_ALPHA2+ , gl_POINT_SPRITE_R_MODE_NV+ , gl_COMPARE_REF_TO_TEXTURE+ , gl_MAX_PROJECTION_STACK_DEPTH+ , gl_BLEND_DST_ALPHA+ , gl_TEXTURE_1D_STACK_BINDING_MESAX+ , gl_VERTEX_ATTRIB_ARRAY_LENGTH_NV+ , gl_PROGRAM_PARAMETER_NV+ , gl_VIDEO_CAPTURE_FRAME_WIDTH_NV+ , gl_MATRIX21_ARB+ , gl_LIST_BASE+ , gl_COLOR_ATTACHMENT5+ , gl_VERTEX_ARRAY_BINDING_APPLE+ , gl_RELATIVE_LARGE_CW_ARC_TO_NV+ , gl_MAX_DEFORMATION_ORDER_SGIX+ , gl_COVERAGE_AUTOMATIC_NV+ , gl_FOG_FUNC_SGIS+ , gl_SAMPLER_BUFFER_EXT+ , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT+ , gl_RGB8+ , gl_PRIMARY_COLOR_NV+ , gl_DEPTH_TEXTURE_MODE_ARB+ , gl_LUMINANCE12_ALPHA4+ , gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS+ , gl_TEXTURE_BUFFER_EXT+ , gl_LINK_STATUS+ , gl_VERTEX_SHADER_EXT+ , gl_VERTEX_ARRAY_POINTER+ , gl_ONE_MINUS_SRC1_ALPHA+ , gl_TEXTURE_BUFFER_SIZE_EXT+ , gl_DEBUG_SEVERITY_MEDIUM+ , gl_ASYNC_READ_PIXELS_SGIX+ , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME+ , gl_REPLACE_EXT+ , gl_DEBUG_SOURCE_APPLICATION_ARB+ , gl_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES+ , gl_BROWSER_DEFAULT_WEBGL+ , gl_MULTISAMPLE_BUFFER_BIT0_QCOM+ , gl_DUAL_ALPHA8_SGIS+ , gl_COMPRESSED_RGB_FXT1_3DFX+ , gl_BLEND_SRC_RGB_OES+ , gl_T2F_IUI_V2F_EXT+ , gl_DRAW_BUFFER13_ARB+ , gl_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV+ , gl_TEXTURE_INTENSITY_TYPE_ARB+ , gl_DU8DV8_ATI+ , gl_MAP1_VERTEX_ATTRIB14_4_NV+ , gl_VARIANT_ARRAY_STRIDE_EXT+ , gl_RGB_S3TC+ , gl_NORMAL_ARRAY_POINTER+ , gl_CONSTANT_ALPHA_EXT+ , gl_COLOR_ATTACHMENT8_NV+ , gl_MAX_LIST_NESTING+ , gl_FRAMEBUFFER_UNDEFINED+ , gl_ACTIVE_STENCIL_FACE_EXT+ , gl_DEPTH_SCALE+ , gl_READ_PIXELS_FORMAT+ , gl_QUADS_EXT+ , gl_MAX_COMBINED_SHADER_STORAGE_BLOCKS+ , gl_OUTPUT_VERTEX_EXT+ , gl_PROGRAM_ATTRIBS_ARB+ , gl_MAP1_VERTEX_ATTRIB8_4_NV+ , gl_INVALID_ENUM+ , gl_1PASS_EXT+ , gl_FUNC_ADD_EXT+ , gl_DISTANCE_ATTENUATION_SGIS+ , gl_REG_3_ATI+ , gl_INTERPOLATE+ , gl_MITER_TRUNCATE_NV+ , gl_MAX_PROGRAM_NATIVE_ATTRIBS_ARB+ , gl_CONTEXT_COMPATIBILITY_PROFILE_BIT+ , gl_MATRIX_STRIDE+ , gl_FONT_Y_MIN_BOUNDS_BIT_NV+ , gl_COMBINER_BIAS_NV+ , gl_TEXTURE_CUBE_MAP_POSITIVE_X_ARB+ , gl_CIRCULAR_CW_ARC_TO_NV+ , gl_UNSIGNED_INT_IMAGE_1D_EXT+ , gl_BLUE_SCALE+ , gl_OFFSET_TEXTURE_SCALE_NV+ , gl_OFFSET_TEXTURE_2D_NV+ , gl_INTERNALFORMAT_DEPTH_SIZE+ , gl_TIMEOUT_IGNORED+ , gl_BGRA_EXT+ , gl_GEQUAL+ , gl_EXCLUSION_KHR+ , gl_LINES_ADJACENCY_ARB+ , gl_MAX_COMPUTE_WORK_GROUP_COUNT+ , gl_RENDERBUFFER_EXT+ , gl_GENERATE_MIPMAP+ , gl_SOURCE1_ALPHA_EXT+ , gl_VERTEX_TEXTURE+ , gl_LIGHT1+ , gl_STATIC_READ_ARB+ , gl_INTERLACE_READ_INGR+ , gl_COMPRESSED_R11_EAC_OES+ , gl_FRAGMENT_SHADER_ARB+ , gl_CURRENT_RASTER_POSITION+ , gl_WEIGHT_ARRAY_BUFFER_BINDING_OES+ , gl_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT+ , gl_RGB_FLOAT32_ATI+ , gl_LUMINANCE16_ALPHA16_EXT+ , gl_RENDERBUFFER_WIDTH_EXT+ , gl_DEPTH_RANGE+ , gl_4_BYTES+ , gl_VERTEX_WEIGHTING_EXT+ , gl_TEXTURE_SWIZZLE_B+ , gl_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV+ , gl_FEEDBACK_BUFFER_POINTER+ , gl_CULL_VERTEX_IBM+ , gl_UNPACK_SKIP_VOLUMES_SGIS+ , gl_PIXEL_CUBIC_WEIGHT_EXT+ , gl_DECR_WRAP_EXT+ , gl_TEXTURE31+ , gl_MAX_TESS_GEN_LEVEL+ , gl_YCBAYCR8A_4224_NV+ , gl_POINT_SPRITE_OES+ , gl_SAMPLER_EXTERNAL_OES+ , gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT+ , gl_PIXEL_PACK_BUFFER_BINDING_ARB+ , gl_DEBUG_CATEGORY_API_ERROR_AMD+ , gl_TEXCOORD3_BIT_PGI+ , gl_UNIFORM_BUFFER_EXT+ , gl_COMPRESSED_RGBA8_ETC2_EAC+ , gl_COLOR_SUM_CLAMP_NV+ , gl_SAMPLER_CUBE+ , gl_FRACTIONAL_ODD+ , gl_ONE_MINUS_DST_COLOR+ , gl_REG_9_ATI+ , gl_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV+ , gl_PIXEL_MAP_I_TO_G+ , gl_FOG_COORD_ARRAY_STRIDE+ , gl_TRIANGLES_ADJACENCY_EXT+ , gl_DRAW_BUFFER14_EXT+ , gl_TEXTURE_COMPARE_MODE_ARB+ , gl_REFLECTION_MAP_OES+ , gl_WARPS_PER_SM_NV+ , gl_QUERY_WAIT+ , gl_COMPRESSED_SLUMINANCE_ALPHA+ , gl_MAP2_TEXTURE_COORD_3+ , gl_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV+ , gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV+ , gl_INTENSITY_FLOAT32_ATI+ , gl_CLAMP_TO_BORDER_SGIS+ , gl_FIELDS_NV+ , gl_MAX_GEOMETRY_OUTPUT_VERTICES+ , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER+ , gl_INT_SAMPLER_CUBE_EXT+ , gl_SOURCE0_RGB_EXT+ , gl_DRAW_BUFFER10_ATI+ , gl_VERTEX_ATTRIB_ARRAY_INTEGER_EXT+ , gl_COPY_WRITE_BUFFER_NV+ , gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV+ , gl_LUMINANCE8_OES+ , gl_POST_CONVOLUTION_RED_BIAS_EXT+ , gl_HSL_COLOR_KHR+ , gl_SAMPLE_MASK_VALUE_NV+ , gl_SLUMINANCE8_NV+ , gl_ASYNC_MARKER_SGIX+ , gl_TEXTURE17+ , gl_SYNC_CL_EVENT_COMPLETE_ARB+ , gl_INVARIANT_VALUE_EXT+ , gl_BUMP_ROT_MATRIX_SIZE_ATI+ , gl_ACTIVE_VARYING_MAX_LENGTH_NV+ , gl_DEPTH_COMPONENT16+ , gl_MODELVIEW25_ARB+ , gl_SHADER_BINARY_VIV+ , gl_VERTEX_ARRAY_STRIDE_EXT+ , gl_VERTEX_ATTRIB_ARRAY_POINTER_ARB+ , gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB+ , gl_MAX_PALETTE_MATRICES_ARB+ , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER+ , gl_DEPTH_COMPONENT32_ARB+ , gl_PRESERVE_ATI+ , gl_PIXEL_TEX_GEN_ALPHA_LS_SGIX+ , gl_VERTEX_PROGRAM_TWO_SIDE_NV+ , gl_MAX_ELEMENTS_INDICES_EXT+ , gl_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS+ , gl_CONTEXT_LOST+ , gl_VERTEX_SUBROUTINE_UNIFORM+ , gl_COMPRESSED_SRGB_EXT+ , gl_SAMPLER_2D_MULTISAMPLE_ARRAY+ , gl_MAX_PROGRAM_ADDRESS_REGISTERS_ARB+ , gl_STENCIL_INDEX_OES+ , gl_PATH_INITIAL_END_CAP_NV+ , gl_INTENSITY32F_ARB+ , gl_SAMPLES_PASSED+ , gl_INT_IMAGE_2D_RECT_EXT+ , gl_CLIP_PLANE2+ , gl_PALETTE8_RGB8_OES+ , gl_ALPHA16I_EXT+ , gl_VERTEX_ARRAY+ , gl_TEXTURE23_ARB+ , gl_AMBIENT_AND_DIFFUSE+ , gl_MULTISAMPLE_BUFFER_BIT2_QCOM+ , gl_LUMINANCE_FLOAT16_ATI+ , gl_INDEX_ARRAY_TYPE+ , gl_COMPATIBLE_SUBROUTINES+ , gl_VERTEX4_BIT_PGI+ , gl_FOG_COORD_SRC+ , gl_FULL_SUPPORT+ , gl_STEREO+ , gl_LUMINANCE_ALPHA16UI_EXT+ , gl_ONE_MINUS_SRC_COLOR+ , gl_MAX_SHADER_STORAGE_BLOCK_SIZE+ , gl_REPLICATE_BORDER_HP+ , gl_VERTEX_ATTRIB_MAP1_ORDER_APPLE+ , gl_CPU_OPTIMIZED_QCOM+ , gl_FLOAT16_VEC2_NV+ , gl_SAMPLE_ALPHA_TO_ONE_SGIS+ , gl_MAP2_VERTEX_ATTRIB12_4_NV+ , gl_COMBINER_MUX_SUM_NV+ , gl_UNSIGNED_SHORT_5_6_5_REV_EXT+ , gl_TEXTURE20_ARB+ , gl_DOT3_RGB+ , gl_STENCIL_BUFFER_BIT0_QCOM+ , gl_LO_SCALE_NV+ , gl_FONT_ASCENDER_BIT_NV+ , gl_DRAW_BUFFER9_EXT+ , gl_UNSIGNED_INT_2_10_10_10_REV+ , gl_BINNING_CONTROL_HINT_QCOM+ , gl_PROGRAM_TEMPORARIES_ARB+ , gl_MODELVIEW27_ARB+ , gl_RGBA16F_EXT+ , gl_INDEX_ARRAY_TYPE_EXT+ , gl_MAX_VERTEX_SHADER_LOCALS_EXT+ , gl_TEXTURE_CUBE_MAP_POSITIVE_Z_OES+ , gl_COMP_BIT_ATI+ , gl_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT+ , gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY+ , gl_RGB10_A2_EXT+ , gl_MAP1_VERTEX_ATTRIB4_4_NV+ , gl_FLOAT_VEC3+ , gl_DELETE_STATUS+ , gl_PN_TRIANGLES_TESSELATION_LEVEL_ATI+ , gl_UNCORRELATED_NV+ , gl_RELATIVE_SMALL_CW_ARC_TO_NV+ , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT+ , gl_RGB_FLOAT16_ATI+ , gl_DRAW_BUFFER7_ATI+ , gl_COMBINE_ALPHA_ARB+ , gl_RESET_NOTIFICATION_STRATEGY_EXT+ , gl_DRAW_BUFFER10_NV+ , gl_READ_PIXEL_DATA_RANGE_POINTER_NV+ , gl_TRANSFORM_FEEDBACK_ACTIVE+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR+ , gl_PROGRAM_PIPELINE_BINDING+ , gl_SRGB8_ALPHA8+ , gl_COLOR_INDEX16_EXT+ , gl_PHONG_WIN+ , gl_MAX_TEXTURE_IMAGE_UNITS_NV+ , gl_DSDT8_MAG8_NV+ , gl_COPY_READ_BUFFER+ , gl_RGBA16F+ , gl_UNSIGNED_SHORT_5_6_5+ , gl_CLIP_DISTANCE5+ , gl_TEXTURE_BINDING_3D_OES+ , gl_IUI_V2F_EXT+ , gl_OFFSET_HILO_TEXTURE_RECTANGLE_NV+ , gl_ONE_MINUS_CONSTANT_ALPHA+ , gl_SMALL_CW_ARC_TO_NV+ , gl_IMAGE_BINDING_NAME_EXT+ , gl_CURRENT_FOG_COORDINATE_EXT+ , gl_SKIP_COMPONENTS4_NV+ , gl_CLIP_PLANE5_IMG+ , gl_PATH_MITER_LIMIT_NV+ , gl_TEXTURE_3D+ , gl_MAX_COMPUTE_SHADER_STORAGE_BLOCKS+ , gl_COMPRESSED_LUMINANCE_LATC1_EXT+ , gl_MULTISAMPLE_BUFFER_BIT3_QCOM+ , gl_SECONDARY_COLOR_ARRAY_SIZE+ , gl_RENDERBUFFER_SAMPLES_IMG+ , gl_R1UI_C4UB_V3F_SUN+ , gl_PIXEL_TEX_GEN_ALPHA_MS_SGIX+ , gl_TRANSFORM_FEEDBACK_NV+ , gl_FRAMEBUFFER_RENDERABLE+ , gl_HARDLIGHT_KHR+ , gl_SOURCE0_ALPHA+ , gl_COMBINER4_NV+ , gl_ELEMENT_ARRAY_BUFFER_BINDING+ , gl_TEXTURE10_ARB+ , gl_CURRENT_BINORMAL_EXT+ , gl_REG_26_ATI+ , gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS+ , gl_ACTIVE_VARYINGS_NV+ , gl_COMBINE_RGB_EXT+ , gl_FRAMEBUFFER_COMPLETE_EXT+ , gl_MAX_WIDTH+ , gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS+ , gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT+ , gl_COLORDODGE_KHR+ , gl_PATH_GEN_COEFF_NV+ , gl_FLOAT_MAT4x3_NV+ , gl_MINMAX_SINK+ , gl_FRONT_AND_BACK+ , gl_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT+ , gl_MATRIX1_ARB+ , gl_VIEWPORT_SUBPIXEL_BITS+ , gl_MAX_DUAL_SOURCE_DRAW_BUFFERS+ , gl_BOOL_VEC3_ARB+ , gl_OPERAND2_ALPHA+ , gl_MAX_DEBUG_GROUP_STACK_DEPTH+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR+ , gl_PROGRAM+ , gl_WEIGHT_ARRAY_SIZE_ARB+ , gl_BUFFER_GPU_ADDRESS_NV+ , gl_ALPHA8_EXT+ , gl_RGBA_MODE+ , gl_DUDV_ATI+ , gl_VERTEX_ATTRIB_ARRAY_INTEGER_NV+ , gl_RESAMPLE_DECIMATE_OML+ , gl_QUERY_BUFFER+ , gl_SINGLE_COLOR+ , gl_INT_SAMPLER_RENDERBUFFER_NV+ , gl_MAT_COLOR_INDEXES_BIT_PGI+ , gl_MODELVIEW3_ARB+ , gl_TESS_CONTROL_OUTPUT_VERTICES_EXT+ , gl_PIXEL_MAP_B_TO_B+ , gl_VERTEX_ATTRIB_MAP1_SIZE_APPLE+ , gl_DOUBLE_MAT3+ , gl_MAX_COMBINED_UNIFORM_BLOCKS+ , gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT+ , gl_MAX_VERTEX_IMAGE_UNIFORMS+ , gl_QUERY_RESULT_NO_WAIT_AMD+ , gl_MODELVIEW26_ARB+ , gl_DEPTH_COMPONENT24_OES+ , gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB+ , gl_EVAL_VERTEX_ATTRIB6_NV+ , gl_OUTPUT_TEXTURE_COORD24_EXT+ , gl_COMPUTE_SHADER_BIT+ , gl_MATRIX7_ARB+ , gl_RENDER+ , gl_VERTEX_ATTRIB_BINDING+ , gl_VIDEO_CAPTURE_TO_422_SUPPORTED_NV+ , gl_TEXTURE_COORD_ARRAY_ADDRESS_NV+ , gl_UNSIGNED_INT_SAMPLER_2D_RECT+ , gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB+ , gl_GENERATE_MIPMAP_SGIS+ , gl_SHADER_IMAGE_STORE+ , gl_INT_SAMPLER_3D+ , gl_PROGRAM_BINARY_LENGTH+ , gl_REFERENCED_BY_GEOMETRY_SHADER+ , gl_SHADER_IMAGE_ACCESS_BARRIER_BIT+ , gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS+ , gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT+ , gl_LINE+ , gl_RENDERBUFFER_ALPHA_SIZE_EXT+ , gl_INTENSITY+ , gl_AFFINE_3D_NV+ , gl_ADD_SIGNED_ARB+ , gl_OBJECT_COMPILE_STATUS_ARB+ , gl_RGB8I_EXT+ , gl_COMMAND_BARRIER_BIT+ , gl_COMBINE_RGB+ , gl_VERTEX_SHADER_BINDING_EXT+ , gl_SECONDARY_COLOR_ARRAY_SIZE_EXT+ , gl_DEPTH_EXT+ , gl_LINE_RESET_TOKEN+ , gl_SMOOTH_POINT_SIZE_GRANULARITY+ , gl_SAMPLER_2D_MULTISAMPLE+ , gl_PRIMARY_COLOR_ARB+ , gl_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY+ , gl_GEOMETRY_TEXTURE+ , gl_SOURCE1_RGB_ARB+ , gl_COLOR_ATTACHMENT6_EXT+ , gl_PIXEL_MAP_I_TO_I+ , gl_EVAL_VERTEX_ATTRIB7_NV+ , gl_OP_MIN_EXT+ , gl_RGB16F_EXT+ , gl_TEXTURE_CUBE_MAP_POSITIVE_Z+ , gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS+ , gl_PACK_RESAMPLE_SGIX+ , gl_GREEN_BIAS+ , gl_DEPTH_STENCIL_NV+ , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER+ , gl_CON_29_ATI+ , gl_COLOR_ARRAY_STRIDE_EXT+ , gl_ISOLINES_EXT+ , gl_MODELVIEW4_ARB+ , gl_LINES_ADJACENCY+ , gl_PATH_FILL_MASK_NV+ , gl_HISTOGRAM_LUMINANCE_SIZE+ , gl_TEXTURE_BINDING_RENDERBUFFER_NV+ , gl_PIXEL_UNPACK_BUFFER_EXT+ , gl_RENDERBUFFER_GREEN_SIZE+ , gl_PASS_THROUGH_NV+ , gl_GEOMETRY_VERTICES_OUT_EXT+ , gl_EVAL_VERTEX_ATTRIB12_NV+ , gl_SMOOTH_QUADRATIC_CURVE_TO_NV+ , gl_TEXTURE_BUFFER_SIZE+ , gl_READ_PIXEL_DATA_RANGE_NV+ , gl_ALIASED_LINE_WIDTH_RANGE+ , gl_TRACK_MATRIX_NV+ , gl_COLOR_ARRAY_LIST_STRIDE_IBM+ , gl_WEIGHT_ARRAY_POINTER_ARB+ , gl_SMOOTH_LINE_WIDTH_GRANULARITY+ , gl_CLIP_DISTANCE6+ , gl_FRAMEBUFFER_BINDING+ , gl_EVAL_VERTEX_ATTRIB4_NV+ , gl_CURRENT_SECONDARY_COLOR_EXT+ , gl_IMAGE_CLASS_2_X_32+ , gl_PERSPECTIVE_CORRECTION_HINT+ , gl_NATIVE_GRAPHICS_BEGIN_HINT_PGI+ , gl_SATURATE_BIT_ATI+ , gl_FONT_UNITS_PER_EM_BIT_NV+ , gl_EVAL_VERTEX_ATTRIB3_NV+ , gl_R16UI+ , gl_OUTPUT_TEXTURE_COORD17_EXT+ , gl_TEXTURE_MULTI_BUFFER_HINT_SGIX+ , gl_SKIP_MISSING_GLYPH_NV+ , gl_MIRROR_CLAMP_TO_EDGE_EXT+ , gl_TEXTURE_TYPE_QCOM+ , gl_RGB5_A1+ , gl_UNIFORM_BARRIER_BIT_EXT+ , gl_MULTISAMPLE+ , gl_SAMPLES_ARB+ , gl_RGBA_INTEGER+ , gl_STENCIL_COMPONENTS+ , gl_DEBUG_SEVERITY_LOW+ , gl_TEXTURE_COMPARE_SGIX+ , gl_COLOR_ARRAY_LIST_IBM+ , gl_COMPRESSED_SIGNED_RED_RGTC1+ , gl_MATRIX3_NV+ , gl_MAX_FRAGMENT_UNIFORM_BLOCKS+ , gl_INT_SAMPLER_3D_EXT+ , gl_MODELVIEW19_ARB+ , gl_SWIZZLE_STRQ_DQ_ATI+ , gl_COMBINE_ARB+ , gl_FRAGMENT_COLOR_EXT+ , gl_RENDERBUFFER_WIDTH+ , gl_LUMINANCE4_EXT+ , gl_UNSIGNED_INT_SAMPLER_2D_EXT+ , gl_RGB_SCALE_EXT+ , gl_PIXEL_MAP_I_TO_R+ , gl_DOT4_ATI+ , gl_MAP1_VERTEX_ATTRIB7_4_NV+ , gl_VERTEX_ATTRIB_ARRAY_ENABLED_ARB+ , gl_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB+ , gl_POST_COLOR_MATRIX_BLUE_SCALE_SGI+ , gl_NUM_VIRTUAL_PAGE_SIZES_ARB+ , gl_RENDERBUFFER_FREE_MEMORY_ATI+ , gl_FRAMEBUFFER_DEFAULT_LAYERS+ , gl_COMPUTE_SUBROUTINE+ , gl_PROGRAM_TEX_INSTRUCTIONS_ARB+ , gl_SIGNALED_APPLE+ , gl_MULTISAMPLE_3DFX+ , gl_TEXTURE_INDEX_SIZE_EXT+ , gl_LAYOUT_LINEAR_INTEL+ , gl_LERP_ATI+ , gl_FACTOR_MAX_AMD+ , gl_MATRIX2_ARB+ , gl_EQUAL+ , gl_COLOR_ATTACHMENT0_OES+ , gl_MAX_COLOR_MATRIX_STACK_DEPTH_SGI+ , gl_RGB16+ , gl_COLOR_INDEX4_EXT+ , gl_PROXY_TEXTURE_CUBE_MAP_EXT+ , gl_STENCIL_BACK_FUNC_ATI+ , gl_DRAW_BUFFER8_EXT+ , gl_DST_ALPHA+ , gl_DEBUG_SOURCE_SHADER_COMPILER_KHR+ , gl_C4UB_V2F+ , gl_INTERNALFORMAT_BLUE_TYPE+ , gl_PIXEL_TILE_GRID_DEPTH_SGIX+ , gl_DEPTH_BITS+ , gl_FLOAT16_VEC3_NV+ , gl_ARRAY_OBJECT_OFFSET_ATI+ , gl_DOUBLE_MAT2_EXT+ , gl_TEXTURE_COLOR_SAMPLES_NV+ , gl_NORMAL_ARRAY_EXT+ , gl_MIRROR_CLAMP_TO_EDGE_ATI+ , gl_EDGE_FLAG_ARRAY_POINTER+ , gl_UNSIGNED_INT_24_8_MESA+ , gl_IMAGE_COMPATIBILITY_CLASS+ , gl_BACK_LEFT+ , gl_TESS_EVALUATION_SHADER_INVOCATIONS_ARB+ , gl_COLOR_TABLE_BIAS+ , gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG+ , gl_DARKEN_KHR+ , gl_OCCLUSION_TEST_RESULT_HP+ , gl_DEBUG_TYPE_POP_GROUP_KHR+ , gl_CLAMP_TO_BORDER_ARB+ , gl_UNSIGNED_BYTE_2_3_3_REV+ , gl_SOURCE2_ALPHA_ARB+ , gl_SAMPLE_COVERAGE+ , gl_INTERLEAVED_ATTRIBS_EXT+ , gl_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL+ , gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING+ , gl_VERTEX_SHADER+ , gl_INDEX_ARRAY_ADDRESS_NV+ , gl_QUERY_COUNTER_BITS+ , gl_COMPRESSED_RGBA_ASTC_8x6_KHR+ , gl_FRAMEBUFFER_BINDING_EXT+ , gl_VERTEX_ELEMENT_SWIZZLE_AMD+ , gl_DEBUG_CATEGORY_SHADER_COMPILER_AMD+ , gl_ARRAY_OBJECT_BUFFER_ATI+ , gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES+ , gl_RENDERBUFFER_INTERNAL_FORMAT+ , gl_VIEW_CLASS_8_BITS+ , gl_TEXTURE_CUBE_MAP_POSITIVE_Y_OES+ , gl_SHADER_IMAGE_ATOMIC+ , gl_MAX_GEOMETRY_OUTPUT_VERTICES_ARB+ , gl_COVERAGE_ATTACHMENT_NV+ , gl_NUM_PROGRAM_BINARY_FORMATS_OES+ , gl_CURRENT_RASTER_TEXTURE_COORDS+ , gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS+ , gl_PIXEL_MAP_A_TO_A+ , gl_TEXTURE_WRAP_T+ , gl_LINE_SMOOTH_HINT+ , gl_DRAW_BUFFER11_EXT+ , gl_OFFSET_TEXTURE_RECTANGLE_SCALE_NV+ , gl_LUMINANCE16_SNORM+ , gl_PERFQUERY_FLUSH_INTEL+ , gl_HISTOGRAM_SINK+ , gl_MAP1_VERTEX_ATTRIB15_4_NV+ , gl_OUTPUT_TEXTURE_COORD7_EXT+ , gl_HISTOGRAM_BLUE_SIZE+ , gl_LUMINANCE32F_EXT+ , gl_RG16UI+ , gl_TEXTURE_ALPHA_MODULATE_IMG+ , gl_INT_SAMPLER_2D_RECT+ , gl_STENCIL_BACK_WRITEMASK+ , gl_PIXEL_TRANSFORM_2D_MATRIX_EXT+ , gl_AUX3+ , gl_FRAMEBUFFER_UNSUPPORTED+ , gl_MAX_TEXTURE_MAX_ANISOTROPY_EXT+ , gl_TEXTURE_DEFORMATION_SGIX+ , gl_CON_23_ATI+ , gl_CLIP_DISTANCE0+ , gl_COLOR_ATTACHMENT10+ , gl_POINT_SIZE_MAX_EXT+ , gl_TEXTURE5+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR+ , gl_PATH_MODELVIEW_MATRIX_NV+ , gl_LINE_LOOP+ , gl_MODELVIEW17_ARB+ , gl_UNSIGNED_INT16_VEC2_NV+ , gl_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES+ , gl_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS+ , gl_DRAW_BUFFER3_EXT+ , gl_TEXTURE_SHADOW+ , gl_STENCIL_ATTACHMENT+ , gl_MAP_STENCIL+ , gl_PATH_DASH_ARRAY_COUNT_NV+ , gl_BLEND+ , gl_UNIFORM_BUFFER_OFFSET_ALIGNMENT+ , gl_TEXTURE_TARGET_QCOM+ , gl_NORMAL_MAP_OES+ , gl_UNSIGNED_SHORT_4_4_4_4_REV_EXT+ , gl_TEXTURE20+ , gl_EDGE_FLAG_ARRAY_COUNT_EXT+ , gl_SMOOTH+ , gl_SHADER_INCLUDE_ARB+ , gl_CLAMP_TO_EDGE_SGIS+ , gl_COMPRESSED_ALPHA+ , gl_TEXTURE_IMAGE_FORMAT+ , gl_MAX_FRAMEBUFFER_LAYERS+ , gl_WRITEONLY_RENDERING_QCOM+ , gl_BACK_RIGHT+ , gl_INVARIANT_DATATYPE_EXT+ , gl_LINE_TO_NV+ , gl_PIXEL_UNPACK_BUFFER_BINDING_ARB+ , gl_LIST_BIT+ , gl_MAX_ATTRIB_STACK_DEPTH+ , gl_FRAGMENT_SHADER+ , gl_IMPLEMENTATION_COLOR_READ_FORMAT+ , gl_COLOR_TABLE_WIDTH_SGI+ , gl_DEBUG_OBJECT_MESA+ , gl_EYE_LINE_SGIS+ , gl_COMPRESSED_ALPHA_ARB+ , gl_DEPTH_BUFFER_BIT7_QCOM+ , gl_OPERAND2_RGB_ARB+ , gl_PROGRAM_BINARY_ANGLE+ , gl_MATRIX_EXT+ , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS+ , gl_RED_NV+ , gl_LIGHT7+ , gl_LOW_FLOAT+ , gl_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT+ , gl_CON_18_ATI+ , gl_UNIFORM_BUFFER_ADDRESS_NV+ , gl_VERTEX_ARRAY_BUFFER_BINDING_ARB+ , gl_RED_BIT_ATI+ , gl_TRACE_TEXTURES_BIT_MESA+ , gl_GEOMETRY_SHADER+ , gl_VERTEX_ARRAY_ADDRESS_NV+ , gl_TIMEOUT_IGNORED_APPLE+ , gl_RENDERBUFFER_BINDING+ , gl_RGB16F+ , gl_TEXTURE_COORD_ARRAY_LENGTH_NV+ , gl_MAX_FRAMEBUFFER_LAYERS_EXT+ , gl_MODELVIEW23_ARB+ , gl_BGR_EXT+ , gl_ONE_MINUS_SRC1_COLOR+ , gl_VARIANT_ARRAY_EXT+ , gl_RGB4+ , gl_RENDERBUFFER_DEPTH_SIZE_OES+ , gl_MAX_VARYING_COMPONENTS_EXT+ , gl_CURRENT_MATRIX_NV+ , gl_T2F_IUI_N3F_V3F_EXT+ , gl_SLUMINANCE8+ , gl_MODELVIEW1_MATRIX_EXT+ , gl_MODELVIEW29_ARB+ , gl_COLOR_ATTACHMENT5_EXT+ , gl_DOUBLE_MAT2+ , gl_RGBA12_EXT+ , gl_ACCUM_BLUE_BITS+ , gl_INVARIANT_EXT+ , gl_ACTIVE_UNIFORM_MAX_LENGTH+ , gl_FOG_SPECULAR_TEXTURE_WIN+ , gl_COLOR_TABLE_SCALE_SGI+ , gl_IUI_V3F_EXT+ , gl_UNSIGNED_INT_IMAGE_3D_EXT+ , gl_MAX_DEBUG_MESSAGE_LENGTH_KHR+ , gl_TEXTURE_CUBE_MAP_POSITIVE_Y+ , gl_DOUBLE_VEC2+ , gl_MAX_SAMPLE_MASK_WORDS+ , gl_DEBUG_OUTPUT+ , gl_OBJECT_SHADER_SOURCE_LENGTH_ARB+ , gl_R32F_EXT+ , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV+ , gl_COPY_WRITE_BUFFER_BINDING+ , gl_TEXTURE15_ARB+ , gl_UNIFORM_BLOCK_NAME_LENGTH+ , gl_COLOR_ATTACHMENT4_NV+ , gl_DST_OVER_NV+ , gl_ATOMIC_COUNTER_BUFFER+ , gl_MAP1_VERTEX_ATTRIB12_4_NV+ , gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB+ , gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV+ , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE+ , gl_RGB_RAW_422_APPLE+ , gl_MAX_RECTANGLE_TEXTURE_SIZE+ , gl_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT+ , gl_FRAGMENT_COLOR_MATERIAL_SGIX+ , gl_POST_COLOR_MATRIX_RED_SCALE_SGI+ , gl_VIBRANCE_SCALE_NV+ , gl_POINT_FADE_THRESHOLD_SIZE+ , gl_QUERY_NO_WAIT_NV+ , gl_FRAGMENT_SHADER_DERIVATIVE_HINT_OES+ , gl_RESAMPLE_REPLICATE_OML+ , gl_RENDERBUFFER_BINDING_ANGLE+ , gl_R1UI_V3F_SUN+ , gl_CONVOLUTION_2D+ , gl_OBJECT_TYPE+ , gl_MAX_MAP_TESSELLATION_NV+ , gl_DOUBLE_MAT4x3_EXT+ , gl_MULTISAMPLE_BUFFER_BIT4_QCOM+ , gl_UNSIGNED_INT64_AMD+ , gl_MAX_PATCH_VERTICES+ , gl_TEXTURE_COMPONENTS+ , gl_ELEMENT_ARRAY_POINTER_APPLE+ , gl_COLOR_ATTACHMENT6_NV+ , gl_MODELVIEW_PROJECTION_NV+ , gl_STATIC_ATI+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_Z+ , gl_CONVOLUTION_BORDER_MODE+ , gl_2PASS_0_SGIS+ , gl_GREEN_INTEGER_EXT+ , gl_DEBUG_TYPE_OTHER+ , gl_FRAMEBUFFER_SRGB_EXT+ , gl_COLOR_WRITEMASK+ , gl_TANGENT_ARRAY_EXT+ , gl_FONT_TARGET_UNAVAILABLE_NV+ , gl_FONT_UNAVAILABLE_NV+ , gl_COMBINER2_NV+ , gl_TEXTURE22_ARB+ , gl_PATH_INITIAL_DASH_CAP_NV+ , gl_SWIZZLE_STRQ_ATI+ , gl_OBJECT_LINE_SGIS+ , gl_MAX_NUM_ACTIVE_VARIABLES+ , gl_COLOR_ATTACHMENT3_EXT+ , gl_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI+ , gl_SCREEN_KHR+ , gl_ZOOM_X+ , gl_PROGRAM_MATRIX_EXT+ , gl_TEXTURE_VIEW+ , gl_NEGATIVE_ONE_TO_ONE+ , gl_CONVOLUTION_1D_EXT+ , gl_CLAMP_READ_COLOR+ , gl_REFLECTION_MAP+ , gl_PROXY_HISTOGRAM+ , gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS+ , gl_HALF_FLOAT_ARB+ , gl_LINE_QUALITY_HINT_SGIX+ , gl_MAP_WRITE_BIT_EXT+ , gl_PIXEL_TRANSFORM_2D_EXT+ , gl_INCR+ , gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES+ , gl_LUMINANCE_FLOAT32_ATI+ , gl_EVAL_VERTEX_ATTRIB11_NV+ , gl_TEXTURE_COORD_ARRAY_SIZE+ , gl_IMAGE_BINDING_LEVEL_EXT+ , gl_RGBA16I_EXT+ , gl_T2F_IUI_N3F_V2F_EXT+ , gl_MIN_PROGRAM_TEXEL_OFFSET_NV+ , gl_EQUIV+ , gl_TEXTURE_BINDING_CUBE_MAP_ARB+ , gl_DRAW_BUFFER1_NV+ , gl_INTERLACE_READ_OML+ , gl_TEXTURE15+ , gl_NAND+ , gl_VERTEX_ARRAY_RANGE_APPLE+ , gl_CONDITION_SATISFIED_APPLE+ , gl_DISPATCH_INDIRECT_BUFFER_BINDING+ , gl_RG16I+ , gl_EYE_RADIAL_NV+ , gl_SLUMINANCE_ALPHA_EXT+ , gl_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL+ , gl_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT+ , gl_RG32F+ , gl_SRC1_ALPHA+ , gl_RGBA2+ , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES+ , gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT+ , gl_TEXTURE_COORD_ARRAY_STRIDE_EXT+ , gl_OUTPUT_TEXTURE_COORD10_EXT+ , gl_DEPTH_ATTACHMENT+ , gl_NORMAL_ARRAY_POINTER_EXT+ , gl_OPERAND0_ALPHA_ARB+ , gl_COMPRESSED_LUMINANCE_ARB+ , gl_LIST_PRIORITY_SGIX+ , gl_BOUNDING_BOX_NV+ , gl_PATCH_VERTICES_EXT+ , gl_COPY_INVERTED+ , gl_FRAMEBUFFER_BARRIER_BIT_EXT+ , gl_OBJECT_ACTIVE_ATTRIBUTES_ARB+ , gl_DISCRETE_AMD+ , gl_DOT3_RGBA_ARB+ , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES+ , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES+ , gl_SET+ , gl_TEXTURE_MAX_ANISOTROPY_EXT+ , gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2+ , gl_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB+ , gl_MAP2_GRID_DOMAIN+ , gl_RENDERBUFFER_SAMPLES+ , gl_MAX_TEXTURE_LOD_BIAS+ , gl_DEPTH_PASS_INSTRUMENT_SGIX+ , gl_TEXTURE_COORD_NV+ , gl_PROGRAM_ERROR_POSITION_NV+ , gl_RENDERBUFFER_RED_SIZE_EXT+ , gl_INDEX_OFFSET+ , gl_CURRENT_FOG_COORD+ , gl_MIRRORED_REPEAT+ , gl_MAP_INVALIDATE_BUFFER_BIT+ , gl_MATRIX_INDEX_ARRAY_OES+ , gl_DRAW_BUFFER6_ATI+ , gl_INTENSITY12+ , gl_FLOAT_RGBA_NV+ , gl_SMOOTH_POINT_SIZE_RANGE+ , gl_COLOR_BUFFER_BIT1_QCOM+ , gl_TEXT_FRAGMENT_SHADER_ATI+ , gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT+ , gl_CLIP_PLANE3+ , gl_NAMED_STRING_TYPE_ARB+ , gl_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB+ , gl_TEXTURE_VIEW_MIN_LEVEL+ , gl_SWIZZLE_STQ_ATI+ , gl_RGBA_FLOAT_MODE_ARB+ , gl_RG8UI+ , gl_FRAGMENT_DEPTH+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR+ , gl_MULTISAMPLE_SGIS+ , gl_PROXY_TEXTURE_1D+ , gl_MODELVIEW0_ARB+ , gl_LINE_STRIP_ADJACENCY_EXT+ , gl_RGBA16UI+ , gl_SRC_ATOP_NV+ , gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE+ , gl_REG_30_ATI+ , gl_4PASS_3_EXT+ , gl_INT_IMAGE_3D_EXT+ , gl_SYSTEM_FONT_NAME_NV+ , gl_DRAW_BUFFER6+ , gl_RG32I+ , gl_COLOR_BUFFER_BIT3_QCOM+ , gl_CURRENT_OCCLUSION_QUERY_ID_NV+ , gl_INTERNALFORMAT_STENCIL_SIZE+ , gl_STATIC_DRAW_ARB+ , gl_COMPRESSED_SRGB_ALPHA_EXT+ , gl_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI+ , gl_PALETTE8_RGBA4_OES+ , gl_FOG_START+ , gl_DEBUG_TYPE_POP_GROUP+ , gl_DRAW_BUFFER14_ATI+ , gl_IMAGE_1D_ARRAY+ , gl_RELATIVE_LARGE_CCW_ARC_TO_NV+ , gl_FONT_MAX_ADVANCE_HEIGHT_BIT_NV+ , gl_EXCLUSION_NV+ , gl_FONT_X_MAX_BOUNDS_BIT_NV+ , gl_PIXEL_TEX_GEN_Q_FLOOR_SGIX+ , gl_DEPTH_BUFFER_BIT2_QCOM+ , gl_UNPACK_FLIP_Y_WEBGL+ , gl_COLOR_ATTACHMENT15_NV+ , gl_RG16F_EXT+ , gl_PRIMARY_COLOR+ , gl_UNIFORM_BLOCK_DATA_SIZE+ , gl_INTERNALFORMAT_STENCIL_TYPE+ , gl_COLOR_MATRIX_STACK_DEPTH_SGI+ , gl_AND+ , gl_GEOMETRY_INPUT_TYPE_ARB+ , gl_SAMPLER_BUFFER+ , gl_COLOR_BUFFER_BIT2_QCOM+ , gl_MAX_CLIP_DISTANCES+ , gl_OUTPUT_TEXTURE_COORD25_EXT+ , gl_SLIM8U_SGIX+ , gl_OP_DOT4_EXT+ , gl_INFO_LOG_LENGTH+ , gl_REG_25_ATI+ , gl_MAX_PROGRAM_CALL_DEPTH_NV+ , gl_VIRTUAL_PAGE_SIZE_INDEX_ARB+ , gl_MAX_PROGRAM_RESULT_COMPONENTS_NV+ , gl_RELATIVE_CONIC_CURVE_TO_NV+ , gl_CLIP_DISTANCE4+ , gl_UTF8_NV+ , gl_INVALID_INDEX+ , gl_DOT3_RGBA_IMG+ , gl_FRAGMENT_MATERIAL_EXT+ , gl_PACK_CMYK_HINT_EXT+ , gl_LUMINANCE_ALPHA8I_EXT+ , gl_PIXEL_BUFFER_BARRIER_BIT_EXT+ , gl_BUFFER_KHR+ , gl_STENCIL_BACK_OP_VALUE_AMD+ , gl_DST_COLOR+ , gl_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT+ , gl_ZERO+ , gl_COORD_REPLACE+ , gl_FRAMEBUFFER_SRGB+ , gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES+ , gl_CONSTANT+ , gl_TEXTURE_CONSTANT_DATA_SUNX+ , gl_MAX_DEBUG_MESSAGE_LENGTH+ , gl_MAX_VARYING_FLOATS+ , gl_PLUS_NV+ , gl_UNIFORM_NAME_LENGTH+ , gl_SECONDARY_COLOR_ARRAY_STRIDE+ , gl_MAP1_VERTEX_ATTRIB13_4_NV+ , gl_TRACK_MATRIX_TRANSFORM_NV+ , gl_MAX_COMPUTE_UNIFORM_COMPONENTS+ , gl_DOUBLE_MAT4+ , gl_TEXTURE_SRGB_DECODE_EXT+ , gl_TEXTURE_BORDER_COLOR+ , gl_DISPLAY_LIST+ , gl_COLOR_ENCODING+ , gl_EXPAND_NEGATE_NV+ , gl_UNPACK_ROW_LENGTH_EXT+ , gl_RGB_SCALE_ARB+ , gl_CURRENT_ATTRIB_NV+ , gl_TEXTURE25+ , gl_DEPTH+ , gl_DRAW_BUFFER2_ARB+ , gl_FENCE_CONDITION_NV+ , gl_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB+ , gl_OP_POWER_EXT+ , gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB+ , gl_FRAMEBUFFER_DEFAULT+ , gl_COLOR_ATTACHMENT13_EXT+ , gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE+ , gl_CUBIC_HP+ , gl_GREATER+ , gl_OP_MOV_EXT+ , gl_RED_SNORM+ , gl_ALPHA_MAX_CLAMP_INGR+ , gl_VERTEX_ATTRIB_ARRAY_LONG+ , gl_DEBUG_SEVERITY_LOW_ARB+ , gl_PURGEABLE_APPLE+ , gl_MAX_SHININESS_NV+ , gl_VERTEX_SHADER_INVARIANTS_EXT+ , gl_CLIP_DISTANCE1+ , gl_PROGRAM_NATIVE_PARAMETERS_ARB+ , gl_SRC_ALPHA_SATURATE+ , gl_COLOR_RENDERABLE+ , gl_LINE_STIPPLE+ , gl_COMPILE_AND_EXECUTE+ , gl_FOG_COORDINATE+ , gl_MULTISAMPLE_COVERAGE_MODES_NV+ , gl_OUTPUT_TEXTURE_COORD16_EXT+ , gl_SCALE_BY_FOUR_NV+ , gl_INDEX_ARRAY_BUFFER_BINDING_ARB+ , gl_MAX_TEXTURE_IMAGE_UNITS_ARB+ , gl_HALF_BIAS_NEGATE_NV+ , gl_INT_IMAGE_2D_MULTISAMPLE_EXT+ , gl_CON_30_ATI+ , gl_SAMPLE_ALPHA_TO_ONE_EXT+ , gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB+ , gl_STORAGE_CACHED_APPLE+ , gl_SAMPLER_2D_SHADOW+ , gl_ALPHA_FLOAT16_APPLE+ , gl_PERFQUERY_COUNTER_EVENT_INTEL+ , gl_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB+ , gl_BACK_PRIMARY_COLOR_NV+ , gl_PROGRAM_PARAMETERS_ARB+ , gl_MIN_SPARSE_LEVEL_AMD+ , gl_INT_SAMPLER_1D_ARRAY_EXT+ , gl_DOUBLEBUFFER+ , gl_NEGATIVE_W_EXT+ , gl_VIEW_CLASS_RGTC1_RED+ , gl_PROGRAM_KHR+ , gl_LINEARDODGE_NV+ , gl_NORMALIZED_RANGE_EXT+ , gl_BUFFER_SERIALIZED_MODIFY_APPLE+ , gl_TEXTURE3_ARB+ , gl_INDEX_TEST_FUNC_EXT+ , gl_COMPUTE_TEXTURE+ , gl_UNSIGNED_INT_IMAGE_BUFFER_EXT+ , gl_CON_9_ATI+ , gl_RELATIVE_LINE_TO_NV+ , gl_TEXTURE_RECTANGLE_NV+ , gl_COMPRESSED_RGBA_S3TC_DXT5_ANGLE+ , gl_COMPRESSED_RGBA_ASTC_6x5_KHR+ , gl_TEXTURE_LUMINANCE_SIZE+ , gl_PROJECTION_MATRIX+ , gl_VIBRANCE_BIAS_NV+ , gl_MAX_VERTEX_ATOMIC_COUNTERS+ , gl_FOG_COORD_ARRAY_POINTER+ , gl_POLYGON_OFFSET_BIAS_EXT+ , gl_DEBUG_SOURCE_OTHER+ , gl_LINEAR_SHARPEN_ALPHA_SGIS+ , gl_AVERAGE_EXT+ , gl_PACK_SKIP_IMAGES_EXT+ , gl_BITMAP_TOKEN+ , gl_TESSELLATION_MODE_AMD+ , gl_POST_CONVOLUTION_COLOR_TABLE_SGI+ , gl_MODELVIEW1_EXT+ , gl_OPERAND1_RGB_ARB+ , gl_4D_COLOR_TEXTURE+ , gl_ACTIVE_ATTRIBUTES+ , gl_BUFFER_BINDING+ , gl_VERTEX_STATE_PROGRAM_NV+ , gl_DST_ATOP_NV+ , gl_TEXTURE_DEPTH_EXT+ , gl_UNSIGNED_INT_VEC4+ , gl_GREEN_INTEGER+ , gl_DOUBLE_MAT4x2_EXT+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR+ , gl_INDEX_ARRAY_LIST_IBM+ , gl_SAMPLER_2D_ARRAY_SHADOW+ , gl_COMPRESSED_SRGB_S3TC_DXT1_NV+ , gl_COMPRESSED_RGBA_ASTC_4x3x3_OES+ , gl_DRAW_BUFFER3_ATI+ , gl_MAX_FRAGMENT_UNIFORM_COMPONENTS+ , gl_PROXY_TEXTURE_3D_EXT+ , gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT+ , gl_PATH_COMPUTED_LENGTH_NV+ , gl_DEPTH_STENCIL_MESA+ , gl_MAT_DIFFUSE_BIT_PGI+ , gl_TEXTURE_STENCIL_SIZE+ , gl_PATH_PROJECTION_NV+ , gl_DUAL_TEXTURE_SELECT_SGIS+ , gl_MATRIX14_ARB+ , gl_PATH_OBJECT_BOUNDING_BOX_NV+ , gl_READ_PIXELS+ , gl_TRIANGLE_LIST_SUN+ , gl_COMPARE_R_TO_TEXTURE+ , gl_INTENSITY8UI_EXT+ , gl_DEBUG_OUTPUT_SYNCHRONOUS_ARB+ , gl_COLOR_TABLE_GREEN_SIZE+ , gl_CURRENT_VERTEX_ATTRIB+ , gl_POST_COLOR_MATRIX_GREEN_BIAS+ , gl_GPU_MEMORY_INFO_EVICTION_COUNT_NVX+ , gl_SUBSAMPLE_DISTANCE_AMD+ , gl_SRGB8_EXT+ , gl_DETAIL_TEXTURE_FUNC_POINTS_SGIS+ , gl_INCR_WRAP_EXT+ , gl_UNPACK_COMPRESSED_BLOCK_SIZE+ , gl_OBJECT_VALIDATE_STATUS_ARB+ , gl_WEIGHT_ARRAY_STRIDE_ARB+ , gl_OUTPUT_TEXTURE_COORD3_EXT+ , gl_TEXTURE16_ARB+ , gl_VIDEO_COLOR_CONVERSION_MATRIX_NV+ , gl_EYE_DISTANCE_TO_POINT_SGIS+ , gl_TEXTURE_COMPARE_FUNC+ , gl_DEPTH_BUFFER_FLOAT_MODE_NV+ , gl_TEXTURE_SWIZZLE_G+ , gl_DEBUG_TYPE_OTHER_ARB+ , gl_TESS_EVALUATION_SHADER_BIT_EXT+ , gl_VERTEX_PROGRAM_CALLBACK_DATA_MESA+ , gl_INT_SAMPLER_BUFFER_EXT+ , gl_OP_CLAMP_EXT+ , gl_POINT_SIZE_MIN+ , gl_UNSIGNED_BYTE_3_3_2_EXT+ , gl_TEXTURE_CLIPMAP_DEPTH_SGIX+ , gl_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT+ , gl_DOUBLE_VEC4_EXT+ , gl_SYNC_CONDITION_APPLE+ , gl_MAX_TEXTURE_COORDS_NV+ , gl_RELATIVE_QUADRATIC_CURVE_TO_NV+ , gl_DEBUG_GROUP_STACK_DEPTH_KHR+ , gl_CONTEXT_LOST_KHR+ , gl_QUADRATIC_CURVE_TO_NV+ , gl_MIN_EXT+ , gl_VERTEX_ATTRIB_ARRAY11_NV+ , gl_FACTOR_ALPHA_MODULATE_IMG+ , gl_MAP1_GRID_DOMAIN+ , gl_COLOR_MATRIX_STACK_DEPTH+ , gl_IMAGE_PIXEL_FORMAT+ , gl_DRAW_BUFFER1_EXT+ , gl_UNSIGNED_INT_VEC2+ , gl_QUAD_LUMINANCE8_SGIS+ , gl_ELEMENT_ARRAY_UNIFIED_NV+ , gl_COLOR_LOGIC_OP+ , gl_GREEN_NV+ , gl_DEPTH_COMPONENT+ , gl_TEXTURE18+ , gl_COMBINER_SUM_OUTPUT_NV+ , gl_DUAL_LUMINANCE8_SGIS+ , gl_PATH_DASH_OFFSET_RESET_NV+ , gl_INT_SAMPLER_BUFFER+ , gl_DEBUG_SEVERITY_MEDIUM_ARB+ , gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT+ , gl_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX+ , gl_UNSIGNED_SHORT_15_1_MESA+ , gl_LUMINANCE32F_ARB+ , gl_TRANSPOSE_NV+ , gl_LUMINANCE8_EXT+ , gl_WRITE_DISCARD_NV+ , gl_STENCIL_BUFFER_BIT5_QCOM+ , gl_FOG_END+ , gl_DRAW_BUFFER9_NV+ , gl_PROVOKING_VERTEX_EXT+ , gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS+ , gl_2PASS_0_EXT+ , gl_MAP_UNSYNCHRONIZED_BIT+ , gl_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI+ , gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV+ , gl_SAMPLER_CUBE_SHADOW+ , gl_V2F+ , gl_IMAGE_2D_EXT+ , gl_LUMINANCE32UI_EXT+ , gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT+ , gl_SLUMINANCE8_ALPHA8_NV+ , gl_MAX_ASYNC_DRAW_PIXELS_SGIX+ , gl_POINT_SIZE_ARRAY_TYPE_OES+ , gl_SIGNED_LUMINANCE8_ALPHA8_NV+ , gl_UNSIGNED_INT_24_8_EXT+ , gl_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV+ , gl_CONIC_CURVE_TO_NV+ , gl_STREAM_DRAW_ARB+ , gl_ACTIVE_PROGRAM_EXT+ , gl_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB+ , gl_PROGRAM_RESIDENT_NV+ , gl_COLOR_TABLE_ALPHA_SIZE_SGI+ , gl_INT_IMAGE_2D_ARRAY_EXT+ , gl_OUTPUT_TEXTURE_COORD15_EXT+ , gl_SRC_OUT_NV+ , gl_MAP_FLUSH_EXPLICIT_BIT+ , gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB+ , gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS+ , gl_EVAL_VERTEX_ATTRIB2_NV+ , gl_PIXEL_TILE_WIDTH_SGIX+ , gl_PROXY_TEXTURE_RECTANGLE+ , gl_VERTEX_ARRAY_BINDING+ , gl_CLIP_PLANE4+ , gl_EVAL_VERTEX_ATTRIB15_NV+ , gl_POINT_FADE_THRESHOLD_SIZE_ARB+ , gl_UNSIGNED_INT_5_9_9_9_REV_EXT+ , gl_DEBUG_GROUP_STACK_DEPTH+ , gl_QUERY_WAIT_INVERTED+ , gl_DRAW_PIXEL_TOKEN+ , gl_OPERAND2_ALPHA_ARB+ , gl_STACK_UNDERFLOW+ , gl_FLOAT_VEC4_ARB+ , gl_OBJECT_INFO_LOG_LENGTH_ARB+ , gl_DRAW_BUFFER15_EXT+ , gl_PATH_PROJECTION_MATRIX_NV+ , gl_ADD_SIGNED+ , gl_FRAGMENT_INTERPOLATION_OFFSET_BITS+ , gl_VERTEX_SHADER_INSTRUCTIONS_EXT+ , gl_NEXT_BUFFER_NV+ , gl_TRIANGLE_STRIP_ADJACENCY_ARB+ , gl_UNSIGNED_BYTE_2_3_3_REV_EXT+ , gl_QUERY_RESULT_NO_WAIT+ , gl_SECONDARY_COLOR_ARRAY_ADDRESS_NV+ , gl_ALPHA16_SNORM+ , gl_COLOR_ARRAY_LENGTH_NV+ , gl_SLUMINANCE_EXT+ , gl_DOT_PRODUCT_TEXTURE_2D_NV+ , gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES+ , gl_INT_IMAGE_2D_ARRAY+ , gl_POLYGON_OFFSET_LINE+ , gl_ONE_MINUS_DST_ALPHA+ , gl_ACCUM_BUFFER_BIT+ , gl_SOURCE1_ALPHA_ARB+ , gl_HISTOGRAM_WIDTH_EXT+ , gl_RENDERBUFFER_SAMPLES_EXT+ , gl_FRAGMENT_LIGHTING_SGIX+ , gl_TEXTURE_WIDTH_QCOM+ , gl_TEXTURE_BUFFER_FORMAT_EXT+ , gl_VERTEX_PROGRAM_TWO_SIDE+ , gl_DEBUG_TYPE_OTHER_KHR+ , gl_PRIMARY_COLOR_EXT+ , gl_TEXTURE_COMPRESSED_ARB+ , gl_PROXY_TEXTURE_1D_ARRAY_EXT+ , gl_NORMAL_ARRAY_TYPE+ , gl_POST_COLOR_MATRIX_RED_BIAS_SGI+ , gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB+ , gl_VERTEX_ATTRIB_ARRAY7_NV+ , gl_MAX_VERTEX_ATTRIB_STRIDE+ , gl_COLOR+ , gl_YCBCR_422_APPLE+ , gl_TESS_GEN_SPACING+ , gl_VERTEX_SHADER_INVOCATIONS_ARB+ , gl_STENCIL_INDEX4_OES+ , gl_COMBINER_CD_DOT_PRODUCT_NV+ , gl_VIRTUAL_PAGE_SIZE_Z_ARB+ , gl_RIGHT+ , gl_ALPHA16F_ARB+ , gl_TANGENT_ARRAY_TYPE_EXT+ , gl_READ_FRAMEBUFFER_NV+ , gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT+ , gl_PALETTE4_RGB8_OES+ , gl_UNSIGNED_INT_IMAGE_3D+ , gl_NORMAL_ARRAY_ADDRESS_NV+ , gl_NO_RESET_NOTIFICATION_EXT+ , gl_RGB4_S3TC+ , gl_AUX1+ , gl_MODELVIEW1_ARB+ , gl_OP_NEGATE_EXT+ , gl_PACK_COMPRESSED_BLOCK_HEIGHT+ , gl_RENDERBUFFER_BINDING_OES+ , gl_INT_IMAGE_1D+ , gl_TEXTURE_GEQUAL_R_SGIX+ , gl_VERTEX_BINDING_DIVISOR+ , gl_BLEND_SRC_ALPHA_OES+ , gl_READ_BUFFER_NV+ , gl_DEBUG_TYPE_ERROR_KHR+ , gl_INT_IMAGE_CUBE_EXT+ , gl_COMPRESSED_RGBA_ASTC_6x6x6_OES+ , gl_IMAGE_MIN_FILTER_HP+ , gl_QUAD_ALPHA8_SGIS+ , gl_IMAGE_BINDING_LEVEL+ , gl_DOT3_RGB_EXT+ , gl_SAMPLER_3D_OES+ , gl_INT_VEC4+ , gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT+ , gl_NO_RESET_NOTIFICATION_ARB+ , gl_IMAGE_MAG_FILTER_HP+ , gl_COLOR4_BIT_PGI+ , gl_MAX_CLIPMAP_DEPTH_SGIX+ , gl_DEBUG_CATEGORY_OTHER_AMD+ , gl_INT_IMAGE_2D_MULTISAMPLE+ , gl_PERFQUERY_COUNTER_DATA_FLOAT_INTEL+ , gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB+ , gl_BINORMAL_ARRAY_EXT+ , gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT+ , gl_DRAW_BUFFER9_ARB+ , gl_DSDT8_NV+ , gl_MAP1_VERTEX_ATTRIB9_4_NV+ , gl_PROGRAM_OBJECT_ARB+ , gl_FONT_UNDERLINE_POSITION_BIT_NV+ , gl_SHADER_OPERATION_NV+ , gl_QUERY_RESULT_AVAILABLE_EXT+ , gl_VIVIDLIGHT_NV+ , gl_HSL_HUE_NV+ , gl_EMBOSS_MAP_NV+ , gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB+ , gl_ALL_BARRIER_BITS+ , gl_TEXTURE11_ARB+ , gl_BOLD_BIT_NV+ , gl_SAMPLE_BUFFERS_3DFX+ , gl_INTERNALFORMAT_ALPHA_SIZE+ , gl_COMPRESSED_RGBA_ASTC_8x8_KHR+ , gl_VIRTUAL_PAGE_SIZE_Z_AMD+ , gl_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE+ , gl_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB+ , gl_DRAW_PIXELS_APPLE+ , gl_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB+ , gl_FRAGMENT_COLOR_MATERIAL_FACE_SGIX+ , gl_DRAW_INDIRECT_ADDRESS_NV+ , gl_COVERAGE_BUFFER_BIT_NV+ , gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT+ , gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT+ , gl_BLUE_NV+ , gl_TEXTURE0_ARB+ , gl_DEBUG_SOURCE_THIRD_PARTY_ARB+ , gl_TEXTURE_NORMAL_EXT+ , gl_TEXTURE_BUFFER_FORMAT_ARB+ , gl_OPERAND0_ALPHA+ , gl_FLOAT_MAT2x3+ , gl_TEXTURE_BINDING+ , gl_INT_SAMPLER_2D+ , gl_OR+ , gl_INT16_VEC2_NV+ , gl_DUAL_ALPHA4_SGIS+ , gl_FRAMEZOOM_FACTOR_SGIX+ , gl_IMAGE_2D_MULTISAMPLE_ARRAY_EXT+ , gl_RGB_INTEGER+ , gl_UNSIGNED_INT64_VEC2_NV+ , gl_OUTPUT_TEXTURE_COORD21_EXT+ , gl_ENABLE_BIT+ , gl_POLYGON_OFFSET_EXT+ , gl_PIXEL_TEX_GEN_MODE_SGIX+ , gl_LINE_SMOOTH+ , gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB+ , gl_COLOR_TABLE_LUMINANCE_SIZE_SGI+ , gl_COLOR_BUFFER_BIT7_QCOM+ , gl_PATH_FILL_MODE_NV+ , gl_IMAGE_CUBE+ , gl_CON_5_ATI+ , gl_COLOR_ATTACHMENT2_EXT+ , gl_FAILURE_NV+ , gl_VERTEX_ARRAY_LIST_STRIDE_IBM+ , gl_MAX_SPARSE_TEXTURE_SIZE_ARB+ , gl_VERSION_ES_CL_1_1+ , gl_PERFMON_GLOBAL_MODE_QCOM+ , gl_DEPTH_COMPONENT32F+ , gl_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT+ , gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS+ , gl_IMAGE_2D_MULTISAMPLE_EXT+ , gl_FRAMEBUFFER_OES+ , gl_TRANSPOSE_PROJECTION_MATRIX+ , gl_BUFFER_MAP_POINTER+ , gl_INT_10_10_10_2_OES+ , gl_PROGRAM_PIPELINE_OBJECT_EXT+ , gl_GEOMETRY_SHADER_INVOCATIONS_EXT+ , gl_SPRITE_AXIS_SGIX+ , gl_RED_INTEGER_EXT+ , gl_COMPRESSED_RGBA_ASTC_10x6_KHR+ , gl_TEXTURE_COORD_ARRAY_COUNT_EXT+ , gl_SIGNED_RGB_NV+ , gl_CW+ , gl_PACK_SUBSAMPLE_RATE_SGIX+ , gl_TEXTURE14_ARB+ , gl_OUTPUT_TEXTURE_COORD26_EXT+ , gl_DRAW_BUFFER+ , gl_PACK_ROW_BYTES_APPLE+ , gl_BLUE_INTEGER_EXT+ , gl_STORAGE_CLIENT_APPLE+ , gl_ALL_SHADER_BITS+ , gl_FOG_COORDINATE_ARRAY_POINTER+ , gl_ACTIVE_PROGRAM+ , gl_RGBA32F_ARB+ , gl_VERTEX_ATTRIB_ARRAY_INTEGER+ , gl_MAP2_VERTEX_ATTRIB13_4_NV+ , gl_SAMPLER_2D+ , gl_QUERY+ , gl_GEOMETRY_INPUT_TYPE_EXT+ , gl_RGB5_A1_OES+ , gl_MATRIX15_ARB+ , gl_INT_IMAGE_CUBE_MAP_ARRAY+ , gl_STACK_OVERFLOW+ , gl_NORMAL_ARRAY_LENGTH_NV+ , gl_RENDERBUFFER_BLUE_SIZE_EXT+ , gl_TEXTURE_INTENSITY_SIZE_EXT+ , gl_POINT_SIZE_MIN_SGIS+ , gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW+ , gl_BEVEL_NV+ , gl_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX+ , gl_SIGNED_RGBA_NV+ , gl_COLOR_CLEAR_VALUE+ , gl_ARRAY_BUFFER+ , gl_CLIP_PLANE2_IMG+ , gl_POLYGON_OFFSET_UNITS+ , gl_COLOR_ARRAY_POINTER_EXT+ , gl_POST_COLOR_MATRIX_COLOR_TABLE+ , gl_SHADOW_AMBIENT_SGIX+ , gl_SAMPLES+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES+ , gl_MIRRORED_REPEAT_IBM+ , gl_TEXTURE_2D_MULTISAMPLE_ARRAY_OES+ , gl_FRAMEBUFFER_DEFAULT_WIDTH+ , gl_TEXTURE_GEN_MODE_OES+ , gl_BLEND_SRC_ALPHA_EXT+ , gl_OUTPUT_COLOR0_EXT+ , gl_SLUMINANCE8_ALPHA8+ , gl_SAMPLER_3D_ARB+ , gl_UNSIGNED_INT_SAMPLER_3D+ , gl_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT+ , gl_PATH_FORMAT_SVG_NV+ , gl_MAP1_BINORMAL_EXT+ , gl_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX+ , gl_COLOR_ARRAY_BUFFER_BINDING+ , gl_MATRIX_INDEX_ARRAY_TYPE_OES+ , gl_PROJECTION_STACK_DEPTH+ , gl_AUTO_NORMAL+ , gl_FRAGMENT_SHADER_ATI+ , gl_SAMPLE_BUFFERS_EXT+ , gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT+ , gl_UNSIGNED_INT_10_10_10_2+ , gl_COMPRESSED_RG11_EAC_OES+ , gl_LUMINANCE8I_EXT+ , gl_VERTEX_ATTRIB_ARRAY13_NV+ , gl_UNIFORM_BUFFER_SIZE+ , gl_TEXTURE2_ARB+ , gl_COMPRESSED_RGBA_BPTC_UNORM_ARB+ , gl_POLYGON+ , gl_CLIENT_MAPPED_BUFFER_BARRIER_BIT+ , gl_ELEMENT_ARRAY_BUFFER_BINDING_ARB+ , gl_SAMPLE_BUFFERS_ARB+ , gl_RGBA4_DXT5_S3TC+ , gl_STREAM_READ+ , gl_STATIC_READ+ , gl_MAX_FRAGMENT_ATOMIC_COUNTERS+ , gl_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT+ , gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST+ , gl_COUNT_DOWN_NV+ , gl_SLUMINANCE+ , gl_INNOCENT_CONTEXT_RESET+ , gl_DRAW_FRAMEBUFFER_BINDING_NV+ , gl_VERTEX_STREAM3_ATI+ , gl_TRIANGULAR_NV+ , gl_SAMPLER_2D_RECT_ARB+ , gl_POST_CONVOLUTION_GREEN_SCALE_EXT+ , gl_SKIP_COMPONENTS2_NV+ , gl_IMAGE_1D+ , gl_ATTRIB_ARRAY_TYPE_NV+ , gl_ORDER+ , gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB+ , gl_RGB4_EXT+ , gl_COMPRESSED_TEXTURE_FORMATS_ARB+ , gl_STENCIL_INDEX16_EXT+ , gl_OP_RECIP_SQRT_EXT+ , gl_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS+ , gl_MAX_PROGRAM_TEXEL_OFFSET+ , gl_POST_TEXTURE_FILTER_BIAS_SGIX+ , gl_RGB32F_EXT+ , gl_SURFACE_REGISTERED_NV+ , gl_RGBA_FLOAT16_APPLE+ , gl_VIDEO_BUFFER_BINDING_NV+ , gl_PRIMITIVE_RESTART_INDEX+ , gl_DOT3_RGB_ARB+ , gl_INT64_VEC4_NV+ , gl_DRAW_BUFFER12_ATI+ , gl_RESAMPLE_REPLICATE_SGIX+ , gl_ALPHA+ , gl_MATRIX22_ARB+ , gl_DEPTH_TEST+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR+ , gl_BLEND_SRC_ALPHA+ , gl_MIRROR_CLAMP_ATI+ , gl_COMBINER3_NV+ , gl_TEXTURE_BINDING_1D_ARRAY_EXT+ , gl_MIRROR_CLAMP_TO_BORDER_EXT+ , gl_MAP1_INDEX+ , gl_VIEW_CLASS_BPTC_FLOAT+ , gl_TRANSPOSE_AFFINE_2D_NV+ , gl_IMAGE_CLASS_2_X_8+ , gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB+ , gl_EYE_POINT_SGIS+ , gl_TEXTURE_DEPTH_SIZE_ARB+ , gl_GLYPH_HAS_KERNING_BIT_NV+ , gl_ACTIVE_SUBROUTINES+ , gl_MVP_MATRIX_EXT+ , gl_READ_FRAMEBUFFER_BINDING+ , gl_GUILTY_CONTEXT_RESET_EXT+ , gl_ALPHA16UI_EXT+ , gl_TEXTURE_SWIZZLE_B_EXT+ , gl_RGB16I_EXT+ , gl_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB+ , gl_VERTEX_WEIGHT_ARRAY_EXT+ , gl_SWIZZLE_STR_DR_ATI+ , gl_READ_FRAMEBUFFER+ , gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI+ , gl_COORD_REPLACE_NV+ , gl_MAX_CLIP_PLANES+ , gl_DRAW_BUFFER0+ , gl_SPRITE_OBJECT_ALIGNED_SGIX+ , gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX+ , gl_CONSERVE_MEMORY_HINT_PGI+ , gl_GET_TEXTURE_IMAGE_FORMAT+ , gl_MOVE_TO_RESETS_NV+ , gl_SHADER_CONSISTENT_NV+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT+ , gl_PACK_ALIGNMENT+ , gl_HISTOGRAM_ALPHA_SIZE+ , gl_SHARED_TEXTURE_PALETTE_EXT+ , gl_MODELVIEW0_MATRIX_EXT+ , gl_MAX_NAME_LENGTH+ , gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY+ , gl_IMAGE_2D+ , gl_QUERY_BUFFER_AMD+ , gl_BUMP_ENVMAP_ATI+ , gl_POINTS+ , gl_ARRAY_SIZE+ , gl_MAX_CLIP_PLANES_IMG+ , gl_TRIANGLE_STRIP_ADJACENCY_EXT+ , gl_VERTEX_STREAM6_ATI+ , gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR+ , gl_TEXTURE22+ , gl_CURRENT_FOG_COORDINATE+ , gl_CON_27_ATI+ , gl_MAX_VERTEX_UNITS_OES+ , gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT+ , gl_SIGNED_INTENSITY8_NV+ , gl_MAX_EVAL_ORDER+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT+ , gl_DYNAMIC_READ_ARB+ , gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV+ , gl_FLOAT16_NV+ , gl_COMPUTE_SHADER_INVOCATIONS_ARB+ , gl_VERTEX_SHADER_OPTIMIZED_EXT+ , gl_TEXTURE_LOD_BIAS_EXT+ , gl_INT8_VEC3_NV+ , gl_4PASS_0_SGIS+ , gl_HISTOGRAM_EXT+ , gl_ALLOW_DRAW_WIN_HINT_PGI+ , gl_TEXTURE_GREEN_SIZE_EXT+ , gl_R32I+ , gl_REG_22_ATI+ , gl_UNSIGNED_INT_ATOMIC_COUNTER+ , gl_COLOR_ATTACHMENT2+ , gl_INTENSITY8+ , gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS+ , gl_FOG_DENSITY+ , gl_RENDERBUFFER_HEIGHT_EXT+ , gl_Z_EXT+ , gl_TEXTURE_FETCH_BARRIER_BIT+ , gl_PROGRAM_BINARY_FORMATS+ , gl_UNSIGNED_INT_IMAGE_BUFFER+ , gl_OPERAND0_RGB+ , gl_COVERAGE_COMPONENT_NV+ , gl_NEGATE_BIT_ATI+ , gl_DEBUG_TYPE_PUSH_GROUP+ , gl_SELECT+ , gl_IMAGE_BINDING_ACCESS_EXT+ , gl_TEXTURE_GEN_STR_OES+ , gl_OCCLUSION_TEST_HP+ , gl_BLEND_DST_RGB_OES+ , gl_IMAGE_BINDING_NAME+ , gl_DUAL_LUMINANCE_ALPHA8_SGIS+ , gl_POLYGON_BIT+ , gl_POST_COLOR_MATRIX_GREEN_BIAS_SGI+ , gl_COLOR_ATTACHMENT8_EXT+ , gl_BLUE_BIAS+ , gl_EMISSION+ , gl_DEPTH_ATTACHMENT_OES+ , gl_POLYGON_OFFSET_FACTOR_EXT+ , gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT+ , gl_TEXTURE_MATERIAL_FACE_EXT+ , gl_PN_TRIANGLES_POINT_MODE_CUBIC_ATI+ , gl_DRAW_FRAMEBUFFER_ANGLE+ , gl_DEPTH_BUFFER_BIT3_QCOM+ , gl_DISTANCE_ATTENUATION_EXT+ , gl_TRACE_ARRAYS_BIT_MESA+ , gl_MOVE_TO_NV+ , gl_2PASS_1_SGIS+ , gl_DUAL_LUMINANCE4_SGIS+ , gl_PRIMITIVES_SUBMITTED_ARB+ , gl_TOP_LEVEL_ARRAY_STRIDE+ , gl_NORMAL_ARRAY_STRIDE+ , gl_TEXTURE_2D_ARRAY_EXT+ , gl_UNPACK_COMPRESSED_BLOCK_WIDTH+ , gl_TEXTURE_FIXED_SAMPLE_LOCATIONS+ , gl_YCRCBA_SGIX+ , gl_LOCATION_COMPONENT+ , gl_TEXTURE27+ , gl_CONTEXT_FLAG_DEBUG_BIT_KHR+ , gl_FOG_COORDINATE_EXT+ , gl_DEBUG_CALLBACK_USER_PARAM_KHR+ , gl_MIRRORED_REPEAT_OES+ , gl_SYNC_GPU_COMMANDS_COMPLETE+ , gl_SLUMINANCE8_ALPHA8_EXT+ , gl_TEXTURE_BUFFER_OFFSET+ , gl_PROXY_COLOR_TABLE+ , gl_FIXED+ , gl_SRGB8+ , gl_COMPRESSED_RGBA+ , gl_IMAGE_BINDING_FORMAT+ , gl_MAX_RENDERBUFFER_SIZE_OES+ , gl_DEBUG_SOURCE_API+ , gl_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH+ , gl_CLIP_PLANE3_IMG+ , gl_TEXTURE16+ , gl_FRAGMENTS_INSTRUMENT_SGIX+ , gl_MATRIX8_ARB+ , gl_DOUBLE_MAT2x4+ , gl_DRAW_BUFFER9_ATI+ , gl_CURRENT_TEXTURE_COORDS+ , gl_DOT_PRODUCT_TEXTURE_3D_NV+ , gl_SECONDARY_COLOR_ARRAY_STRIDE_EXT+ , gl_UNSIGNED_INT_IMAGE_2D_ARRAY+ , gl_FRAMEBUFFER_BARRIER_BIT+ , gl_MAX_SAMPLES_IMG+ , gl_TESS_CONTROL_SHADER_BIT_EXT+ , gl_PROGRAM_NATIVE_TEMPORARIES_ARB+ , gl_COMPRESSED_RGB_PVRTC_4BPPV1_IMG+ , gl_VERTEX_PROGRAM_ARB+ , gl_MAP2_BINORMAL_EXT+ , gl_ETC1_RGB8_OES+ , gl_PROGRAM_MATRIX_STACK_DEPTH_EXT+ , gl_TEXTURE_USAGE_ANGLE+ , gl_TEXTURE_MATRIX+ , gl_INT_SAMPLER_CUBE_MAP_ARRAY_EXT+ , gl_INDEX_ARRAY_STRIDE+ , gl_POST_COLOR_MATRIX_BLUE_SCALE+ , gl_TESS_CONTROL_OUTPUT_VERTICES+ , gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET+ , gl_COMPRESSED_RGBA_ASTC_6x6_KHR+ , gl_INTERNALFORMAT_SHARED_SIZE+ , gl_SOURCE1_RGB_EXT+ , gl_STENCIL_PASS_DEPTH_FAIL+ , gl_MATRIX_PALETTE_OES+ , gl_MIN_FRAGMENT_INTERPOLATION_OFFSET+ , gl_DOT3_RGBA_EXT+ , gl_CLIP_VOLUME_CLIPPING_HINT_EXT+ , gl_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV+ , gl_FONT_X_MIN_BOUNDS_BIT_NV+ , gl_WRAP_BORDER_SUN+ , gl_MAP_INVALIDATE_RANGE_BIT+ , gl_PATH_MODELVIEW_NV+ , gl_TESS_CONTROL_SHADER+ , gl_VERTEX_STREAM1_ATI+ , gl_R3_G3_B2+ , gl_LARGE_CW_ARC_TO_NV+ , gl_PRIMITIVE_BOUNDING_BOX_EXT+ , gl_ALPHA_BIAS+ , gl_DST_IN_NV+ , gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT+ , gl_NUM_FILL_STREAMS_NV+ , gl_ATTRIB_ARRAY_POINTER_NV+ , gl_SOURCE0_RGB_ARB+ , gl_MAX_PROGRAM_TEXEL_OFFSET_EXT+ , gl_MATRIX27_ARB+ , gl_R11F_G11F_B10F+ , gl_ATOMIC_COUNTER_BUFFER_INDEX+ , gl_TEXTURE_SWIZZLE_R_EXT+ , gl_MAX_ASYNC_READ_PIXELS_SGIX+ , gl_ACTIVE_TEXTURE_ARB+ , gl_VERTEX_SHADER_LOCAL_CONSTANTS_EXT+ , gl_REFERENCE_PLANE_SGIX+ , gl_UNPACK_CLIENT_STORAGE_APPLE+ , gl_SKIP_DECODE_EXT+ , gl_MAP2_VERTEX_ATTRIB10_4_NV+ , gl_ALIASED_POINT_SIZE_RANGE+ , gl_MATRIX1_NV+ , gl_CCW+ , gl_SIGNED_RGB_UNSIGNED_ALPHA_NV+ , gl_TEXTURE_BUFFER_BINDING_EXT+ , gl_LINEAR_ATTENUATION+ , gl_FACTOR_MIN_AMD+ , gl_POINT_SPRITE_NV+ , gl_IMAGE_FORMAT_COMPATIBILITY_TYPE+ , gl_QUERY_DEPTH_FAIL_EVENT_BIT_AMD+ , gl_MAP2_VERTEX_ATTRIB4_4_NV+ , gl_PATCHES_EXT+ , gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS+ , gl_OUTPUT_TEXTURE_COORD14_EXT+ , gl_V3F+ , gl_4PASS_2_EXT+ , gl_SAMPLES_3DFX+ , gl_MINOR_VERSION+ , gl_MAX_DEBUG_LOGGED_MESSAGES_ARB+ , gl_FUNC_REVERSE_SUBTRACT+ , gl_LAYOUT_LINEAR_CPU_CACHED_INTEL+ , gl_MULTISAMPLE_BUFFER_BIT1_QCOM+ , gl_SIGNED_RGB8_UNSIGNED_ALPHA8_NV+ , gl_PATH_COVER_DEPTH_FUNC_NV+ , gl_MAX_FRAGMENT_IMAGE_UNIFORMS+ , gl_PROXY_TEXTURE_COLOR_TABLE_SGI+ , gl_PIXEL_MAP_I_TO_A_SIZE+ , gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR+ , gl_FRAME_NV+ , gl_FLOAT_R_NV+ , gl_REFLECTION_MAP_EXT+ , gl_RG_SNORM+ , gl_REPLACE_MIDDLE_SUN+ , gl_COMBINER_MAPPING_NV+ , gl_ELEMENT_ARRAY_BUFFER_ARB+ , gl_SECONDARY_COLOR_ARRAY_LENGTH_NV+ , gl_INTERPOLATE_ARB+ , gl_POSITION+ , gl_PIXEL_MAP_S_TO_S+ , gl_READ_ONLY_ARB+ , gl_INVALID_FRAMEBUFFER_OPERATION_OES+ , gl_3DC_X_AMD+ , gl_FRAGMENT_LIGHT2_SGIX+ , gl_IMAGE_SCALE_Y_HP+ , gl_READ_FRAMEBUFFER_APPLE+ , gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES+ , gl_INDEX_MATERIAL_PARAMETER_EXT+ , gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH+ , gl_CUBIC_CURVE_TO_NV+ , gl_QUAD_ALPHA4_SGIS+ , gl_FORCE_BLUE_TO_ONE_NV+ , gl_DOT_PRODUCT_DEPTH_REPLACE_NV+ , gl_MAX_VERTEX_OUTPUT_COMPONENTS+ , gl_COMPRESSED_RGBA_ASTC_4x4x3_OES+ , gl_COLOR_INDEX1_EXT+ , gl_RELATIVE_CUBIC_CURVE_TO_NV+ , gl_NOR+ , gl_CLIPPING_OUTPUT_PRIMITIVES_ARB+ , gl_VERTEX_ATTRIB_ARRAY12_NV+ , gl_LINE_BIT+ , gl_FOG_COORDINATE_ARRAY_STRIDE+ , gl_DUP_FIRST_CUBIC_CURVE_TO_NV+ , gl_FRAMEBUFFER_INCOMPLETE_FORMATS_OES+ , gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS+ , gl_PATH_MAX_MODELVIEW_STACK_DEPTH_NV+ , gl_FRAGMENT_LIGHT1_SGIX+ , gl_PALETTE8_R5_G6_B5_OES+ , gl_DUAL_INTENSITY4_SGIS+ , gl_TEXTURE_RANGE_LENGTH_APPLE+ , gl_TEXTURE_RECTANGLE_ARB+ , gl_LUMINANCE16F_EXT+ , gl_DEPTH_COMPONENT16_ARB+ , gl_BUMP_TARGET_ATI+ , gl_MAX_CUBE_MAP_TEXTURE_SIZE_ARB+ , gl_DOUBLE_MAT3_EXT+ , gl_QUERY_BY_REGION_NO_WAIT_INVERTED+ , gl_MAX_PROGRAM_TEX_INDIRECTIONS_ARB+ , gl_QUADS+ , gl_ALPHA_INTEGER_EXT+ , gl_VERTEX_SHADER_BIT_EXT+ , gl_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX+ , gl_COLOR_MATERIAL_FACE+ , gl_LIGHT_MODEL_TWO_SIDE+ , gl_INTERLEAVED_ATTRIBS+ , gl_RGBA16I+ , gl_VERTEX_ATTRIB_ARRAY_TYPE_ARB+ , gl_DEBUG_SEVERITY_LOW_AMD+ , gl_POINT_SPRITE_COORD_ORIGIN+ , gl_DRAW_BUFFER8+ , gl_SPOT_DIRECTION+ , gl_SAMPLE_COVERAGE_INVERT_ARB+ , gl_PERFQUERY_COUNTER_RAW_INTEL+ , gl_STRICT_SCISSOR_HINT_PGI+ , gl_LUMINANCE16_EXT+ , gl_UNPACK_ALIGNMENT+ , gl_BIAS_BIT_ATI+ , gl_LARGE_CCW_ARC_TO_NV+ , gl_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB+ , gl_FASTEST+ , gl_LUMINANCE8_ALPHA8+ , gl_CONVOLUTION_FILTER_BIAS_EXT+ , gl_VIEW_CLASS_S3TC_DXT5_RGBA+ , gl_DEPTH32F_STENCIL8_NV+ , gl_TRACE_OPERATIONS_BIT_MESA+ , gl_QUERY_RESULT_EXT+ , gl_TRANSFORM_FEEDBACK_BINDING_NV+ , gl_REG_10_ATI+ , gl_MATRIX16_ARB+ , gl_FONT_HAS_KERNING_BIT_NV+ , gl_INNOCENT_CONTEXT_RESET_EXT+ , gl_VIDEO_CAPTURE_FRAME_HEIGHT_NV+ , gl_NATIVE_GRAPHICS_END_HINT_PGI+ , gl_HISTOGRAM_LUMINANCE_SIZE_EXT+ , gl_COMBINER0_NV+ , gl_COORD_REPLACE_OES+ , gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT+ , gl_TIMESTAMP_EXT+ , gl_MAX_IMAGE_UNITS_EXT+ , gl_POINT_SIZE_MAX_ARB+ , gl_DEPTH_WRITEMASK+ , gl_FOG_COORDINATE_ARRAY_STRIDE_EXT+ , gl_BUMP_NUM_TEX_UNITS_ATI+ , gl_INT_SAMPLER_1D_EXT+ , gl_INDEX_MODE+ , gl_422_EXT+ , gl_ATOMIC_COUNTER_BUFFER_START+ , gl_GPU_ADDRESS_NV+ , gl_REG_19_ATI+ , gl_IMAGE_BUFFER+ , gl_HISTOGRAM_GREEN_SIZE+ , gl_VERTEX_ATTRIB_ARRAY_ADDRESS_NV+ , gl_INTENSITY8_SNORM+ , gl_DEBUG_TYPE_MARKER+ , gl_VERTEX_PROGRAM_TWO_SIDE_ARB+ , gl_INDEX_MATERIAL_FACE_EXT+ , gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB+ , gl_CMYKA_EXT+ , gl_MAP_ATTRIB_V_ORDER_NV+ , gl_OFFSET_HILO_TEXTURE_2D_NV+ , gl_CALLIGRAPHIC_FRAGMENT_SGIX+ , gl_MAX_PROGRAM_PARAMETERS_ARB+ , gl_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV+ , gl_MAP_READ_BIT+ , gl_IMAGE_1D_EXT+ , gl_READ_BUFFER+ , gl_POST_CONVOLUTION_RED_SCALE+ , gl_MATRIX23_ARB+ , gl_MAX_SAMPLES_NV+ , gl_RGB8_SNORM+ , gl_MATRIX5_NV+ , gl_UNPACK_SWAP_BYTES+ , gl_TABLE_TOO_LARGE+ , gl_MIN_SAMPLE_SHADING_VALUE_OES+ , gl_SWIZZLE_STQ_DQ_ATI+ , gl_BUFFER_IMMUTABLE_STORAGE+ , gl_ELEMENT_ARRAY_TYPE_APPLE+ , gl_POST_COLOR_MATRIX_BLUE_BIAS_SGI+ , gl_PARTIAL_SUCCESS_NV+ , gl_LOCAL_CONSTANT_EXT+ , gl_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB+ , gl_GEOMETRY_DEFORMATION_SGIX+ , gl_SAMPLER_CUBE_MAP_ARRAY_EXT+ , gl_STENCIL_BACK_PASS_DEPTH_PASS_ATI+ , gl_DISJOINT_NV+ , gl_FLOAT_MAT4x3+ , gl_TRANSFORM_FEEDBACK_PAUSED+ , gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION+ , gl_RG8_EXT+ , gl_RECT_NV+ , gl_GEOMETRY_OUTPUT_TYPE_ARB+ , gl_DEBUG_SOURCE_API_ARB+ , gl_COLOR_ATTACHMENT15+ , gl_MAX_VARYING_FLOATS_ARB+ , gl_MAX_DRAW_BUFFERS_NV+ , gl_VERTEX_BLEND_ARB+ , gl_DOUBLE_MAT2x3_EXT+ , gl_MAX_DEBUG_LOGGED_MESSAGES_AMD+ , gl_VERTICES_SUBMITTED_ARB+ , gl_UNSIGNED_SHORT_4_4_4_4_REV_IMG+ , gl_STATE_RESTORE+ , gl_MAX_COLOR_ATTACHMENTS_EXT+ , gl_INDEX_LOGIC_OP+ , gl_PRIMITIVE_RESTART_NV+ , gl_FLOAT_MAT3x2_NV+ , gl_VERTEX_CONSISTENT_HINT_PGI+ , gl_LUMINANCE_ALPHA16F_EXT+ , gl_FLOAT_VEC2_ARB+ , gl_TEXTURE_SWIZZLE_RGBA+ , gl_PROGRAM_SEPARABLE_EXT+ , gl_COMPRESSED_RGBA_ASTC_10x8_KHR+ , gl_DEPTH_ATTACHMENT_EXT+ , gl_FRAMEBUFFER_UNSUPPORTED_OES+ , gl_OPERAND1_ALPHA+ , gl_PIXEL_MAP_I_TO_B_SIZE+ , gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT+ , gl_EVAL_2D_NV+ , gl_GREEN_MIN_CLAMP_INGR+ , gl_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS+ , gl_VERTEX_ARRAY_RANGE_NV+ , gl_CONTEXT_LOST_WEBGL+ , gl_MAX_VERTEX_UNIFORM_BLOCKS+ , gl_VERTEX_ATTRIB_MAP2_COEFF_APPLE+ , gl_TEXTURE_MAX_CLAMP_T_SGIX+ , gl_LUMINANCE_SNORM+ , gl_PIXEL_UNPACK_BUFFER_BINDING+ , gl_RGBA8_SNORM+ , gl_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX+ , gl_PIXEL_SUBSAMPLE_2424_SGIX+ , gl_TEXTURE_GATHER_SHADOW+ , gl_VIEWPORT_INDEX_PROVOKING_VERTEX+ , gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT+ , gl_UNSIGNED_INT_IMAGE_CUBE+ , gl_WEIGHT_ARRAY_POINTER_OES+ , gl_ALL_ATTRIB_BITS+ , gl_PERFQUERY_COUNTER_TIMESTAMP_INTEL+ , gl_TESS_EVALUATION_SHADER_EXT+ , gl_BUFFER_OBJECT_EXT+ , gl_TIMESTAMP+ , gl_RGBA_INTEGER_EXT+ , gl_RGB16UI+ , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT+ , gl_SAMPLE_SHADING_OES+ , gl_CONVOLUTION_BORDER_COLOR+ , gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV+ , gl_VERTEX_ARRAY_BUFFER_BINDING+ , gl_DEPTH_CLAMP_NEAR_AMD+ , gl_POLYGON_TOKEN+ , gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB+ , gl_R8_SNORM+ , gl_DS_BIAS_NV+ , gl_2X_BIT_ATI+ , gl_ALREADY_SIGNALED+ , gl_2D+ , gl_MAX_VERTEX_UNIFORM_COMPONENTS+ , gl_DEBUG_CATEGORY_PERFORMANCE_AMD+ , gl_OVERLAY_NV+ , gl_ATOMIC_COUNTER_BUFFER_SIZE+ , gl_COLOR_ATTACHMENT10_EXT+ , gl_COLOR_TABLE_BLUE_SIZE_SGI+ , gl_ADD_SIGNED_EXT+ , gl_INT_SAMPLER_2D_ARRAY_EXT+ , gl_TRANSFORM_FEEDBACK_BUFFER_INDEX+ , gl_REFERENCED_BY_TESS_CONTROL_SHADER+ , gl_FIELD_LOWER_NV+ , gl_POST_COLOR_MATRIX_RED_SCALE+ , gl_IMAGE_BUFFER_EXT+ , gl_3D_COLOR_TEXTURE+ , gl_DEBUG_CALLBACK_FUNCTION_KHR+ , gl_SCISSOR_BIT+ , gl_IMAGE_TRANSLATE_X_HP+ , gl_PIXEL_MAP_I_TO_A+ , gl_VERTEX_SUBROUTINE+ , gl_TEXTURE4_ARB+ , gl_PACK_COMPRESSED_BLOCK_DEPTH+ , gl_SHADER_STORAGE_BLOCK+ , gl_SIGNED_ALPHA_NV+ , gl_BLEND_DST_ALPHA_EXT+ , gl_MAP2_VERTEX_ATTRIB9_4_NV+ , gl_HILO8_NV+ , gl_SHADER_BINARY_FORMATS+ , gl_DEBUG_OUTPUT_SYNCHRONOUS+ , gl_TEXTURE_GEN_R+ , gl_PERFORMANCE_MONITOR_AMD+ , gl_INTENSITY_FLOAT16_APPLE+ , gl_PROGRAM_PIPELINE+ , gl_COLOR_BUFFER_BIT5_QCOM+ , gl_MAX_GEOMETRY_VARYING_COMPONENTS_EXT+ , gl_DEBUG_TYPE_PORTABILITY_KHR+ , gl_RGB16F_ARB+ , gl_PRIMITIVES_GENERATED_EXT+ , gl_PROGRAM_BINARY_FORMATS_OES+ , gl_AMBIENT+ , gl_QUERY_BY_REGION_NO_WAIT_NV+ , gl_VIEW_CLASS_RGTC2_RG+ , gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT+ , gl_DRAW_BUFFER2_EXT+ , gl_TEXTURE_BUFFER_BINDING+ , gl_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT+ , gl_OPERAND3_ALPHA_NV+ , gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV+ , gl_LINEAR_SHARPEN_SGIS+ , gl_MAP_UNSYNCHRONIZED_BIT_EXT+ , gl_MODELVIEW28_ARB+ , gl_EDGE_FLAG_ARRAY_LIST_IBM+ , gl_PALETTE4_RGB5_A1_OES+ , gl_MULTIPLY_KHR+ , gl_GPU_OPTIMIZED_QCOM+ , gl_FOG_FUNC_POINTS_SGIS+ , gl_MAX_IMAGE_SAMPLES+ , gl_DRAW_BUFFER3_NV+ , gl_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS+ , gl_RESET_NOTIFICATION_STRATEGY_ARB+ , gl_MAX_TEXTURE_STACK_DEPTH+ , gl_INT64_NV+ , gl_DEBUG_SOURCE_APPLICATION+ , gl_STENCIL_CLEAR_VALUE+ , gl_SRC1_COLOR+ , gl_LIGHT4+ , gl_PIXEL_PACK_BUFFER_BINDING+ , gl_MAX_LIGHTS+ , gl_OPERAND1_ALPHA_EXT+ , gl_PIXEL_MAP_B_TO_B_SIZE+ , gl_COLOR_TABLE_FORMAT_SGI+ , gl_MODELVIEW22_ARB+ , gl_UNSIGNED_INT64_VEC4_NV+ , gl_COLOR_ARRAY_TYPE_EXT+ , gl_LOSE_CONTEXT_ON_RESET_EXT+ , gl_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV+ , gl_TEXTURE_PRIORITY_EXT+ , gl_UNPACK_COMPRESSED_SIZE_SGIX+ , gl_SEPARATE_ATTRIBS_EXT+ , gl_IMAGE_BINDING_LAYERED+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR+ , gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE+ , gl_READ_ONLY+ , gl_TEXTURE_3D_BINDING_OES+ , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER+ , gl_COVERAGE_ALL_FRAGMENTS_NV+ , gl_SRC2_ALPHA+ , gl_PRIMITIVE_ID_NV+ , gl_VIDEO_COLOR_CONVERSION_MAX_NV+ , gl_MAP2_TANGENT_EXT+ , gl_LIGHTING+ , gl_PROGRAM_UNDER_NATIVE_LIMITS_ARB+ , gl_VERTEX_ATTRIB_ARRAY2_NV+ , gl_PRESENT_TIME_NV+ , gl_PATCH_DEFAULT_INNER_LEVEL+ , gl_NEVER+ , gl_PATH_STROKE_WIDTH_NV+ , gl_INVERT_RGB_NV+ , gl_BUFFER_MAP_POINTER_ARB+ , gl_MAP2_GRID_SEGMENTS+ , gl_INVALID_VALUE+ , gl_BLEND_EQUATION_ALPHA_OES+ , gl_MAX_RATIONAL_EVAL_ORDER_NV+ , gl_VERTEX_ATTRIB_ARRAY10_NV+ , gl_UNPACK_IMAGE_DEPTH_SGIS+ , gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES+ , gl_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS+ , gl_TRANSPOSE_PROJECTION_MATRIX_ARB+ , gl_REDUCE_EXT+ , gl_RGB8UI_EXT+ , gl_MAX_CLIENT_ATTRIB_STACK_DEPTH+ , gl_RGB9_E5_EXT+ , gl_OUTPUT_TEXTURE_COORD18_EXT+ , gl_COLOR_ATTACHMENT0_EXT+ , gl_ALPHA_SCALE+ , gl_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV+ , gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE+ , gl_BLEND_SRC+ , gl_TEXTURE_MAX_CLAMP_R_SGIX+ , gl_MAX_PROGRAM_TEXEL_OFFSET_NV+ , gl_TEXTURE_LOD_BIAS_R_SGIX+ , gl_UNSIGNED_INT_SAMPLER_2D+ , gl_TEXTURE_FILTER_CONTROL_EXT+ , gl_VARIABLE_G_NV+ , gl_SELECTION_BUFFER_POINTER+ , gl_INT_SAMPLER_1D+ , gl_COMBINE_ALPHA+ , gl_FONT_Y_MAX_BOUNDS_BIT_NV+ , gl_UNIFORM_BARRIER_BIT+ , gl_TEXTURE_BLUE_TYPE_ARB+ , gl_STENCIL_INDEX16+ , gl_SRC_OVER_NV+ , gl_INT_SAMPLER_2D_MULTISAMPLE+ , gl_COLOR_TABLE_GREEN_SIZE_SGI+ , gl_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV+ , gl_TEXTURE_COMPRESSED_IMAGE_SIZE+ , gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV+ , gl_REFERENCED_BY_TESS_EVALUATION_SHADER+ , gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT+ , gl_MAX_HEIGHT+ , gl_ALPHA32F_ARB+ , gl_COLOR_ATTACHMENT13+ , gl_OP_SET_GE_EXT+ , gl_RGBA16_EXT+ , gl_OPERAND3_RGB_NV+ , gl_RENDERBUFFER_BLUE_SIZE_OES+ , gl_LUMINANCE_ALPHA_FLOAT16_ATI+ , gl_VERTEX_ATTRIB_ARRAY_DIVISOR_NV+ , gl_PERFQUERY_COUNTER_DURATION_RAW_INTEL+ , gl_MAX_DEPTH+ , gl_LINEAR_MIPMAP_NEAREST+ , gl_UNSIGNED_INT_8_8_S8_S8_REV_NV+ , gl_N3F_V3F+ , gl_PACK_MAX_COMPRESSED_SIZE_SGIX+ , gl_QUERY_BUFFER_BINDING_AMD+ , gl_FOG_MODE+ , gl_RGBA32F+ , gl_FRAGMENT_SHADER_DERIVATIVE_HINT+ , gl_UNPACK_SKIP_ROWS_EXT+ , gl_LINES+ , gl_SPOT_EXPONENT+ , gl_MAX_NUM_COMPATIBLE_SUBROUTINES+ , gl_RGBA_FLOAT32_APPLE+ , gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT+ , gl_BLEND_EQUATION_ALPHA+ , gl_PATH_MODELVIEW_STACK_DEPTH_NV+ , gl_TEXTURE_SHARED_SIZE_EXT+ , gl_RGBA16+ , gl_UNDEFINED_VERTEX_EXT+ , gl_PALETTE8_RGB5_A1_OES+ , gl_MAX_GEOMETRY_OUTPUT_VERTICES_EXT+ , gl_IMAGE_CLASS_11_11_10+ , gl_HISTOGRAM_GREEN_SIZE_EXT+ , gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT+ , gl_MAX_COMPUTE_IMAGE_UNIFORMS+ , gl_MAX_PATCH_VERTICES_EXT+ , gl_ISOLINES+ , gl_LUMINANCE_ALPHA_SNORM+ , gl_PROGRAM_PIPELINE_BINDING_EXT+ , gl_FIRST_VERTEX_CONVENTION_EXT+ , gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT+ , gl_UTF16_NV+ , gl_PRESENT_DURATION_NV+ , gl_TEXTURE_SAMPLES+ , gl_BGR+ , gl_CULL_VERTEX_OBJECT_POSITION_EXT+ , gl_FRAGMENT_PROGRAM_POSITION_MESA+ , gl_FLOAT_RG_NV+ , gl_PROXY_TEXTURE_2D_MULTISAMPLE+ , gl_CON_21_ATI+ , gl_MAX_GEOMETRY_IMAGE_UNIFORMS+ , gl_FLOAT_MAT3x4_NV+ , gl_BUFFER_VARIABLE+ , gl_ANY_SAMPLES_PASSED_EXT+ , gl_TEXTURE_GEN_Q+ , gl_GEOMETRY_VERTICES_OUT_ARB+ , gl_POLYGON_SMOOTH_HINT+ , gl_TEXTURE_BINDING_CUBE_MAP_ARRAY+ , gl_SEPARABLE_2D_EXT+ , gl_VERSION_ES_CL_1_0+ , gl_VERTEX_PROGRAM_PARAMETER_BUFFER_NV+ , gl_RED_INTEGER+ , gl_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD+ , gl_OFFSET_TEXTURE_RECTANGLE_NV+ , gl_TEXTURE_COORD_ARRAY_TYPE_EXT+ , gl_INT8_NV+ , gl_VIDEO_COLOR_CONVERSION_MIN_NV+ , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV+ , gl_FRAMEBUFFER_ATTACHMENT_ANGLE+ , gl_SRC1_RGB+ , gl_CON_24_ATI+ , gl_DEBUG_CALLBACK_USER_PARAM+ , gl_MALI_SHADER_BINARY_ARM+ , gl_VIEW_CLASS_16_BITS+ , gl_DITHER+ , gl_PATH_STROKE_COVER_MODE_NV+ , gl_BGR_INTEGER+ , gl_TEXTURE_MATERIAL_PARAMETER_EXT+ , gl_COMPRESSED_RGBA_ASTC_5x4_KHR+ , gl_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT+ , gl_POST_CONVOLUTION_GREEN_BIAS_EXT+ , gl_PATH_ERROR_POSITION_NV+ , gl_SAMPLE_ALPHA_TO_COVERAGE+ , gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY+ , gl_NUM_COMPATIBLE_SUBROUTINES+ , gl_RGBA16UI_EXT+ , gl_VERTEX_SHADER_ARB+ , gl_RGB+ , gl_MAP_PERSISTENT_BIT+ , gl_QUERY_COUNTER_BITS_ARB+ , gl_BLEND_EQUATION_RGB_OES+ , gl_FRAGMENT_SHADER_BIT+ , gl_MATRIX_INDEX_ARRAY_ARB+ , gl_OUTPUT_TEXTURE_COORD29_EXT+ , gl_HISTOGRAM_FORMAT+ , gl_MAX_ASYNC_HISTOGRAM_SGIX+ , gl_MAX_VERTEX_ATTRIBS_ARB+ , gl_SAMPLE_MASK_NV+ , gl_COLOR_INDEXES+ , gl_QUAD_TEXTURE_SELECT_SGIS+ , gl_RG16_SNORM+ , gl_ACTIVE_SUBROUTINE_MAX_LENGTH+ , gl_LOGIC_OP_MODE+ , gl_DEPTH_COMPONENT16_NONLINEAR_NV+ , gl_PRIMITIVE_RESTART_INDEX_NV+ , gl_UNKNOWN_CONTEXT_RESET+ , gl_VBO_FREE_MEMORY_ATI+ , gl_TEXTURE_CUBE_MAP_POSITIVE_X_OES+ , gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR+ , gl_TEXTURE_2D_STACK_MESAX+ , gl_DRAW_BUFFER10+ , gl_FLOAT16_VEC4_NV+ , gl_SIGNED_HILO16_NV+ , gl_BUFFER_MAPPED_OES+ , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT+ , gl_DRAW_BUFFER5_EXT+ , gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB+ , gl_NUM_EXTENSIONS+ , gl_WARP_SIZE_NV+ , gl_TEXTURE23+ , gl_INT_SAMPLER_2D_RECT_EXT+ , gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES+ , gl_REG_4_ATI+ , gl_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG+ , gl_FOG_INDEX+ , gl_QUADRATIC_ATTENUATION+ , gl_COLOR_MATERIAL+ , gl_SAMPLE_MASK+ , gl_DRAW_FRAMEBUFFER_BINDING_EXT+ , gl_MULTISAMPLE_BUFFER_BIT5_QCOM+ , gl_DEPTH_STENCIL_OES+ , gl_STENCIL_BITS+ , gl_CURRENT_VERTEX_ATTRIB_ARB+ , gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB+ , gl_COORD_REPLACE_ARB+ , gl_RGBA32I_EXT+ , gl_TEXTURE6+ , gl_FLOAT_RGB16_NV+ , gl_TEXTURE_IMMUTABLE_FORMAT+ , gl_ZERO_EXT+ , gl_SOFTLIGHT_NV+ , gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT+ , gl_TEXTURE_BASE_LEVEL+ , gl_COMPRESSED_SRGB_ALPHA+ , gl_TEXTURE18_ARB+ , gl_AND_INVERTED+ , gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT+ , gl_ARRAY_BUFFER_ARB+ , gl_RGBA32F_EXT+ , gl_BLEND_EQUATION_RGB_EXT+ , gl_FRONT_FACE+ , gl_SINGLE_COLOR_EXT+ , gl_QUERY_COUNTER_BITS_EXT+ , gl_TESS_CONTROL_SHADER_PATCHES_ARB+ , gl_SPOT_CUTOFF+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB+ , gl_OUTPUT_TEXTURE_COORD6_EXT+ , gl_COLOR_ATTACHMENT13_NV+ , gl_COMPRESSED_RGBA_S3TC_DXT3_EXT+ , gl_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV+ , gl_TRANSPOSE_TEXTURE_MATRIX+ , gl_MULTISAMPLE_ARB+ , gl_DEPTH_COMPONENT24+ , gl_PIXEL_MAP_G_TO_G+ , gl_NAMED_STRING_LENGTH_ARB+ , gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT+ , gl_UNIFORM_SIZE+ , gl_MODELVIEW21_ARB+ , gl_FRAGMENT_LIGHT7_SGIX+ , gl_DRAW_BUFFER3_ARB+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES+ , gl_UNSIGNED_SHORT+ , gl_MULTISAMPLE_BIT_ARB+ , gl_FOG+ , gl_TEXTURE_COMPARE_MODE+ , gl_SPHERE_MAP+ , gl_TIMEOUT_EXPIRED_APPLE+ , gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT+ , gl_PROXY_TEXTURE_1D_ARRAY+ , gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT+ , gl_TEXTURE_BINDING_CUBE_MAP+ , gl_COLOR_ATTACHMENT14+ , gl_STENCIL_BUFFER_BIT+ , gl_SIGNALED+ , gl_TEXTURE_WIDTH+ , gl_EVAL_BIT+ , gl_REG_28_ATI+ , gl_TEXTURE_BIT+ , gl_CONTEXT_ROBUST_ACCESS_EXT+ , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV+ , gl_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB+ , gl_DEPTH_BUFFER_BIT+ , gl_TEXCOORD2_BIT_PGI+ , gl_POST_CONVOLUTION_RED_SCALE_EXT+ , gl_QUERY_KHR+ , gl_PACK_IMAGE_HEIGHT_EXT+ , gl_COMPRESSED_RGBA_ASTC_5x5_KHR+ , gl_MAX_VERTEX_UNIFORM_COMPONENTS_ARB+ , gl_DEPTH_STENCIL_ATTACHMENT+ , gl_HSL_HUE_KHR+ , gl_ATC_RGB_AMD+ , gl_DECR_WRAP+ , gl_GEOMETRY_VERTICES_OUT+ , gl_OFFSET_TEXTURE_BIAS_NV+ , gl_COLOR_ATTACHMENT5_NV+ , gl_POINT_SIZE_ARRAY_POINTER_OES+ , gl_TEXTURE_COMPARE_FAIL_VALUE_ARB+ , gl_RENDERBUFFER_COLOR_SAMPLES_NV+ , gl_CON_10_ATI+ , gl_IMAGE_ROTATE_ANGLE_HP+ , gl_UNIFORM_BUFFER_UNIFIED_NV+ , gl_INTENSITY4+ , gl_DEBUG_LOGGED_MESSAGES_KHR+ , gl_MINUS_CLAMPED_NV+ , gl_BUFFER_SIZE+ , gl_SRGB_EXT+ , gl_PIXEL_TEX_GEN_Q_ROUND_SGIX+ , gl_R16I+ , gl_COLOR_COMPONENTS+ , gl_TEXTURE_VIEW_NUM_LEVELS+ , gl_COLOR_ATTACHMENT11+ , gl_OBJECT_PLANE+ , gl_IMAGE_3D_EXT+ , gl_MAX_GEOMETRY_INPUT_COMPONENTS+ , gl_TEXTURE_COORD_ARRAY_LIST_IBM+ , gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS+ , gl_CLIENT_ACTIVE_TEXTURE+ , gl_MAX_GEOMETRY_VARYING_COMPONENTS_ARB+ , gl_OPERAND1_RGB+ , gl_POINT_SIZE_ARRAY_OES+ , gl_GLYPH_VERTICAL_BEARING_Y_BIT_NV+ , gl_MODELVIEW6_ARB+ , gl_DEBUG_OUTPUT_SYNCHRONOUS_KHR+ , gl_AND_REVERSE+ , gl_CLAMP_TO_BORDER_NV+ , gl_GUILTY_CONTEXT_RESET_ARB+ , gl_INT64_VEC2_NV+ , gl_C3F_V3F+ , gl_OBJECT_LINEAR_NV+ , gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT+ , gl_TEXTURE_FLOAT_COMPONENTS_NV+ , gl_SOURCE3_ALPHA_NV+ , gl_OPERAND2_ALPHA_EXT+ , gl_CON_12_ATI+ , gl_SYNC_STATUS+ , gl_BLEND_SRC_RGB_EXT+ , gl_DEBUG_SOURCE_WINDOW_SYSTEM_ARB+ , gl_TEXTURE_2D_MULTISAMPLE_ARRAY+ , gl_LEFT+ , gl_UNSIGNED_INT_SAMPLER_1D+ , gl_PIXEL_MAP_I_TO_R_SIZE+ , gl_VERTEX_ARRAY_BINDING_OES+ , gl_COMBINE_ALPHA_EXT+ , gl_TRANSFORM_FEEDBACK_ATTRIBS_NV+ , gl_CURRENT_WEIGHT_ARB+ , gl_RASTERIZER_DISCARD_NV+ , gl_SRC_IN_NV+ , gl_OBJECT_DISTANCE_TO_POINT_SGIS+ , gl_COMPRESSED_RGB8_ETC2+ , gl_MAX_VERTEX_SHADER_STORAGE_BLOCKS+ , gl_RGB_SNORM+ , gl_INTENSITY4_EXT+ , gl_R8I+ , gl_MAX_SUBROUTINE_UNIFORM_LOCATIONS+ , gl_EDGEFLAG_BIT_PGI+ , gl_MAX_FRAMEBUFFER_SAMPLES+ , gl_SECONDARY_COLOR_ARRAY_TYPE+ , gl_ALL_BARRIER_BITS_EXT+ , gl_TEXTURE14+ , gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER+ , gl_SRC0_ALPHA+ , gl_MODELVIEW16_ARB+ , gl_DARKEN_NV+ , gl_INTENSITY_EXT+ , gl_CURRENT_BIT+ , gl_FLOAT_RGBA32_NV+ , gl_SHADOW_ATTENUATION_EXT+ , gl_COMPRESSED_SRGB8_ETC2+ , gl_DRAW_BUFFER15+ , gl_COMPARE_R_TO_TEXTURE_ARB+ , gl_R11F_G11F_B10F_EXT+ , gl_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG+ , gl_MULTISAMPLE_BUFFER_BIT6_QCOM+ , gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT+ , gl_FEEDBACK_BUFFER_TYPE+ , gl_IMAGE_BINDING_FORMAT_EXT+ , gl_PROXY_TEXTURE_2D_EXT+ , gl_DEPTH32F_STENCIL8+ , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS+ , gl_TESS_EVALUATION_SUBROUTINE+ , gl_TEXTURE_LOD_BIAS_T_SGIX+ , gl_COVERAGE_COMPONENT4_NV+ , gl_TEXTURE6_ARB+ , gl_MAX_3D_TEXTURE_SIZE_EXT+ , gl_TEXTURE_RESIDENT+ , gl_FOG_COORD_ARRAY_TYPE+ , gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR+ , gl_QUERY_BY_REGION_WAIT+ , gl_SLUMINANCE_ALPHA+ , gl_INT_SAMPLER_CUBE+ , gl_UNSIGNED_SHORT_4_4_4_4_REV+ , gl_MAX_PROGRAM_NATIVE_PARAMETERS_ARB+ , gl_LUMINANCE4_ALPHA4_EXT+ , gl_OPERAND0_RGB_ARB+ , gl_PROXY_TEXTURE_2D_STACK_MESAX+ , gl_TEXTURE_3D_EXT+ , gl_STREAM_RASTERIZATION_AMD+ , gl_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT+ , gl_DEPTH_COMPONENT32_SGIX+ , gl_LINE_STRIP+ , gl_CON_25_ATI+ , gl_SLIM10U_SGIX+ , gl_COLOR_INDEX2_EXT+ , gl_CON_22_ATI+ , gl_DEFORMATIONS_MASK_SGIX+ , gl_INVERSE_TRANSPOSE_NV+ , gl_MULT+ , gl_ATTRIB_ARRAY_STRIDE_NV+ , gl_RGBA16_SNORM+ , gl_MIN_SAMPLE_SHADING_VALUE+ , gl_RG8_SNORM+ , gl_OBJECT_ATTACHED_OBJECTS_ARB+ , gl_UNPACK_SKIP_PIXELS_EXT+ , gl_ACTIVE_VERTEX_UNITS_ARB+ , gl_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT+ , gl_INTERNALFORMAT_RED_TYPE+ , gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV+ , gl_FLOAT_RGB_NV+ , gl_MAP_FLUSH_EXPLICIT_BIT_EXT+ , gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS+ , gl_HALF_FLOAT_NV+ , gl_DEPTH_STENCIL+ , gl_PROGRAM_ERROR_POSITION_ARB+ , gl_TRACE_ERRORS_BIT_MESA+ , gl_STENCIL_OP_VALUE_AMD+ , gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES+ , gl_COMPRESSED_SIGNED_R11_EAC+ , gl_FLOAT_MAT3x2+ , gl_PROGRAM_ERROR_STRING_NV+ , gl_VERTEX_ID_NV+ , gl_VERTEX_BINDING_OFFSET+ , gl_RESTART_SUN+ , gl_INT_IMAGE_CUBE_MAP_ARRAY_EXT+ , gl_COLOR_INDEX+ , gl_TEXTURE31_ARB+ , gl_MAX_DRAW_BUFFERS_ARB+ , gl_MAX_IMAGE_UNITS+ , gl_OUTPUT_TEXTURE_COORD4_EXT+ , gl_COLOR_ARRAY_POINTER+ , gl_MAX_COLOR_TEXTURE_SAMPLES+ , gl_SIGNED_NEGATE_NV+ , gl_MAX_GEOMETRY_UNIFORM_BLOCKS+ , gl_DEBUG_TYPE_ERROR+ , gl_HISTOGRAM_RED_SIZE_EXT+ , gl_SECONDARY_COLOR_ARRAY_POINTER_EXT+ , gl_UNSIGNALED+ , gl_CON_8_ATI+ , gl_COMPRESSED_RED+ , gl_RGBA2_EXT+ , gl_T2F_C3F_V3F+ , gl_SECONDARY_COLOR_ARRAY+ , gl_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT+ , gl_COLOR3_BIT_PGI+ , gl_CLIP_DISTANCE3+ , gl_TEXTURE_SWIZZLE_G_EXT+ , gl_SAMPLER_CUBE_MAP_ARRAY+ , gl_4PASS_3_SGIS+ , gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT+ , gl_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT+ , gl_VERTEX_ARRAY_STRIDE+ , gl_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS+ , gl_TEXTURE_SWIZZLE_A+ , gl_DOUBLE_MAT3x2+ , gl_TEXTURE_UPDATE_BARRIER_BIT_EXT+ , gl_SHADING_LANGUAGE_VERSION+ , gl_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP+ , gl_FIXED_ONLY_ARB+ , gl_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI+ , gl_CON_19_ATI+ , gl_CONTEXT_RELEASE_BEHAVIOR+ , gl_ARRAY_BUFFER_BINDING+ , gl_UNPACK_COLORSPACE_CONVERSION_WEBGL+ , gl_CONVEX_HULL_NV+ , gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB+ , gl_FIRST_TO_REST_NV+ , gl_MAX_TEXTURE_COORDS+ , gl_TEXTURE_DEPTH+ , gl_LIGHT0+ , gl_VERTEX_STREAM4_ATI+ , gl_POST_COLOR_MATRIX_ALPHA_BIAS_SGI+ , gl_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS+ , gl_SAMPLER_2D_RECT_SHADOW_ARB+ , gl_DRAW_BUFFER1_ATI+ , gl_SAMPLE_BUFFERS_SGIS+ , gl_SIGNED_LUMINANCE_ALPHA_NV+ , gl_R16_SNORM+ , gl_DRAW_BUFFER13_ATI+ , gl_TEXTURE_LIGHT_EXT+ , gl_BOOL_ARB+ , gl_BGRA_IMG+ , gl_SRGB_ALPHA_EXT+ , gl_RELATIVE_ROUNDED_RECT2_NV+ , gl_LUMINANCE16UI_EXT+ , gl_MATRIX7_NV+ , gl_INTENSITY16+ , gl_DRAW_INDIRECT_BUFFER+ , gl_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM+ , gl_MAX_IMAGE_SAMPLES_EXT+ , gl_DEBUG_SOURCE_OTHER_ARB+ , gl_POINT_BIT+ , gl_MAX_VARYING_VECTORS+ , gl_SUBTRACT_ARB+ , gl_INT_SAMPLER_BUFFER_AMD+ , gl_SAMPLE_MASK_INVERT_SGIS+ , gl_POINT_DISTANCE_ATTENUATION_ARB+ , gl_GREEN_BIT_ATI+ , gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT+ , gl_FRAMEBUFFER+ , gl_TEXTURE_COMPRESSION_HINT_ARB+ , gl_PROGRAM_INPUT+ , gl_SCREEN_NV+ , gl_TEXTURE_CUBE_MAP_ARRAY_EXT+ , gl_FENCE_STATUS_NV+ , gl_MAX_BINDABLE_UNIFORM_SIZE_EXT+ , gl_PACK_COMPRESSED_BLOCK_WIDTH+ , gl_RELATIVE_VERTICAL_LINE_TO_NV+ , gl_POST_COLOR_MATRIX_COLOR_TABLE_SGI+ , gl_ALPHA_INTEGER+ , gl_MAX_SUBROUTINES+ , gl_UNSIGNED_INT_VEC3_EXT+ , gl_ELEMENT_ARRAY_ATI+ , gl_ONE_MINUS_CONSTANT_COLOR+ , gl_MODELVIEW18_ARB+ , gl_CONSTANT_ARB+ , gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV+ , gl_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL+ , gl_DRAW_BUFFER_EXT+ , gl_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT+ , gl_FLOAT_MAT2x4_NV+ , gl_CULL_VERTEX_EXT+ , gl_MATRIX_PALETTE_ARB+ , gl_VERTEX_PROGRAM_POINT_SIZE_ARB+ , gl_FLOAT_RG16_NV+ , gl_CON_1_ATI+ , gl_BLEND_EQUATION_RGB+ , gl_OP_CROSS_PRODUCT_EXT+ , gl_VERTEX_WEIGHT_ARRAY_STRIDE_EXT+ , gl_TESS_CONTROL_PROGRAM_NV+ , gl_FIXED_ONLY+ , gl_4PASS_1_EXT+ , gl_SAMPLER_2D_MULTISAMPLE_ARRAY_OES+ , gl_UNSIGNED_INT_8_8_8_8_REV+ , gl_UNIFORM_BLOCK_ACTIVE_UNIFORMS+ , gl_SLUMINANCE_ALPHA_NV+ , gl_PROXY_TEXTURE_CUBE_MAP+ , gl_IMAGE_CLASS_1_X_32+ , gl_STACK_OVERFLOW_KHR+ , gl_COMPRESSED_RGBA_ASTC_5x5x5_OES+ , gl_CLOSE_PATH_NV+ , gl_PIXEL_COUNT_AVAILABLE_NV+ , gl_PATH_DASH_OFFSET_NV+ , gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV+ , gl_GLOBAL_ALPHA_FACTOR_SUN+ , gl_INDEX_ARRAY_COUNT_EXT+ , gl_PACK_RESAMPLE_OML+ , gl_LAYER_NV+ , gl_DRAW_FRAMEBUFFER+ , gl_LINEAR_DETAIL_ALPHA_SGIS+ , gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT+ , gl_EDGE_FLAG_ARRAY+ , gl_TEXTURE_DEFORMATION_BIT_SGIX+ , gl_SOURCE1_RGB+ , gl_TEXTURE_3D_OES+ , gl_ALLOW_DRAW_OBJ_HINT_PGI+ , gl_PATH_STROKE_BOUNDING_BOX_NV+ , gl_HINT_BIT+ , gl_VERTICAL_LINE_TO_NV+ , gl_MAX_TEXTURE_BUFFER_SIZE_EXT+ , gl_MAX_DRAW_BUFFERS_ATI+ , gl_R8_EXT+ , gl_TEXTURE_COVERAGE_SAMPLES_NV+ , gl_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV+ , gl_REFERENCED_BY_VERTEX_SHADER+ , gl_FLOAT_RG32_NV+ , gl_TESSELLATION_FACTOR_AMD+ , gl_MAX_PROGRAM_TEMPORARIES_ARB+ , gl_COMPRESSED_RGBA_ASTC_12x12_KHR+ , gl_PROJECTION+ , gl_S+ , gl_ALPHA_FLOAT32_APPLE+ , gl_LUMINANCE8_ALPHA8_OES+ , gl_4_BYTES_NV+ , gl_CONST_EYE_NV+ , gl_MAT_SPECULAR_BIT_PGI+ , gl_TEXTURE1_ARB+ , gl_LINE_WIDTH_GRANULARITY+ , gl_DRAW_INDIRECT_BUFFER_BINDING+ , gl_BLEND_EQUATION+ , gl_RGBA8UI_EXT+ , gl_NORMALIZE+ , gl_LUMINANCE_ALPHA_FLOAT16_APPLE+ , gl_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX+ , gl_INVERSE_NV+ , gl_TEXTURE_SWIZZLE_A_EXT+ , gl_DEPTH24_STENCIL8_OES+ , gl_UNPACK_COMPRESSED_BLOCK_HEIGHT+ , gl_RGBA32UI+ , gl_MAP1_COLOR_4+ , gl_MAX_ELEMENTS_VERTICES+ , gl_CLIENT_VERTEX_ARRAY_BIT+ , gl_TEXTURE_GREEN_TYPE+ , gl_TEXTURE_BINDING_BUFFER_ARB+ , gl_MAX_RECTANGLE_TEXTURE_SIZE_NV+ , gl_INTERNALFORMAT_GREEN_TYPE+ , gl_OP_ADD_EXT+ , gl_UNSIGNED_INT_24_8+ , gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS+ , gl_3D_COLOR+ , gl_MODULATE_COLOR_IMG+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB+ , gl_TEXTURE_CLIPMAP_FRAME_SGIX+ , gl_NORMAL_ARRAY_STRIDE_EXT+ , gl_R16+ , gl_PIXEL_PACK_BUFFER+ , gl_SOFTLIGHT_KHR+ , gl_POST_CONVOLUTION_BLUE_SCALE+ , gl_INTERLEAVED_ATTRIBS_NV+ , gl_COLOR_ATTACHMENT8+ , gl_DEBUG_TYPE_PUSH_GROUP_KHR+ , gl_PERFQUERY_COUNTER_DATA_UINT64_INTEL+ , gl_MOV_ATI+ , gl_PROGRAM_SEPARABLE+ , gl_REG_20_ATI+ , gl_DOUBLE_VEC3+ , gl_8X_BIT_ATI+ , gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY+ , gl_MATRIX26_ARB+ , gl_PROXY_TEXTURE_RECTANGLE_ARB+ , gl_TRANSFORM_HINT_APPLE+ , gl_UNPACK_ROW_BYTES_APPLE+ , gl_POST_COLOR_MATRIX_ALPHA_SCALE_SGI+ , gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB+ , gl_ONE_MINUS_CONSTANT_COLOR_EXT+ , gl_TEXTURE_BINDING_CUBE_MAP_OES+ , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT+ , gl_VERTEX_ARRAY_STORAGE_HINT_APPLE+ , gl_VERTEX_BINDING_BUFFER+ , gl_FRAGMENT_LIGHT0_SGIX+ , gl_GLYPH_HORIZONTAL_BEARING_X_BIT_NV+ , gl_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT+ , gl_SRC2_RGB+ , gl_NUM_COMPRESSED_TEXTURE_FORMATS+ , gl_OUTPUT_TEXTURE_COORD2_EXT+ , gl_DEPTH_TEXTURE_MODE+ , gl_SAMPLE_PATTERN_EXT+ , gl_ELEMENT_ARRAY_APPLE+ , gl_MAX_FOG_FUNC_POINTS_SGIS+ , gl_TEXTURE_APPLICATION_MODE_EXT+ , gl_COLOR_ARRAY_SIZE_EXT+ , gl_VERTEX_SOURCE_ATI+ , gl_MAP2_VERTEX_ATTRIB3_4_NV+ , gl_LIGHTEN_KHR+ , gl_INT_SAMPLER_1D_ARRAY+ , gl_UNSIGNED_INT_10F_11F_11F_REV_EXT+ , gl_LUMINANCE8+ , gl_ACCUM_ALPHA_BITS+ , gl_MINMAX_FORMAT+ , gl_NOOP+ , gl_READ_FRAMEBUFFER_EXT+ , gl_SHADER+ , gl_UNSIGNED_INT_10_10_10_2_OES+ , gl_TEXTURE_COMPRESSED_BLOCK_WIDTH+ , gl_DEBUG_OUTPUT_KHR+ , gl_SOURCE0_ALPHA_ARB+ , gl_SAMPLER_1D_ARRAY_EXT+ , gl_T2F_V3F+ , gl_SAMPLE_MASK_SGIS+ , gl_CIRCULAR_TANGENT_ARC_TO_NV+ , gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS+ , gl_MAX_DEBUG_LOGGED_MESSAGES+ , gl_SOURCE1_ALPHA+ , gl_RGB_422_APPLE+ , gl_COLOR_TABLE+ , gl_MAP1_TEXTURE_COORD_3+ , gl_DEBUG_SEVERITY_HIGH_AMD+ , gl_UNSIGNED_INT+ , gl_VERTEX_PROGRAM_CALLBACK_MESA+ , gl_BLOCK_INDEX+ , gl_FLOAT+ , gl_TRACE_PIXELS_BIT_MESA+ , gl_BACK+ , gl_PATH_JOIN_STYLE_NV+ , gl_LUMINANCE_ALPHA16I_EXT+ , gl_FLOAT_MAT2+ , gl_SIGNED_IDENTITY_NV+ , gl_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA+ , gl_DEPTH_PASS_INSTRUMENT_MAX_SGIX+ , gl_CLIP_DEPTH_MODE+ , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT+ , gl_CULL_FACE+ , gl_DETAIL_TEXTURE_LEVEL_SGIS+ , gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB+ , gl_PACK_SKIP_ROWS+ , gl_COEFF+ , gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT+ , gl_NUM_INSTRUCTIONS_PER_PASS_ATI+ , gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB+ , gl_RGBA8+ , gl_TESS_GEN_VERTEX_ORDER+ , gl_TEXTURE_CUBE_MAP+ , gl_VERTEX_PRECLIP_HINT_SGIX+ , gl_NUM_SHADING_LANGUAGE_VERSIONS+ , gl_OUTPUT_TEXTURE_COORD9_EXT+ , gl_MAX_PROGRAM_GENERIC_RESULTS_NV+ , gl_COLOR_ATTACHMENT7_NV+ , gl_OUT_OF_MEMORY+ , gl_TEXTURE_COORD_ARRAY_POINTER_EXT+ , gl_FLOAT_MAT2_ARB+ , gl_COMBINER_AB_DOT_PRODUCT_NV+ , gl_INDEX_ARRAY_POINTER_EXT+ , gl_WRITE_PIXEL_DATA_RANGE_POINTER_NV+ , gl_3D+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES+ , gl_UPPER_LEFT+ , gl_IMAGE_1D_ARRAY_EXT+ , gl_GREEN+ , gl_RGB12+ , gl_GEOMETRY_DEFORMATION_BIT_SGIX+ , gl_LUMINANCE_ALPHA_FLOAT32_ATI+ , gl_INT_SAMPLER_CUBE_MAP_ARRAY+ , gl_EVAL_TRIANGULAR_2D_NV+ , gl_QUERY_BY_REGION_WAIT_INVERTED+ , gl_CONTEXT_ROBUST_ACCESS_KHR+ , gl_STREAM_READ_ARB+ , gl_INT_IMAGE_1D_ARRAY_EXT+ , gl_QUERY_NO_WAIT_INVERTED+ , gl_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT+ , gl_COLOR_ATTACHMENT4_EXT+ , gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR+ , gl_LOSE_CONTEXT_ON_RESET+ , gl_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM+ , gl_REPLACEMENT_CODE_SUN+ , gl_422_REV_EXT+ , gl_COMPILE_STATUS+ , gl_VERTEX_ATTRIB_MAP1_COEFF_APPLE+ , gl_TRANSPOSE_COLOR_MATRIX+ , gl_COLOR_TABLE_FORMAT+ , gl_VERSION_ES_CM_1_1+ , gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE+ , gl_BUFFER_STORAGE_FLAGS+ , gl_UNSIGNED_NORMALIZED_EXT+ , gl_LIGHT_MODEL_SPECULAR_VECTOR_APPLE+ , gl_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT+ , gl_3_BYTES+ , gl_CND0_ATI+ , gl_TEXTURE_MAX_LEVEL_APPLE+ , gl_POINT+ , gl_MODELVIEW11_ARB+ , gl_RED_BITS+ , gl_PIXEL_TILE_GRID_WIDTH_SGIX+ , gl_DRAW_BUFFER7_NV+ , gl_OP_SET_LT_EXT+ , gl_TEXTURE24_ARB+ , gl_TESS_GEN_POINT_MODE+ , gl_INTERNALFORMAT_PREFERRED+ , gl_VERTEX_SHADER_VARIANTS_EXT+ , gl_COMBINER_CD_OUTPUT_NV+ , gl_TRANSPOSE_CURRENT_MATRIX_ARB+ , gl_MAX_ARRAY_TEXTURE_LAYERS_EXT+ , gl_UNSIGNED_SHORT_8_8_MESA+ , gl_BLEND_ADVANCED_COHERENT_NV+ , gl_VERTEX_ARRAY_EXT+ , gl_BOOL_VEC4_ARB+ , gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV+ , gl_UNSIGNED_SHORT_5_5_5_1+ , gl_SHADE_MODEL+ , gl_MIRROR_CLAMP_TO_EDGE+ , gl_RGB5_EXT+ , gl_TEXTURE_GEN_S+ , gl_TEXTURE_COMPRESSED+ , gl_FRAMEBUFFER_BLEND+ , gl_REPLACE_VALUE_AMD+ , gl_YCRCB_SGIX+ , gl_UNIFORM_BLOCK_INDEX+ , gl_TEXTURE_TOO_LARGE_EXT+ , gl_MIRRORED_REPEAT_ARB+ , gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER+ , gl_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB+ , gl_MAX_SAMPLES+ , gl_ATTENUATION_EXT+ , gl_MIRROR_CLAMP_EXT+ , gl_DEBUG_LOGGED_MESSAGES+ , gl_DOT3_ATI+ , gl_EMBOSS_CONSTANT_NV+ , gl_OUTPUT_TEXTURE_COORD11_EXT+ , gl_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL+ , gl_INDEX+ , gl_CURRENT_MATRIX_ARB+ , gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS+ , gl_MAX_DRAW_BUFFERS_EXT+ , gl_ADD_BLEND_IMG+ , gl_CLIP_FAR_HINT_PGI+ , gl_POST_CONVOLUTION_COLOR_TABLE+ , gl_RGBA4_OES+ , gl_QUERY_RESULT_AVAILABLE_ARB+ , gl_RGB8UI+ , gl_DYNAMIC_READ+ , gl_TEXTURE_BINDING_2D_MULTISAMPLE+ , gl_OBJECT_TYPE_APPLE+ , gl_PERCENTAGE_AMD+ , gl_LIGHT_MODEL_LOCAL_VIEWER+ , gl_SPARE0_PLUS_SECONDARY_COLOR_NV+ , gl_OP_INDEX_EXT+ , gl_VIEW_CLASS_S3TC_DXT3_RGBA+ , gl_TEXTURE_DEPTH_TYPE_ARB+ , gl_TEXTURE_ALPHA_SIZE+ , gl_YCRCB_422_SGIX+ , gl_INDEX_ARRAY_LENGTH_NV+ , gl_TRANSPOSE_AFFINE_3D_NV+ , gl_MATRIX17_ARB+ , gl_SRGB_ALPHA+ , gl_MAP_TESSELLATION_NV+ , gl_PACK_SKIP_VOLUMES_SGIS+ , gl_COLOR_BUFFER_BIT+ , gl_REG_6_ATI+ , gl_ATOMIC_COUNTER_BUFFER_BINDING+ , gl_POST_CONVOLUTION_ALPHA_BIAS+ , gl_HARDLIGHT_NV+ , gl_INTENSITY16_SNORM+ , gl_TEXCOORD1_BIT_PGI+ , gl_DEBUG_CALLBACK_FUNCTION+ , gl_TEXTURE8_ARB+ , gl_DOUBLE_VEC2_EXT+ , gl_TRIANGLES_ADJACENCY+ , gl_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER+ , gl_R16F+ , gl_OUTPUT_TEXTURE_COORD19_EXT+ , gl_QUAD_LUMINANCE4_SGIS+ , gl_SAMPLER_OBJECT_AMD+ , gl_COMPRESSED_RGBA_S3TC_DXT3_ANGLE+ , gl_UNSIGNED_INT_IMAGE_2D+ , gl_ALPHA_TEST+ , gl_CONVOLUTION_WIDTH+ , gl_SLUMINANCE_NV+ , gl_FRAMEBUFFER_UNDEFINED_OES+ , gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED+ , gl_HALF_FLOAT_OES+ , gl_CONVOLUTION_FORMAT_EXT+ , gl_FALSE+ , gl_ADD_ATI+ , gl_STENCIL_BACK_FAIL+ , gl_DOUBLE_VEC4+ , gl_STANDARD_FONT_NAME_NV+ , gl_ALPHA4_EXT+ , gl_EXPAND_NORMAL_NV+ , gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB+ , gl_TRACE_MASK_MESA+ , gl_VARIABLE_B_NV+ , gl_RGB16_EXT+ , gl_TEXTURE+ , gl_PIXEL_UNPACK_BUFFER_BINDING_EXT+ , gl_IMAGE_CLASS_1_X_8+ , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE+ , gl_BOOL_VEC2_ARB+ , gl_MAP2_VERTEX_3+ , gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH+ , gl_TEXTURE_WRAP_S+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_X+ , gl_TEXTURE_CUBE_MAP_ARRAY+ , gl_TEXTURE_ALPHA_TYPE+ , gl_MAX_COLOR_ATTACHMENTS_NV+ , gl_MAX_CUBE_MAP_TEXTURE_SIZE+ , gl_ANY_SAMPLES_PASSED+ , gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE+ , gl_COLOR_ARRAY_STRIDE+ , gl_MULTISAMPLE_BIT_EXT+ , gl_VERTEX_ATTRIB_ARRAY_DIVISOR+ , gl_UNSIGNED_INT64_VEC3_NV+ , gl_WAIT_FAILED_APPLE+ , gl_DRAW_BUFFER5_ATI+ , gl_MAX_CUBE_MAP_TEXTURE_SIZE_EXT+ , gl_ONE_MINUS_CONSTANT_ALPHA_EXT+ , gl_UNSIGNED_INT_8_24_REV_MESA+ , gl_MAX_PROGRAM_ENV_PARAMETERS_ARB+ , gl_MAX_VERTEX_VARYING_COMPONENTS_EXT+ , gl_CURRENT_TANGENT_EXT+ , gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB+ , gl_ALPHA16+ , gl_MAP1_VERTEX_4+ , gl_SAMPLER_CUBE_SHADOW_NV+ , gl_SAMPLER_2D_SHADOW_ARB+ , gl_PROGRAM_LENGTH_NV+ , gl_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM+ , gl_IGNORE_BORDER_HP+ , gl_DEBUG_SOURCE_SHADER_COMPILER+ , gl_TEXTURE_BORDER_VALUES_NV+ , gl_FRAGMENT_SUBROUTINE+ , gl_MAX_DEPTH_TEXTURE_SAMPLES+ , gl_VERTEX_ATTRIB_ARRAY_POINTER+ , gl_COLOR_ATTACHMENT7+ , gl_LAST_VERTEX_CONVENTION_EXT+ , gl_TEXTURE_LO_SIZE_NV+ , gl_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER+ , gl_COMPRESSED_RGB8_ETC2_OES+ , gl_NORMAL_MAP_NV+ , gl_COLOR_ARRAY_COUNT_EXT+ , gl_TEXTURE_COMPARE_MODE_EXT+ , gl_BINORMAL_ARRAY_TYPE_EXT+ , gl_OPERAND0_RGB_EXT+ , gl_MAX_VERTEX_VARYING_COMPONENTS_ARB+ , gl_PIXEL_MIN_FILTER_EXT+ , gl_ACCUM_ADJACENT_PAIRS_NV+ , gl_BLEND_DST+ , gl_W_EXT+ , gl_RENDERBUFFER_COVERAGE_SAMPLES_NV+ , gl_STENCIL_FUNC+ , gl_MAX_VERTEX_STREAMS+ , gl_GEOMETRY_INPUT_TYPE+ , gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV+ , gl_MINMAX_SINK_EXT+ , gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER+ , gl_DOUBLE_MAT2x3+ , gl_FRACTIONAL_EVEN_EXT+ , gl_VERTEX_ARRAY_TYPE_EXT+ , gl_BINORMAL_ARRAY_POINTER_EXT+ , gl_SAMPLE_MASK_EXT+ , gl_TESS_CONTROL_SHADER_EXT+ , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT+ , gl_TANGENT_ARRAY_STRIDE_EXT+ , gl_GET_TEXTURE_IMAGE_TYPE+ , gl_OFFSET+ , gl_ALL_STATIC_DATA_IBM+ , gl_READ_PIXEL_DATA_RANGE_LENGTH_NV+ , gl_CONSTANT_COLOR+ , gl_UNSIGNED_SHORT_1_5_5_5_REV_EXT+ , gl_MATERIAL_SIDE_HINT_PGI+ , gl_UNPACK_RESAMPLE_OML+ , gl_SAMPLE_SHADING+ , gl_OUTPUT_TEXTURE_COORD13_EXT+ , gl_MAX_COLOR_MATRIX_STACK_DEPTH+ , gl_INT64_VEC3_NV+ , gl_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV+ , gl_TEXTURE_STACK_DEPTH+ , gl_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL+ , gl_FRAMEBUFFER_UNSUPPORTED_EXT+ , gl_QUERY_TARGET+ , gl_LUMINANCE4_ALPHA4+ , gl_TRANSFORM_FEEDBACK_BARRIER_BIT+ , gl_RGB32UI+ , gl_STATIC_DRAW+ , gl_MAX_COMPUTE_UNIFORM_BLOCKS+ , gl_PALETTE4_RGBA8_OES+ , gl_UNPACK_PREMULTIPLY_ALPHA_WEBGL+ , gl_TEXTURE21+ , gl_RGB32I+ , gl_MAX_TEXTURE_LOD_BIAS_EXT+ , gl_PATH_GEN_COLOR_FORMAT_NV+ , gl_RGB10_A2UI+ , gl_GREEN_BITS+ , gl_POLYGON_MODE+ , gl_SUCCESS_NV+ , gl_RGBA12+ , gl_PATCHES+ , gl_ACCUM+ , gl_NUM_PASSES_ATI+ , gl_DEBUG_TYPE_ERROR_ARB+ , gl_TEXTURE_LIGHTING_MODE_HP+ , gl_HISTOGRAM_SINK_EXT+ , gl_POINT_SIZE_GRANULARITY+ , gl_R32F+ , gl_STATIC_COPY+ , gl_FOG_COORDINATE_ARRAY_TYPE_EXT+ , gl_SPARE0_NV+ , gl_3DC_XY_AMD+ , gl_LUMINANCE_ALPHA32F_ARB+ , gl_VERTEX_ARRAY_RANGE_VALID_NV+ , gl_DEPTH_BUFFER_BIT6_QCOM+ , gl_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX+ , gl_LINE_WIDTH+ , gl_FOG_OFFSET_SGIX+ , gl_GEOMETRY_SHADER_BIT_EXT+ , gl_TEXTURE_BLUE_SIZE+ , gl_TEXTURE_SHADER_NV+ , gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV+ , gl_FRAMEZOOM_SGIX+ , gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT+ , gl_DEPTH_RENDERABLE+ , gl_MAX_TEXTURE_BUFFER_SIZE+ , gl_COLOR_ALPHA_PAIRING_ATI+ , gl_PACK_REVERSE_ROW_ORDER_ANGLE+ , gl_VERTEX_ATTRIB_ARRAY_NORMALIZED+ , gl_OP_MADD_EXT+ , gl_TEXTURE7+ , gl_RGB32I_EXT+ , gl_RED_BIAS+ , gl_FLOAT_VEC2+ , gl_HALF_APPLE+ , gl_SGX_BINARY_IMG+ , gl_CON_28_ATI+ , gl_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP+ , gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV+ , gl_MAP2_VERTEX_ATTRIB2_4_NV+ , gl_TRANSFORM_BIT+ , gl_R8+ , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV+ , gl_T+ , gl_TEXTURE_ENV_MODE+ , gl_HIGH_INT+ , gl_TEXTURE_UNSIGNED_REMAP_MODE_NV+ , gl_MAX_PROGRAM_LOOP_COUNT_NV+ , gl_PERFQUERY_WAIT_INTEL+ , gl_INVALID_FRAMEBUFFER_OPERATION_EXT+ , gl_TEXTURE_2D_BINDING_EXT+ , gl_TEXTURE_NUM_LEVELS_QCOM+ , gl_TEXTURE_BUFFER_ARB+ , gl_TRUE+ , gl_MAX_LAYERS+ , gl_MAX_TEXTURE_UNITS_ARB+ , gl_MAP2_NORMAL+ , gl_DUAL_ALPHA16_SGIS+ , gl_PROGRAM_OUTPUT+ , gl_OUTPUT_TEXTURE_COORD22_EXT+ , gl_SAMPLER_1D_ARB+ , gl_POST_CONVOLUTION_GREEN_BIAS+ , gl_INT_IMAGE_CUBE+ , gl_CURRENT_VERTEX_WEIGHT_EXT+ , gl_SIGNED_LUMINANCE8_NV+ , gl_TEXTURE_VIEW_NUM_LAYERS_EXT+ , gl_RG16F+ , gl_PROGRAM_POINT_SIZE_EXT+ , gl_FILE_NAME_NV+ , gl_INT_IMAGE_BUFFER_EXT+ , gl_TEXTURE_UPDATE_BARRIER_BIT+ , gl_HARDMIX_NV+ , gl_FLOAT_MAT3x4+ , gl_TEXTURE_INTERNAL_FORMAT_QCOM+ , gl_INTERNALFORMAT_BLUE_SIZE+ , gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV+ , gl_HSL_COLOR_NV+ , gl_CONDITION_SATISFIED+ , gl_UNIFORM_BUFFER_LENGTH_NV+ , gl_ALPHA8UI_EXT+ , gl_REG_23_ATI+ , gl_UNSIGNED_SHORT_5_6_5_EXT+ , gl_EDGE_FLAG_ARRAY_LENGTH_NV+ , gl_IMAGE_CLASS_1_X_16+ , gl_LUMINANCE8_ALPHA8_SNORM+ , gl_PATH_FILL_COVER_MODE_NV+ , gl_LUMINANCE_ALPHA_FLOAT32_APPLE+ , gl_INTENSITY16UI_EXT+ , gl_RENDERBUFFER_SAMPLES_APPLE+ , gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE+ , gl_LUMINANCE_ALPHA32I_EXT+ , gl_REGISTER_COMBINERS_NV+ , gl_R1UI_N3F_V3F_SUN+ , gl_FOG_COORDINATE_SOURCE+ , gl_DEBUG_SEVERITY_MEDIUM_AMD+ , gl_MODELVIEW30_ARB+ , gl_COMPRESSED_RGBA_S3TC_DXT5_EXT+ , gl_DRAW_BUFFER0_NV+ , gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT+ , gl_ELEMENT_ARRAY_BARRIER_BIT+ , gl_SHADER_PIXEL_LOCAL_STORAGE_EXT+ , gl_FRONT_LEFT+ , gl_UNIFORM_BUFFER_BINDING+ , gl_SIGNED_RGBA8_NV+ , gl_EYE_PLANE+ , gl_TEXTURE_1D+ , gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT+ , gl_MALI_PROGRAM_BINARY_ARM+ , gl_SKIP_COMPONENTS3_NV+ , gl_LUMINANCE_ALPHA+ , gl_ACCUM_RED_BITS+ , gl_POLYGON_OFFSET_FACTOR+ , gl_SAMPLER_2D_ARRAY_SHADOW_NV+ , gl_VARIABLE_D_NV+ , gl_TEXTURE_LEQUAL_R_SGIX+ , gl_INT+ , gl_IMAGE_TRANSLATE_Y_HP+ , gl_POINT_TOKEN+ , gl_RESAMPLE_ZERO_FILL_OML+ , gl_DEBUG_SOURCE_THIRD_PARTY_KHR+ , gl_TEXTURE_MAG_SIZE_NV+ , gl_PER_STAGE_CONSTANTS_NV+ , gl_VIRTUAL_PAGE_SIZE_Y_ARB+ , gl_SPRITE_EYE_ALIGNED_SGIX+ , gl_EVAL_VERTEX_ATTRIB14_NV+ , gl_TRANSFORM_FEEDBACK_VARYINGS_NV+ , gl_RGB10+ , gl_MAX_VIEWPORT_DIMS+ , gl_BLUE_MAX_CLAMP_INGR+ , gl_INCR_WRAP+ , gl_VIRTUAL_PAGE_SIZE_X_AMD+ , gl_BOOL_VEC3+ , gl_CON_17_ATI+ , gl_MAX_CUBE_MAP_TEXTURE_SIZE_OES+ , gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT+ , gl_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI+ , gl_MINMAX+ , gl_CONSTANT_BORDER_HP+ , gl_SRGB_WRITE+ , gl_MAX_TEXTURE_BUFFER_SIZE_ARB+ , gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV+ , gl_DECAL+ , gl_REG_7_ATI+ , gl_TESS_GEN_SPACING_EXT+ , gl_ELEMENT_ARRAY_LENGTH_NV+ , gl_MATRIX31_ARB+ , gl_TRANSFORM_FEEDBACK_VARYING+ , gl_VERTEX_ATTRIB_ARRAY_SIZE+ , gl_NOTEQUAL+ , gl_READ_PIXELS_TYPE+ , gl_MODELVIEW_STACK_DEPTH+ , gl_COMPRESSED_RGBA_ASTC_6x6x5_OES+ , gl_COMBINE_EXT+ , gl_NICEST+ , gl_MODELVIEW2_ARB+ , gl_UNPACK_IMAGE_HEIGHT+ , gl_TEXTURE_CUBE_MAP_ARRAY_ARB+ , gl_DRAW_BUFFER12+ , gl_MAX_FRAGMENT_INTERPOLATION_OFFSET+ , gl_FRAMEBUFFER_DEFAULT_HEIGHT+ , gl_DT_BIAS_NV+ , gl_DSDT_NV+ , gl_IMAGE_CUBE_MAP_ARRAY+ , gl_STENCIL_INDEX4+ , gl_ROUND_NV+ , gl_Y_EXT+ , gl_PATH_DASH_CAPS_NV+ , gl_TEXTURE_PRIORITY+ , gl_TEXTURE_4D_BINDING_SGIS+ , gl_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD+ , gl_CULL_MODES_NV+ , gl_VERTEX_ATTRIB_MAP2_SIZE_APPLE+ , gl_REFERENCED_BY_GEOMETRY_SHADER_EXT+ , gl_MODELVIEW_MATRIX+ , gl_VIDEO_BUFFER_NV+ , gl_TEXTURE12+ , gl_COLORBURN_NV+ , gl_COLOR_ARRAY_BUFFER_BINDING_ARB+ , gl_READ_BUFFER_EXT+ , gl_RENDERBUFFER_RED_SIZE_OES+ , gl_TEXTURE_SHARED_SIZE+ , gl_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS+ , gl_ALL_SHADER_BITS_EXT+ , gl_PERFQUERY_SINGLE_CONTEXT_INTEL+ , gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT+ , gl_PERFMON_RESULT_AMD+ , gl_GUILTY_CONTEXT_RESET+ , gl_PREVIOUS+ , gl_UNSIGNED_INT16_VEC3_NV+ , gl_VERTEX_ATTRIB_MAP1_APPLE+ , gl_LIGHT3+ , gl_TESS_EVALUATION_SUBROUTINE_UNIFORM+ , gl_DUAL_INTENSITY8_SGIS+ , gl_PARAMETER_BUFFER_BINDING_ARB+ , gl_CURRENT_SECONDARY_COLOR+ , gl_RENDERBUFFER_ALPHA_SIZE+ , gl_DUAL_INTENSITY12_SGIS+ , gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING+ , gl_OP_MAX_EXT+ , gl_EDGE_FLAG_ARRAY_EXT+ , gl_COLOR_TABLE_LUMINANCE_SIZE+ , gl_FOG_COORD_ARRAY_ADDRESS_NV+ , gl_COPY+ , gl_DRAW_BUFFER2_NV+ , gl_SAMPLER_BINDING+ , gl_COPY_WRITE_BUFFER+ , gl_PIXEL_UNPACK_BUFFER+ , gl_VIEW_CLASS_S3TC_DXT1_RGBA+ , gl_DRAW_FRAMEBUFFER_APPLE+ , gl_PIXEL_MAP_A_TO_A_SIZE+ , gl_EDGE_FLAG+ , gl_CLIP_DISTANCE2+ , gl_TEXTURE_GEN_MODE+ , gl_HALF_BIAS_NORMAL_NV+ , gl_RESAMPLE_ZERO_FILL_SGIX+ , gl_OUTPUT_TEXTURE_COORD12_EXT+ , gl_UNSIGNED_SHORT_8_8_REV_MESA+ , gl_PALETTE8_RGBA8_OES+ , gl_TEXTURE_4D_SGIS+ , gl_PIXEL_PACK_BUFFER_EXT+ , gl_MAP_ATTRIB_U_ORDER_NV+ , gl_FUNC_SUBTRACT+ , gl_PIXEL_SUBSAMPLE_4444_SGIX+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_Y+ , gl_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT+ , gl_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT+ , gl_DYNAMIC_COPY+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT+ , gl_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT+ , gl_PROGRAM_LENGTH_ARB+ , gl_MODELVIEW14_ARB+ , gl_ITALIC_BIT_NV+ , gl_OR_INVERTED+ , gl_CLIP_NEAR_HINT_PGI+ , gl_COVERAGE_EDGE_FRAGMENTS_NV+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR+ , gl_PROGRAM_BINARY_LENGTH_OES+ , gl_DRAW_BUFFER8_ARB+ , gl_DRAW_FRAMEBUFFER_EXT+ , gl_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET+ , gl_SYNC_CL_EVENT_ARB+ , gl_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE+ , gl_MAX_VERTEX_HINT_PGI+ , gl_UNPACK_IMAGE_HEIGHT_EXT+ , gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV+ , gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE+ , gl_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB+ , gl_STENCIL_BACK_REF+ , gl_CLAMP_READ_COLOR_ARB+ , gl_INTERNALFORMAT_RED_SIZE+ , gl_PATCH_DEFAULT_INNER_LEVEL_EXT+ , gl_OUTPUT_TEXTURE_COORD27_EXT+ , gl_QUERY_STENCIL_FAIL_EVENT_BIT_AMD+ , gl_MAX_COMPUTE_TEXTURE_IMAGE_UNITS+ , gl_LOCATION+ , gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS+ , gl_POST_COLOR_MATRIX_GREEN_SCALE+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR+ , gl_POST_COLOR_MATRIX_ALPHA_SCALE+ , gl_HORIZONTAL_LINE_TO_NV+ , gl_MAX_FRAGMENT_INPUT_COMPONENTS+ , gl_PROGRAM_STRING_ARB+ , gl_EDGE_FLAG_ARRAY_ADDRESS_NV+ , gl_VENDOR+ , gl_CLIPPING_INPUT_PRIMITIVES_ARB+ , gl_TEXTURE_RENDERBUFFER_NV+ , gl_ELEMENT_ARRAY_ADDRESS_NV+ , gl_LOCAL_EXT+ , gl_GEOMETRY_SHADER_INVOCATIONS+ , gl_INT_VEC4_ARB+ , gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE+ , gl_SEPARATE_ATTRIBS_NV+ , gl_FLOAT_MAT4_ARB+ , gl_COLOR_ATTACHMENT_EXT+ , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE+ , gl_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB+ , gl_SHININESS+ , gl_INTERPOLATE_EXT+ , gl_TRANSFORM_FEEDBACK+ , gl_TEXTURE_DEPTH_QCOM+ , gl_DOUBLE_MAT4x2+ , gl_NORMAL_ARRAY_BUFFER_BINDING_ARB+ , gl_PIXEL_TEX_GEN_SGIX+ , gl_TRANSFORM_FEEDBACK_BUFFER_START+ , gl_GLYPH_WIDTH_BIT_NV+ , gl_STENCIL_ATTACHMENT_EXT+ , gl_VERTEX_ARRAY_RANGE_POINTER_APPLE+ , gl_VERTEX_WEIGHT_ARRAY_TYPE_EXT+ , gl_MATRIX4_NV+ , gl_READ_FRAMEBUFFER_ANGLE+ , gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS+ , gl_VERTEX_ARRAY_POINTER_EXT+ , gl_RELATIVE_ROUNDED_RECT_NV+ , gl_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV+ , gl_MAX_PROGRAM_GENERIC_ATTRIBS_NV+ , gl_TEXTURE_MEMORY_LAYOUT_INTEL+ , gl_REG_0_ATI+ , gl_VERTEX_ATTRIB_ARRAY15_NV+ , gl_RGB12_EXT+ , gl_FRAGMENT_LIGHT6_SGIX+ , gl_MAX_PROGRAM_ATTRIB_COMPONENTS_NV+ , gl_QUERY_ALL_EVENT_BITS_AMD+ , gl_INTENSITY_FLOAT32_APPLE+ , gl_LIST_INDEX+ , gl_COMPRESSED_RGB_PVRTC_2BPPV1_IMG+ , gl_REG_18_ATI+ , gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT+ , gl_COMPILE+ , gl_VIEW_CLASS_128_BITS+ , gl_4X_BIT_ATI+ , gl_CLIENT_PIXEL_STORE_BIT+ , gl_OPERAND2_RGB+ , gl_MINMAX_FORMAT_EXT+ , gl_UNSIGNED_INT_IMAGE_1D+ , gl_INSTRUMENT_MEASUREMENTS_SGIX+ , gl_VALIDATE_STATUS+ , gl_NORMAL_ARRAY_COUNT_EXT+ , gl_PATH_STENCIL_REF_NV+ , gl_DRAW_BUFFER5_NV+ , gl_COMPRESSED_RGBA_ARB+ , gl_MAX_MULTISAMPLE_COVERAGE_MODES_NV+ , gl_MAX_3D_TEXTURE_SIZE+ , gl_FRAGMENT_NORMAL_EXT+ , gl_SHADER_KHR+ , gl_TEXTURE_DEPTH_TYPE+ , gl_VERTEX_PROGRAM_CALLBACK_FUNC_MESA+ , gl_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE+ , gl_TEXTURE_2D_STACK_BINDING_MESAX+ , gl_NUM_COMPRESSED_TEXTURE_FORMATS_ARB+ , gl_INT_SAMPLER_2D_EXT+ , gl_RGBA4_S3TC+ , gl_MAX_SPOT_EXPONENT_NV+ , gl_NEGATIVE_X_EXT+ , gl_SYNC_X11_FENCE_EXT+ , gl_OP_DOT3_EXT+ , gl_LUMINANCE8_SNORM+ , gl_SAMPLE_SHADING_ARB+ , gl_CONVOLUTION_2D_EXT+ , gl_MAP2_TEXTURE_COORD_2+ , gl_SHADER_IMAGE_LOAD+ , gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV+ , gl_TEXTURE_VIEW_NUM_LEVELS_EXT+ , gl_ACTIVE_UNIFORMS+ , gl_ACCUM_GREEN_BITS+ , gl_TESS_EVALUATION_PROGRAM_NV+ , gl_COMPRESSED_SLUMINANCE+ , gl_COLOR_ATTACHMENT14_EXT+ , gl_VERTEX23_BIT_PGI+ , gl_BUMP_ROT_MATRIX_ATI+ , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT+ , gl_MAX_PALETTE_MATRICES_OES+ , gl_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV+ , gl_CONVOLUTION_BORDER_MODE_EXT+ , gl_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE+ , gl_INTENSITY32I_EXT+ , gl_RASTERIZER_DISCARD_EXT+ , gl_MAX_SAMPLES_EXT+ , gl_DRAW_BUFFER10_EXT+ , gl_INT_IMAGE_2D+ , gl_PROVOKING_VERTEX+ , gl_UNPACK_RESAMPLE_SGIX+ , gl_SAMPLE_POSITION_NV+ , gl_MAX_PROGRAM_MATRICES_ARB+ , gl_SHADER_STORAGE_BUFFER_BINDING+ , gl_TEXTURE0+ , gl_DSDT_MAG_VIB_NV+ , gl_DOUBLE_MAT4x3+ , gl_TEXTURE27_ARB+ , gl_ACTIVE_ATOMIC_COUNTER_BUFFERS+ , gl_LUMINANCE32I_EXT+ , gl_SAMPLER_KHR+ , gl_MITER_REVERT_NV+ , gl_RGB32UI_EXT+ , gl_DUAL_LUMINANCE12_SGIS+ , gl_BOOL_VEC2+ , gl_COLOR_ATTACHMENT1_NV+ , gl_MAX_CONVOLUTION_WIDTH+ , gl_DRAW_BUFFER14_NV+ , gl_BLEND_DST_RGB_EXT+ , gl_LUMINANCE12_ALPHA12_EXT+ , gl_DEPTH_BOUNDS_EXT+ , gl_CIRCULAR_CCW_ARC_TO_NV+ , gl_COMPRESSED_LUMINANCE_ALPHA+ , gl_SAMPLE_COVERAGE_VALUE_ARB+ , gl_DEPTH_STENCIL_TO_RGBA_NV+ , gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING+ , gl_NAME_LENGTH+ , gl_STENCIL_TEST_TWO_SIDE_EXT+ , gl_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES+ , gl_VERTEX_ATTRIB_ARRAY_STRIDE_ARB+ , gl_OUTPUT_TEXTURE_COORD30_EXT+ , gl_MAX_PROGRAM_SUBROUTINE_NUM_NV+ , gl_MULTIPLY_NV+ , gl_TEXTURE19+ , gl_INVERT_OVG_NV+ , gl_IMPLEMENTATION_COLOR_READ_FORMAT_OES+ , gl_NEAREST_CLIPMAP_LINEAR_SGIX+ , gl_VARIABLE_A_NV+ , gl_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT+ , gl_TEXTURE_2D_MULTISAMPLE+ , gl_DEBUG_SOURCE_THIRD_PARTY+ , gl_DRAW_BUFFER7_ARB+ , gl_MAX_DRAW_BUFFERS+ , gl_MAX_SERVER_WAIT_TIMEOUT+ , gl_COMPRESSED_SIGNED_RG11_EAC+ , gl_VERTEX_PROGRAM_POINT_SIZE+ , gl_STENCIL_PASS_DEPTH_PASS+ , gl_RENDERBUFFER_STENCIL_SIZE+ , gl_TEXTURE_BINDING_2D+ , gl_DATA_BUFFER_AMD+ , gl_DEBUG_CATEGORY_APPLICATION_AMD+ , gl_ASYNC_HISTOGRAM_SGIX+ , gl_UNPACK_LSB_FIRST+ , gl_UNSIGNED_INT_SAMPLER_CUBE_EXT+ , gl_DEPTH_CLAMP_FAR_AMD+ , gl_TRANSFORM_FEEDBACK_BUFFER_MODE_NV+ , gl_VERTEX_ATTRIB_ARRAY_STRIDE+ , gl_UNSIGNED_INT16_VEC4_NV+ , gl_OBJECT_BUFFER_SIZE_ATI+ , gl_YCRCB_444_SGIX+ , gl_LOSE_CONTEXT_ON_RESET_KHR+ , gl_TEXTURE_VIEW_NUM_LAYERS+ , gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB+ , gl_PERFQUERY_COUNTER_DATA_BOOL32_INTEL+ , gl_OBJECT_DELETE_STATUS_ARB+ , gl_SQUARE_NV+ , gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT+ , gl_DEBUG_SEVERITY_NOTIFICATION_KHR+ , gl_EYE_LINEAR_NV+ , gl_REG_16_ATI+ , gl_LUMINANCE_ALPHA32UI_EXT+ , gl_OUTPUT_TEXTURE_COORD31_EXT+ , gl_COMPRESSED_RG_RGTC2+ , gl_FLOAT_MAT3+ , gl_INDEX_ARRAY_POINTER+ , gl_FOG_COORD+ , gl_DRAW_BUFFER13+ , gl_SCALED_RESOLVE_NICEST_EXT+ , gl_QUERY_RESULT_AVAILABLE+ , gl_UNPACK_SUBSAMPLE_RATE_SGIX+ , gl_3_BYTES_NV+ , gl_CLEAR+ , gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT+ , gl_R8UI+ , gl_OFFSET_TEXTURE_2D_MATRIX_NV+ , gl_BGRA_INTEGER+ , gl_MAX_ARRAY_TEXTURE_LAYERS+ , gl_COMPRESSED_RGB_ARB+ , gl_FOG_COORDINATE_ARRAY_POINTER_EXT+ , gl_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT+ , gl_TEXTURE_MAG_FILTER+ , gl_DEPTH_COMPONENT32+ , gl_VIEW_CLASS_S3TC_DXT1_RGB+ , gl_FRONT_RIGHT+ , gl_HISTOGRAM_WIDTH+ , gl_SAMPLER_CUBE_MAP_ARRAY_ARB+ , gl_WEIGHT_ARRAY_STRIDE_OES+ , gl_PIXEL_PACK_BUFFER_ARB+ , gl_DOT_PRODUCT_PASS_THROUGH_NV+ , gl_COMPRESSED_RG11_EAC+ , gl_SRGB_DECODE_ARB+ , gl_OP_SUB_EXT+ , gl_SLIM12S_SGIX+ , gl_SECONDARY_COLOR_NV+ , gl_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS+ , gl_MAP1_VERTEX_3+ , gl_RELATIVE_ROUNDED_RECT8_NV+ , gl_PALETTE4_R5_G6_B5_OES+ , gl_UNSIGNED_INT8_NV+ , gl_CURRENT_MATRIX_STACK_DEPTH_ARB+ , gl_PIXEL_MODE_BIT+ , gl_FONT_UNINTELLIGIBLE_NV+ , gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT+ , gl_LUMINANCE8UI_EXT+ , gl_HILO16_NV+ , gl_MAP2_VERTEX_ATTRIB8_4_NV+ , gl_ATTACHED_SHADERS+ , gl_OBJECT_POINT_SGIS+ , gl_TEXTURE_CUBE_MAP_SEAMLESS+ , gl_COLOR_ATTACHMENT0+ , gl_POST_CONVOLUTION_ALPHA_BIAS_EXT+ , gl_SAMPLE_PATTERN_SGIS+ , gl_COPY_PIXEL_TOKEN+ , gl_BUFFER_SIZE_ARB+ , gl_DEPTH_BOUNDS_TEST_EXT+ , gl_SAMPLE_POSITION+ , gl_FULL_STIPPLE_HINT_PGI+ , gl_DEBUG_ASSERT_MESA+ , gl_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB+ , gl_RENDERBUFFER_WIDTH_OES+ , gl_FLOAT_RGBA16_NV+ , gl_MODELVIEW5_ARB+ , gl_VERSION+ , gl_TEXTURE17_ARB+ , gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT+ , gl_MODELVIEW0_STACK_DEPTH_EXT+ , gl_OUTPUT_TEXTURE_COORD1_EXT+ , gl_REQUIRED_TEXTURE_IMAGE_UNITS_OES+ , gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX+ , gl_IMAGE_TRANSFORM_2D_HP+ , gl_HSL_SATURATION_NV+ , gl_UNSIGNED_SHORT_5_6_5_REV+ , gl_LINEAR_CLIPMAP_NEAREST_SGIX+ , gl_PREVIOUS_ARB+ , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT+ , gl_PERFQUERY_COUNTER_DURATION_NORM_INTEL+ , gl_SLUMINANCE8_EXT+ , gl_RGBA16F_ARB+ , gl_PIXEL_UNPACK_BUFFER_ARB+ , gl_STENCIL_REF+ , gl_TEXTURE_VIEW_MIN_LAYER_EXT+ , gl_HISTOGRAM_RED_SIZE+ , gl_CLIP_PLANE1+ , gl_UNKNOWN_CONTEXT_RESET_ARB+ , gl_CMYK_EXT+ , gl_TEXTURE_COMPRESSED_BLOCK_SIZE+ , gl_RGBA8I+ , gl_TEXTURE29_ARB+ , gl_STENCIL_BUFFER_BIT2_QCOM+ , gl_RED_MIN_CLAMP_INGR+ , gl_ATC_RGBA_EXPLICIT_ALPHA_AMD+ , gl_ALL_COMPLETED_NV+ , gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE+ , gl_MATRIX10_ARB+ , gl_MAP1_VERTEX_ATTRIB1_4_NV+ , gl_MAX_4D_TEXTURE_SIZE_SGIS+ , gl_VIEW_CLASS_32_BITS+ , gl_TEXTURE7_ARB+ , gl_DEBUG_TYPE_PERFORMANCE_ARB+ , gl_ACTIVE_VARIABLES+ , gl_SOURCE2_RGB_EXT+ , gl_PACK_INVERT_MESA+ , gl_QUERY_BY_REGION_WAIT_NV+ , gl_VERTEX_ID_SWIZZLE_AMD+ , gl_SPRITE_TRANSLATION_SGIX+ , gl_RENDERBUFFER_HEIGHT+ , gl_CUBIC_EXT+ , gl_TEXTURE19_ARB+ , gl_T2F_N3F_V3F+ , gl_ATOMIC_COUNTER_BARRIER_BIT_EXT+ , gl_ARRAY_ELEMENT_LOCK_FIRST_EXT+ , gl_PROGRAM_RESULT_COMPONENTS_NV+ , gl_MAX_RECTANGLE_TEXTURE_SIZE_ARB+ , gl_TRIANGLE_MESH_SUN+ , gl_TEXTURE_WRAP_Q_SGIS+ , gl_ATTRIB_ARRAY_SIZE_NV+ , gl_DEBUG_LOGGED_MESSAGES_AMD+ , gl_BOOL+ , gl_MIN_LOD_WARNING_AMD+ , gl_PACK_SKIP_PIXELS+ , gl_IMAGE_TEXEL_SIZE+ , gl_SRC_ALPHA+ , gl_DEPENDENT_HILO_TEXTURE_2D_NV+ , gl_FRAMEBUFFER_ATTACHMENT_LAYERED+ , gl_PERFQUERY_COUNTER_DATA_UINT32_INTEL+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR+ , gl_VERTEX_ARRAY_RANGE_LENGTH_NV+ , gl_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS+ , gl_POST_CONVOLUTION_GREEN_SCALE+ , gl_SEPARATE_ATTRIBS+ , gl_UNSIGNED_BYTE_3_3_2+ , gl_SCALAR_EXT+ , gl_POINT_SIZE_ARRAY_STRIDE_OES+ , gl_DOUBLE_MAT3x4+ , gl_SRC0_RGB+ , gl_VIEW_CLASS_BPTC_UNORM+ , gl_SYNC_FLAGS+ , gl_TEXTURE_SWIZZLE_RGBA_EXT+ , gl_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX+ , gl_TEXTURE29+ , gl_MEDIUM_INT+ , gl_CURRENT_QUERY_ARB+ , gl_DT_SCALE_NV+ , gl_CLAMP_VERTEX_COLOR_ARB+ , gl_DEPTH_BUFFER_BIT4_QCOM+ , gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2+ , gl_USE_MISSING_GLYPH_NV+ , gl_MAX_ASYNC_TEX_IMAGE_SGIX+ , gl_TESS_CONTROL_TEXTURE+ , gl_DEPTH_FUNC+ , gl_RG8I+ , gl_MAX_VERTEX_SHADER_VARIANTS_EXT+ , gl_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB+ , gl_COMPRESSED_SRGB+ , gl_PROGRAM_BINDING_ARB+ , gl_SAMPLER_2D_ARRAY+ , gl_IMAGE_CUBE_MAP_ARRAY_EXT+ , gl_BUFFER_ACCESS_FLAGS+ , gl_EIGHTH_BIT_ATI+ , gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV+ , gl_INT8_VEC4_NV+ , gl_CLEAR_TEXTURE+ , gl_TEXTURE_CUBE_MAP_OES+ , gl_FONT_NUM_GLYPH_INDICES_BIT_NV+ , gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV+ , gl_RENDERBUFFER_DEPTH_SIZE+ , gl_DOT_PRODUCT_TEXTURE_1D_NV+ , gl_DOUBLE_VEC3_EXT+ , gl_VERTEX_ATTRIB_ARRAY_UNIFIED_NV+ , gl_TEXTURE_LUMINANCE_TYPE+ , gl_CONTEXT_FLAGS+ , gl_NORMAL_ARRAY_BUFFER_BINDING+ , gl_PROGRAM_FORMAT_ARB+ , gl_MOVE_TO_CONTINUES_NV+ , gl_LO_BIAS_NV+ , gl_CONVOLUTION_WIDTH_EXT+ , gl_FRAGMENT_TEXTURE+ , gl_NORMAL_BIT_PGI+ , gl_COMPRESSED_SIGNED_RG11_EAC_OES+ , gl_FIRST_VERTEX_CONVENTION+ , gl_ROUNDED_RECT2_NV+ , gl_POST_COLOR_MATRIX_RED_BIAS+ , gl_UNIFORM_BUFFER+ , gl_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT+ , gl_NUM_SAMPLE_COUNTS+ , gl_FOG_OFFSET_VALUE_SGIX+ , gl_DIFFUSE+ , gl_CLIP_PLANE5+ , gl_OUTPUT_FOG_EXT+ , gl_PROGRAM_ATTRIB_COMPONENTS_NV+ , gl_RGBA_SIGNED_COMPONENTS_EXT+ , gl_COLOR_ARRAY_EXT+ , gl_PROXY_TEXTURE_1D_STACK_MESAX+ , gl_TEXTURE_COORD_ARRAY_POINTER+ , gl_MAX_COLOR_ATTACHMENTS+ , gl_TEXTURE28_ARB+ , gl_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX+ , gl_DEPTH24_STENCIL8_EXT+ , gl_MAX+ , gl_MODELVIEW12_ARB+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES+ , gl_PIXEL_MAP_I_TO_I_SIZE+ , gl_NORMAL_ARRAY_LIST_STRIDE_IBM+ , gl_SOURCE3_RGB_NV+ , gl_ALPHA12_EXT+ , gl_STREAM_COPY_ARB+ , gl_STENCIL_BACK_PASS_DEPTH_FAIL_ATI+ , gl_FRAGMENT_SUBROUTINE_UNIFORM+ , gl_IS_ROW_MAJOR+ , gl_UNPACK_SKIP_IMAGES+ , gl_NUM_GENERAL_COMBINERS_NV+ , gl_STENCIL_CLEAR_TAG_VALUE_EXT+ , gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS+ , gl_DRAW_BUFFER12_ARB+ , gl_OFFSET_PROJECTIVE_TEXTURE_2D_NV+ , gl_VERTEX_ARRAY_OBJECT_EXT+ , gl_PN_TRIANGLES_NORMAL_MODE_ATI+ , gl_C4UB_V3F+ , gl_REPEAT+ , gl_MAX_SAMPLE_MASK_WORDS_NV+ , gl_STORAGE_SHARED_APPLE+ , gl_TEXTURE9_ARB+ , gl_QUERY_BUFFER_BINDING+ , gl_UNSIGNED_SHORT_8_8_REV_APPLE+ , gl_MAX_FRAGMENT_UNIFORM_VECTORS+ , gl_UNDEFINED_APPLE+ , gl_TABLE_TOO_LARGE_EXT+ , gl_MAX_TESS_PATCH_COMPONENTS_EXT+ , gl_XOR_NV+ , gl_MAX_SHADER_BUFFER_ADDRESS_NV+ , gl_DEBUG_SOURCE_WINDOW_SYSTEM+ , gl_UNSIGNALED_APPLE+ , gl_SIGNED_LUMINANCE_NV+ , gl_FOG_DISTANCE_MODE_NV+ , gl_PN_TRIANGLES_POINT_MODE_ATI+ , gl_GEOMETRY_SUBROUTINE_UNIFORM+ , gl_NEGATIVE_Z_EXT+ , gl_PIXEL_MAP_R_TO_R+ , gl_OBJECT_LINK_STATUS_ARB+ , gl_NUM_ACTIVE_VARIABLES+ , gl_BUFFER_UPDATE_BARRIER_BIT_EXT+ , gl_IMAGE_CUBE_EXT+ , gl_RGB_INTEGER_EXT+ , gl_DRAW_BUFFER13_EXT+ , gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT+ , gl_SYNC_GPU_COMMANDS_COMPLETE_APPLE+ , gl_RGB_SCALE+ , gl_DOUBLE_MAT3x4_EXT+ , gl_EXP+ , gl_PERFMON_RESULT_AVAILABLE_AMD+ , gl_STENCIL_VALUE_MASK+ , gl_COLOR_ATTACHMENT12_NV+ , gl_VERTEX_STREAM2_ATI+ , gl_MAP_COHERENT_BIT+ , gl_COMPRESSED_SIGNED_RG_RGTC2+ , gl_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER+ , gl_FRAGMENT_PROGRAM_ARB+ , gl_COLOR_BUFFER_BIT6_QCOM+ , gl_FLOAT_32_UNSIGNED_INT_24_8_REV_NV+ , gl_WIDE_LINE_HINT_PGI+ , gl_FRAGMENT_LIGHT4_SGIX+ , gl_RGBA_FLOAT_MODE_ATI+ , gl_UNSIGNED_INT_10F_11F_11F_REV+ , gl_MODELVIEW1_STACK_DEPTH_EXT+ , gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV+ , gl_POINT_SIZE_MAX+ , gl_ALPHA_TEST_REF_QCOM+ , gl_RELATIVE_HORIZONTAL_LINE_TO_NV+ , gl_FILTER4_SGIS+ , gl_TEXTURE4+ , gl_INDEX_MATERIAL_EXT+ , gl_FETCH_PER_SAMPLE_ARM+ , gl_VARIANT_ARRAY_TYPE_EXT+ , gl_ALPHA_MAX_SGIX+ , gl_NUM_INSTRUCTIONS_TOTAL_ATI+ , gl_TEXTURE_IMAGE_TYPE+ , gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS+ , gl_DRAW_BUFFER11_NV+ , gl_SURFACE_STATE_NV+ , gl_BLEND_SRC_RGB+ , gl_OBJECT_ACTIVE_UNIFORMS_ARB+ , gl_COLORDODGE_NV+ , gl_PRIMITIVES_GENERATED_NV+ , gl_IMAGE_2D_ARRAY+ , gl_LOSE_CONTEXT_ON_RESET_ARB+ , gl_RG_INTEGER+ , gl_UNSIGNED_INT_SAMPLER_1D_EXT+ , gl_REFLECTION_MAP_ARB+ , gl_NORMAL_ARRAY_TYPE_EXT+ , gl_BLUE_BITS+ , gl_ATOMIC_COUNTER_BARRIER_BIT+ , gl_INTENSITY8I_EXT+ , gl_TEXTURE_BINDING_RECTANGLE_ARB+ , gl_SCALE_BY_TWO_NV+ , gl_PACK_IMAGE_HEIGHT+ , gl_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL+ , gl_DEPTH_COMPONENT24_SGIX+ , gl_NUM_FRAGMENT_CONSTANTS_ATI+ , gl_EDGE_FLAG_ARRAY_STRIDE_EXT+ , gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT+ , gl_SAMPLE_ALPHA_TO_COVERAGE_ARB+ , gl_UNPACK_SKIP_IMAGES_EXT+ , gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL+ , gl_RGBA8_OES+ , gl_STENCIL_INDEX8_OES+ , gl_MAX_SPARSE_3D_TEXTURE_SIZE_AMD+ , gl_COMPUTE_SHADER+ , gl_QUERY_WAIT_NV+ , gl_TEXTURE_COMPARE_FUNC_ARB+ , gl_SCREEN_COORDINATES_REND+ , gl_DRAW_BUFFER4_EXT+ , gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT+ , gl_TOP_LEVEL_ARRAY_SIZE+ , gl_STATIC_COPY_ARB+ , gl_MAP1_TANGENT_EXT+ , gl_MAP2_VERTEX_ATTRIB11_4_NV+ , gl_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX+ , gl_DRAW_BUFFER9+ , gl_COMPRESSED_INTENSITY_ARB+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB+ , gl_MATRIX19_ARB+ , gl_MAX_MULTIVIEW_BUFFERS_EXT+ , gl_CONJOINT_NV+ , gl_INTENSITY_SNORM+ , gl_DRAW_BUFFER14+ , gl_MAX_PROGRAM_INSTRUCTIONS_ARB+ , gl_TEXTURE_BINDING_RECTANGLE+ , gl_DEBUG_SOURCE_SHADER_COMPILER_ARB+ , gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR+ , gl_MULTISAMPLE_EXT+ , gl_NEAREST_MIPMAP_NEAREST+ , gl_COLOR_ATTACHMENT7_EXT+ , gl_STENCIL_BUFFER_BIT6_QCOM+ , gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT+ , gl_REG_29_ATI+ , gl_COVERAGE_SAMPLES_NV+ , gl_RELEASED_APPLE+ , gl_ALPHA_TEST_FUNC+ , gl_DRAW_BUFFER2+ , gl_VERTEX_PROGRAM_BINDING_NV+ , gl_IMAGE_2D_RECT+ , gl_COLOR_TABLE_BIAS_SGI+ , gl_CLIENT_ACTIVE_TEXTURE_ARB+ , gl_CURRENT_MATRIX_INDEX_ARB+ , gl_TEXTURE_COORD_ARRAY_STRIDE+ , gl_FILTER+ , gl_MAX_MODELVIEW_STACK_DEPTH+ , gl_VERTEX_ATTRIB_ARRAY5_NV+ , gl_UNSIGNED_BYTE+ , gl_DETAIL_TEXTURE_2D_SGIS+ , gl_POST_CONVOLUTION_BLUE_BIAS+ , gl_TYPE+ , gl_COMPRESSED_RG+ , gl_4PASS_1_SGIS+ , gl_SOURCE2_RGB+ , gl_TEXTURE_MAX_LOD+ , gl_EYE_DISTANCE_TO_LINE_SGIS+ , gl_LUMINANCE_ALPHA32F_EXT+ , gl_MATRIX_INDEX_ARRAY_STRIDE_ARB+ , gl_COLOR_ATTACHMENT4+ , gl_INDEX_ARRAY_BUFFER_BINDING+ , gl_UNSIGNED_INT_SAMPLER_2D_ARRAY+ , gl_PIXEL_TILE_BEST_ALIGNMENT_SGIX+ , gl_SPECULAR+ , gl_PACK_IMAGE_DEPTH_SGIS+ , gl_PLUS_CLAMPED_NV+ , gl_INVALID_FRAMEBUFFER_OPERATION+ , gl_RG+ , gl_COLOR_ATTACHMENT11_NV+ , gl_UNPACK_SKIP_PIXELS+ , gl_SAMPLE_BUFFERS+ , gl_DRAW_BUFFER1_ARB+ , gl_COMBINER6_NV+ , gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES+ , gl_TEXTURE_ENV+ , gl_QUAD_MESH_SUN+ , gl_REFERENCED_BY_TESS_CONTROL_SHADER_EXT+ , gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV+ , gl_TIMEOUT_EXPIRED+ , gl_FLOAT_MAT4x2_NV+ , gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES+ , gl_COMBINER1_NV+ , gl_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB+ , gl_RENDERBUFFER_SAMPLES_ANGLE+ , gl_VERTEX_ARRAY_SIZE+ , gl_TEXTURE2+ , gl_RELATIVE_MOVE_TO_NV+ , gl_ALPHA_TEST_FUNC_QCOM+ , gl_INNOCENT_CONTEXT_RESET_KHR+ , gl_MAP1_VERTEX_ATTRIB5_4_NV+ , gl_SAMPLER_1D_SHADOW+ , gl_TEXTURE_1D_ARRAY_EXT+ , gl_STENCIL_INDEX+ , gl_SOURCE2_ALPHA_EXT+ , gl_NORMAL_MAP_EXT+ , gl_FOG_COORDINATE_SOURCE_EXT+ , gl_TEXTURE_FILTER_CONTROL+ , gl_REPLACE_OLDEST_SUN+ , gl_PROGRAM_ADDRESS_REGISTERS_ARB+ , gl_2PASS_1_EXT+ , gl_LIGHT_ENV_MODE_SGIX+ , gl_OP_FRAC_EXT+ , gl_PROXY_TEXTURE_RECTANGLE_NV+ , gl_RENDERBUFFER+ , gl_MAP2_TEXTURE_COORD_4+ , gl_TEXTURE_BORDER_COLOR_EXT+ , gl_SEPARABLE_2D+ , gl_COMPRESSED_SRGB_S3TC_DXT1_EXT+ , gl_DRAW_BUFFER0_ATI+ , gl_TEXTURE_IMMUTABLE_LEVELS+ , gl_E_TIMES_F_NV+ , gl_MATRIX24_ARB+ , gl_PIXEL_GROUP_COLOR_SGIS+ , gl_CURRENT_RASTER_COLOR+ , gl_DOUBLE_MAT2x4_EXT+ , gl_BUMP_TEX_UNITS_ATI+ , gl_FOG_COORDINATE_ARRAY_EXT+ , gl_ALWAYS+ , gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES+ , gl_MAP2_VERTEX_4+ , gl_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG+ , gl_MODULATE_SIGNED_ADD_ATI+ , gl_RG8+ , gl_ACTIVE_UNIFORM_BLOCKS+ , gl_MAX_SPARSE_TEXTURE_SIZE_AMD+ , gl_COLOR_ATTACHMENT11_EXT+ , gl_POST_CONVOLUTION_BLUE_BIAS_EXT+ , gl_BUFFER_OBJECT_APPLE+ , gl_UNIFORM_TYPE+ , gl_VARIABLE_E_NV+ , gl_MAX_COMPUTE_ATOMIC_COUNTERS+ , gl_COMPRESSED_RED_RGTC1+ , gl_LUMINANCE_INTEGER_EXT+ , gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY+ , gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE+ , gl_R16F_EXT+ , gl_MATRIX4_ARB+ , gl_MATRIX_INDEX_ARRAY_SIZE_OES+ , gl_POLYGON_STIPPLE+ , gl_DUAL_ALPHA12_SGIS+ , gl_PIXEL_MAP_I_TO_B+ , gl_VERTEX_ATTRIB_ARRAY6_NV+ , gl_REG_21_ATI+ , gl_PERFMON_RESULT_SIZE_AMD+ , gl_ALPHA8_OES+ , gl_OBJECT_BUFFER_USAGE_ATI+ , gl_PATH_STENCIL_FUNC_NV+ , gl_TEXTURE12_ARB+ , gl_DEPTH_COMPONENT16_OES+ , gl_MODELVIEW20_ARB+ , gl_ALPHA12+ , gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT+ , gl_MODULATE_ADD_ATI+ , gl_CLAMP_TO_BORDER_EXT+ , gl_CONSTANT_EXT+ , gl_OP_LOG_BASE_2_EXT+ , gl_SET_AMD+ , gl_ONE_MINUS_SRC_ALPHA+ , gl_COMPRESSED_LUMINANCE_ALPHA_ARB+ , gl_MAX_SERVER_WAIT_TIMEOUT_APPLE+ , gl_LINE_TOKEN+ , gl_PROXY_POST_CONVOLUTION_COLOR_TABLE+ , gl_TEXTURE_BINDING_3D+ , gl_INTENSITY16I_EXT+ , gl_DEPENDENT_AR_TEXTURE_2D_NV+ , gl_CURRENT_RASTER_NORMAL_SGIX+ , gl_TEXTURE_INTENSITY_TYPE+ , gl_TEXTURE_STORAGE_SPARSE_BIT_AMD+ , gl_RENDERBUFFER_INTERNAL_FORMAT_EXT+ , gl_VERTEX_ATTRIB_ARRAY1_NV+ , gl_TEXTURE_RED_SIZE+ , gl_CURRENT_COLOR+ , gl_COMPRESSED_RGBA_ASTC_8x5_KHR+ , gl_STENCIL_BUFFER_BIT7_QCOM+ , gl_CLIP_PLANE0_IMG+ , gl_ALPHA_TEST_REF+ , gl_POINT_SMOOTH+ , gl_WEIGHT_ARRAY_SIZE_OES+ , gl_DECODE_EXT+ , gl_SPARSE_BUFFER_PAGE_SIZE_ARB+ , gl_CLIENT_ATTRIB_STACK_DEPTH+ , gl_TEXTURE_BINDING_EXTERNAL_OES+ , gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT+ , gl_RENDERBUFFER_STENCIL_SIZE_OES+ , gl_POST_COLOR_MATRIX_ALPHA_BIAS+ , gl_COMPARE_REF_DEPTH_TO_TEXTURE_EXT+ , gl_HSL_LUMINOSITY_KHR+ , gl_MAX_VERTEX_STREAMS_ATI+ , gl_PERFQUERY_COUNTER_THROUGHPUT_INTEL+ , gl_COMPRESSED_SIGNED_RED_RGTC1_EXT+ , gl_DEPTH_COMPONENT32_OES+ , gl_CON_3_ATI+ , gl_COMPRESSED_RGBA_S3TC_DXT1_EXT+ , gl_MATRIX6_ARB+ , gl_MAP2_VERTEX_ATTRIB5_4_NV+ , gl_LINE_WIDTH_RANGE+ , gl_GLYPH_VERTICAL_BEARING_X_BIT_NV+ , gl_FOG_COORDINATE_ARRAY+ , gl_VERTEX_ARRAY_RANGE_LENGTH_APPLE+ , gl_CLAMP_FRAGMENT_COLOR+ , gl_COMPRESSED_RGBA_ASTC_10x5_KHR+ , gl_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB+ , gl_COLOR_BUFFER_BIT4_QCOM+ , gl_TEXTURE13+ , gl_MAX_DEBUG_MESSAGE_LENGTH_AMD+ , gl_EVAL_VERTEX_ATTRIB0_NV+ , gl_ALPHA_MIN_CLAMP_INGR+ , gl_SUB_ATI+ , gl_SECONDARY_COLOR_ARRAY_LIST_IBM+ , gl_RGBA_INTEGER_MODE_EXT+ , gl_DEBUG_TYPE_MARKER_KHR+ , gl_VERTEX_ATTRIB_ARRAY14_NV+ , gl_TEXTURE_MIN_LOD+ , gl_INDEX_TEST_REF_EXT+ , gl_AUX0+ , gl_UNSIGNED_INT_IMAGE_2D_RECT+ , gl_2_BYTES+ , gl_UNDEFINED_VERTEX+ , gl_LINE_STIPPLE_PATTERN+ , gl_FRAMEBUFFER_SRGB_CAPABLE_EXT+ , gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB+ , gl_UNSIGNED_INT_SAMPLER_1D_ARRAY+ , gl_LOAD+ , gl_SIGNED_ALPHA8_NV+ , gl_STENCIL_INDEX8_EXT+ , gl_VIEW_CLASS_24_BITS+ , gl_SHADER_STORAGE_BARRIER_BIT+ , gl_UNSIGNED_INT_SAMPLER_BUFFER_AMD+ , gl_IMAGE_BINDING_LAYER+ , gl_MULTISAMPLE_FILTER_HINT_NV+ , gl_SPARE1_NV+ , gl_MAP_READ_BIT_EXT+ , gl_COMPRESSED_LUMINANCE+ , gl_COMPRESSED_TEXTURE_FORMATS+ , gl_UNIFORM_IS_ROW_MAJOR+ , gl_OFFSET_TEXTURE_2D_SCALE_NV+ , gl_RGBA_DXT5_S3TC+ , gl_MAX_PROGRAM_LOCAL_PARAMETERS_ARB+ , gl_MAX_UNIFORM_BUFFER_BINDINGS+ , gl_RGB16UI_EXT+ , gl_TEXTURE_COMPARE_OPERATOR_SGIX+ , gl_VIDEO_BUFFER_PITCH_NV+ , gl_RELATIVE_RECT_NV+ , gl_DRAW_BUFFER8_ATI+ , gl_SRC_COLOR+ , gl_SHADER_OBJECT_EXT+ , gl_GUILTY_CONTEXT_RESET_KHR+ , gl_EVAL_VERTEX_ATTRIB5_NV+ , gl_PALETTE4_RGBA4_OES+ , gl_LUMINANCE12_EXT+ , gl_DONT_CARE+ , gl_TEXTURE_BUFFER+ , gl_COMPRESSED_RGBA_ASTC_4x4x4_OES+ , gl_TEXTURE_BINDING_1D_ARRAY+ , gl_SEPARATE_SPECULAR_COLOR+ , gl_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED+ , gl_NORMAL_ARRAY_LIST_IBM+ , gl_CURRENT_MATRIX_STACK_DEPTH_NV+ , gl_INT_IMAGE_3D+ , gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV+ , gl_CONTEXT_FLAG_DEBUG_BIT+ , gl_WEIGHT_ARRAY_BUFFER_BINDING_ARB+ , gl_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX+ , gl_VECTOR_EXT+ , gl_TEXTURE_BUFFER_DATA_STORE_BINDING+ , gl_TEXTURE_LOD_BIAS+ , gl_GEOMETRY_SHADER_EXT+ , gl_TEXTURE30+ , gl_VERTEX_SHADER_BIT+ , gl_HISTOGRAM_BLUE_SIZE_EXT+ , gl_PATH_COMMAND_COUNT_NV+ , gl_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV+ , gl_STENCIL_TAG_BITS_EXT+ , gl_MAX_PROGRAM_LOOP_DEPTH_NV+ , gl_FLOAT_MAT2x3_NV+ , gl_CURRENT_RASTER_DISTANCE+ , gl_COMPRESSED_SRGB8_ETC2_OES+ , gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES+ , gl_PIXEL_MAP_I_TO_G_SIZE+ , gl_COMBINE+ , gl_FOG_HINT+ , gl_COMPUTE_SUBROUTINE_UNIFORM+ , gl_FRAGMENT_LIGHT3_SGIX+ , gl_DEBUG_TYPE_PORTABILITY_ARB+ , gl_MIN_PROGRAM_TEXEL_OFFSET_EXT+ , gl_TRANSFORM_FEEDBACK_BUFFER_NV+ , gl_UNKNOWN_CONTEXT_RESET_EXT+ , gl_INT_SAMPLER_CUBE_MAP_ARRAY_ARB+ , gl_UNSIGNED_INT_24_8_NV+ , gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY+ , gl_MANUAL_GENERATE_MIPMAP+ , gl_MAP2_VERTEX_ATTRIB6_4_NV+ , gl_FRAMEBUFFER_EXT+ , gl_INT16_NV+ , gl_FULL_RANGE_EXT+ , gl_MAP1_VERTEX_ATTRIB2_4_NV+ , gl_UNSIGNED_INT_8_8_8_8_EXT+ , gl_TESS_CONTROL_SUBROUTINE_UNIFORM+ , gl_PREVIOUS_TEXTURE_INPUT_NV+ , gl_ATOMIC_COUNTER_BUFFER_DATA_SIZE+ , gl_SYNC_STATUS_APPLE+ , gl_4PASS_0_EXT+ , gl_POLYGON_SMOOTH+ , gl_FEEDBACK_BUFFER_SIZE+ , gl_COLORBURN_KHR+ , gl_DEPTH24_STENCIL8+ , gl_LINEAR_CLIPMAP_LINEAR_SGIX+ , gl_TEXTURE_MAX_LEVEL+ , gl_TEXTURE_WRAP_R_EXT+ , gl_OBJECT_SUBTYPE_ARB+ , gl_MATRIX18_ARB+ , gl_MATRIX_INDEX_ARRAY_POINTER_OES+ , gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB+ , gl_ALPHA8_SNORM+ , gl_TESS_CONTROL_SUBROUTINE+ , gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB+ , gl_POST_CONVOLUTION_ALPHA_SCALE_EXT+ , gl_RGB5_A1_EXT+ , gl_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS+ , gl_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM+ , gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV+ , gl_TEXTURE21_ARB+ , gl_SAMPLER_2D_RECT_SHADOW+ , gl_DEPTH_STENCIL_TEXTURE_MODE+ , gl_MAP1_VERTEX_ATTRIB10_4_NV+ , gl_PINLIGHT_NV+ , gl_TEXTURE_INTERNAL_FORMAT+ , gl_VERTEX_ARRAY_OBJECT_AMD+ , gl_OBJECT_LINEAR+ , gl_TEXTURE_IMMUTABLE_FORMAT_EXT+ , gl_COMBINER_COMPONENT_USAGE_NV+ , gl_RENDERBUFFER_GREEN_SIZE_EXT+ , gl_CONVOLUTION_FILTER_SCALE+ , gl_TEXTURE11+ , gl_BITMAP+ , gl_VIEW_COMPATIBILITY_CLASS+ , gl_TEXTURE26+ , gl_UNSIGNED_INT8_VEC4_NV+ , gl_UNSIGNED_INT_VEC3+ , gl_VERTEX_PRECLIP_SGIX+ , gl_PACK_LSB_FIRST+ , gl_NEGATIVE_Y_EXT+ , gl_FRAMEBUFFER_BINDING_ANGLE+ , gl_MAP_INVALIDATE_BUFFER_BIT_EXT+ , gl_NO_RESET_NOTIFICATION+ , gl_MINMAX_EXT+ , gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST+ , gl_QUARTER_BIT_ATI+ , gl_TEXTURE9+ , gl_FLOAT_R16_NV+ , gl_BLEND_ADVANCED_COHERENT_KHR+ , gl_MATRIX_INDEX_ARRAY_POINTER_ARB+ , gl_PROXY_TEXTURE_1D_EXT+ , gl_PERTURB_EXT+ , gl_IUI_N3F_V3F_EXT+ , gl_COMBINE_RGB_ARB+ , gl_DEBUG_SOURCE_APPLICATION_KHR+ , gl_MAX_GEOMETRY_UNIFORM_COMPONENTS+ , gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE+ , gl_PROGRAM_ALU_INSTRUCTIONS_ARB+ , gl_VERTEX_STREAM0_ATI+ , gl_EDGE_FLAG_ARRAY_POINTER_EXT+ , gl_INT_IMAGE_2D_EXT+ , gl_READ_FRAMEBUFFER_BINDING_EXT+ , gl_TEXTURE_CUBE_MAP_ARB+ , gl_LUMINANCE12_ALPHA12+ , gl_FUNC_ADD+ , gl_TRANSPOSE_COLOR_MATRIX_ARB+ , gl_COLOR_ATTACHMENT6+ , gl_GEOMETRY_SUBROUTINE+ , gl_MAX_ELEMENT_INDEX+ , gl_QUERY_OBJECT_AMD+ , gl_TEXTURE_CUBE_MAP_EXT+ , gl_CONSTANT_ATTENUATION+ , gl_LUMINANCE_FLOAT32_APPLE+ , gl_R32UI+ , gl_UNSIGNED_INT_VEC4_EXT+ , gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT+ , gl_SAMPLE_MASK_VALUE+ , gl_STRICT_DEPTHFUNC_HINT_PGI+ , gl_CONVOLUTION_HEIGHT_EXT+ , gl_DEPTH_BUFFER_BIT1_QCOM+ , gl_CLIP_DISTANCE_NV+ , gl_DISPATCH_INDIRECT_BUFFER+ , gl_LUMINANCE4+ , gl_CLAMP+ , gl_CONVOLUTION_FORMAT+ , gl_IMAGE_2D_MULTISAMPLE+ , gl_TRIANGLE_STRIP+ , gl_BGRA_INTEGER_EXT+ , gl_FRAGMENTS_INSTRUMENT_MAX_SGIX+ , gl_TESS_CONTROL_SHADER_BIT+ , gl_POINT_SIZE_ARRAY_BUFFER_BINDING_OES+ , gl_BACK_NORMALS_HINT_PGI+ , gl_FOG_COORD_ARRAY+ , gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR+ , gl_OPERAND1_RGB_EXT+ , gl_LINEAR_SHARPEN_COLOR_SGIS+ , gl_POST_TEXTURE_FILTER_SCALE_SGIX+ , gl_FRAMEBUFFER_COMPLETE_OES+ , gl_SYNC_OBJECT_APPLE+ , gl_INDEX_WRITEMASK+ , gl_SIGNED_INTENSITY_NV+ , gl_SGX_PROGRAM_BINARY_IMG+ , gl_T4F_V4F+ , GLsync+ , GLsyncob()+ , GLhalf+ , GLhalfARB+ , GLintptrARB+ , GLsizeiptrARB+ , GLDEBUGPROC+ , GLDEBUGPROCARB+ , GLDEBUGPROCKHR+ , GLDEBUGPROCAMD+ , GLbyte+ , GLubyte+ , GLfloat+ , GLclampf+ , GLfixed+ , GLint64+ , GLuint64+ , GLint64EXT+ , GLuint64EXT+ , GLintptr+ , GLsizeiptr+ , GLhalfNV+ , GLvdpauSurfaceNV+ , GLenum+ , GLboolean+ , GLvoid+ , GLbitfield+ , GLshort+ , GLint+ , GLclampx+ , GLushort+ , GLuint+ , GLsizei+ , GLdouble+ , GLclampd+ , GLeglImageOESob()+ , GLeglImageOES+ , GLchar+ , GLcharARB+ , GLhandleARB+ )+ where++import Data.Typeable+import Data.IORef+import Data.Int+import Data.Word+import System.IO.Unsafe+import Control.Applicative+import Control.Exception+import Control.Monad+import Control.Monad.IO.Class+import Control.Monad.Trans.Except+import Foreign.C.Types+import Foreign.Ptr++#ifdef mingw32_HOST_OS+#define APIENTRY stdcall+#else+#define APIENTRY+#endif++data FlextInitResult = Failure { why :: String }+ | Success+ deriving ( Eq, Ord, Show, Read )++#ifdef __GLASGOW_HASKELL__+deriving instance Typeable FlextInitResult+instance Exception FlextInitResult+#endif++proc :: Either a a -> a+proc (Left x) = x+proc (Right x) = x++-- | Initializes OpenGL entry points in the current OpenGL context.+flextInit :: (String -> IO (Ptr ()))+ -> (String -> IO Bool)+ -> IO FlextInitResult+flextInit get_proc_address is_supported = fmap proc $ runExceptT $ do+ -- GL_VERSION_1_0++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCullFace"+ writeIORef glrefCullFace $ gldynCullFace addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFrontFace"+ writeIORef glrefFrontFace $ gldynFrontFace addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glHint"+ writeIORef glrefHint $ gldynHint addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glLineWidth"+ writeIORef glrefLineWidth $ gldynLineWidth addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPointSize"+ writeIORef glrefPointSize $ gldynPointSize addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPolygonMode"+ writeIORef glrefPolygonMode $ gldynPolygonMode addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glScissor"+ writeIORef glrefScissor $ gldynScissor addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameterf"+ writeIORef glrefTexParameterf $ gldynTexParameterf addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameterfv"+ writeIORef glrefTexParameterfv $ gldynTexParameterfv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameteri"+ writeIORef glrefTexParameteri $ gldynTexParameteri addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameteriv"+ writeIORef glrefTexParameteriv $ gldynTexParameteriv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexImage1D"+ writeIORef glrefTexImage1D $ gldynTexImage1D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexImage2D"+ writeIORef glrefTexImage2D $ gldynTexImage2D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawBuffer"+ writeIORef glrefDrawBuffer $ gldynDrawBuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClear"+ writeIORef glrefClear $ gldynClear addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearColor"+ writeIORef glrefClearColor $ gldynClearColor addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearStencil"+ writeIORef glrefClearStencil $ gldynClearStencil addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearDepth"+ writeIORef glrefClearDepth $ gldynClearDepth addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilMask"+ writeIORef glrefStencilMask $ gldynStencilMask addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glColorMask"+ writeIORef glrefColorMask $ gldynColorMask addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDepthMask"+ writeIORef glrefDepthMask $ gldynDepthMask addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisable"+ writeIORef glrefDisable $ gldynDisable addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnable"+ writeIORef glrefEnable $ gldynEnable addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFinish"+ writeIORef glrefFinish $ gldynFinish addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFlush"+ writeIORef glrefFlush $ gldynFlush addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlendFunc"+ writeIORef glrefBlendFunc $ gldynBlendFunc addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glLogicOp"+ writeIORef glrefLogicOp $ gldynLogicOp addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilFunc"+ writeIORef glrefStencilFunc $ gldynStencilFunc addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilOp"+ writeIORef glrefStencilOp $ gldynStencilOp addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDepthFunc"+ writeIORef glrefDepthFunc $ gldynDepthFunc addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPixelStoref"+ writeIORef glrefPixelStoref $ gldynPixelStoref addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPixelStorei"+ writeIORef glrefPixelStorei $ gldynPixelStorei addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glReadBuffer"+ writeIORef glrefReadBuffer $ gldynReadBuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glReadPixels"+ writeIORef glrefReadPixels $ gldynReadPixels addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBooleanv"+ writeIORef glrefGetBooleanv $ gldynGetBooleanv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetDoublev"+ writeIORef glrefGetDoublev $ gldynGetDoublev addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetError"+ writeIORef glrefGetError $ gldynGetError addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFloatv"+ writeIORef glrefGetFloatv $ gldynGetFloatv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetIntegerv"+ writeIORef glrefGetIntegerv $ gldynGetIntegerv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetString"+ writeIORef glrefGetString $ gldynGetString addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexImage"+ writeIORef glrefGetTexImage $ gldynGetTexImage addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexParameterfv"+ writeIORef glrefGetTexParameterfv $ gldynGetTexParameterfv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexParameteriv"+ writeIORef glrefGetTexParameteriv $ gldynGetTexParameteriv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexLevelParameterfv"+ writeIORef glrefGetTexLevelParameterfv $ gldynGetTexLevelParameterfv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexLevelParameteriv"+ writeIORef glrefGetTexLevelParameteriv $ gldynGetTexLevelParameteriv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsEnabled"+ writeIORef glrefIsEnabled $ gldynIsEnabled addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDepthRange"+ writeIORef glrefDepthRange $ gldynDepthRange addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glViewport"+ writeIORef glrefViewport $ gldynViewport addr++ -- GL_VERSION_1_1++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawArrays"+ writeIORef glrefDrawArrays $ gldynDrawArrays addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawElements"+ writeIORef glrefDrawElements $ gldynDrawElements addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPolygonOffset"+ writeIORef glrefPolygonOffset $ gldynPolygonOffset addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTexImage1D"+ writeIORef glrefCopyTexImage1D $ gldynCopyTexImage1D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTexImage2D"+ writeIORef glrefCopyTexImage2D $ gldynCopyTexImage2D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTexSubImage1D"+ writeIORef glrefCopyTexSubImage1D $ gldynCopyTexSubImage1D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTexSubImage2D"+ writeIORef glrefCopyTexSubImage2D $ gldynCopyTexSubImage2D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexSubImage1D"+ writeIORef glrefTexSubImage1D $ gldynTexSubImage1D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexSubImage2D"+ writeIORef glrefTexSubImage2D $ gldynTexSubImage2D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindTexture"+ writeIORef glrefBindTexture $ gldynBindTexture addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteTextures"+ writeIORef glrefDeleteTextures $ gldynDeleteTextures addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenTextures"+ writeIORef glrefGenTextures $ gldynGenTextures addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsTexture"+ writeIORef glrefIsTexture $ gldynIsTexture addr++ -- GL_VERSION_1_2++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawRangeElements"+ writeIORef glrefDrawRangeElements $ gldynDrawRangeElements addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexImage3D"+ writeIORef glrefTexImage3D $ gldynTexImage3D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexSubImage3D"+ writeIORef glrefTexSubImage3D $ gldynTexSubImage3D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTexSubImage3D"+ writeIORef glrefCopyTexSubImage3D $ gldynCopyTexSubImage3D addr++ -- GL_VERSION_1_3++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glActiveTexture"+ writeIORef glrefActiveTexture $ gldynActiveTexture addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSampleCoverage"+ writeIORef glrefSampleCoverage $ gldynSampleCoverage addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexImage3D"+ writeIORef glrefCompressedTexImage3D $ gldynCompressedTexImage3D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexImage2D"+ writeIORef glrefCompressedTexImage2D $ gldynCompressedTexImage2D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexImage1D"+ writeIORef glrefCompressedTexImage1D $ gldynCompressedTexImage1D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexSubImage3D"+ writeIORef glrefCompressedTexSubImage3D $ gldynCompressedTexSubImage3D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexSubImage2D"+ writeIORef glrefCompressedTexSubImage2D $ gldynCompressedTexSubImage2D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTexSubImage1D"+ writeIORef glrefCompressedTexSubImage1D $ gldynCompressedTexSubImage1D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetCompressedTexImage"+ writeIORef glrefGetCompressedTexImage $ gldynGetCompressedTexImage addr++ -- GL_VERSION_1_4++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlendFuncSeparate"+ writeIORef glrefBlendFuncSeparate $ gldynBlendFuncSeparate addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiDrawArrays"+ writeIORef glrefMultiDrawArrays $ gldynMultiDrawArrays addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiDrawElements"+ writeIORef glrefMultiDrawElements $ gldynMultiDrawElements addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPointParameterf"+ writeIORef glrefPointParameterf $ gldynPointParameterf addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPointParameterfv"+ writeIORef glrefPointParameterfv $ gldynPointParameterfv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPointParameteri"+ writeIORef glrefPointParameteri $ gldynPointParameteri addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPointParameteriv"+ writeIORef glrefPointParameteriv $ gldynPointParameteriv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlendColor"+ writeIORef glrefBlendColor $ gldynBlendColor addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlendEquation"+ writeIORef glrefBlendEquation $ gldynBlendEquation addr++ -- GL_VERSION_1_5++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenQueries"+ writeIORef glrefGenQueries $ gldynGenQueries addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteQueries"+ writeIORef glrefDeleteQueries $ gldynDeleteQueries addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsQuery"+ writeIORef glrefIsQuery $ gldynIsQuery addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBeginQuery"+ writeIORef glrefBeginQuery $ gldynBeginQuery addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEndQuery"+ writeIORef glrefEndQuery $ gldynEndQuery addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetQueryiv"+ writeIORef glrefGetQueryiv $ gldynGetQueryiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetQueryObjectiv"+ writeIORef glrefGetQueryObjectiv $ gldynGetQueryObjectiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetQueryObjectuiv"+ writeIORef glrefGetQueryObjectuiv $ gldynGetQueryObjectuiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindBuffer"+ writeIORef glrefBindBuffer $ gldynBindBuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteBuffers"+ writeIORef glrefDeleteBuffers $ gldynDeleteBuffers addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenBuffers"+ writeIORef glrefGenBuffers $ gldynGenBuffers addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsBuffer"+ writeIORef glrefIsBuffer $ gldynIsBuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBufferData"+ writeIORef glrefBufferData $ gldynBufferData addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBufferSubData"+ writeIORef glrefBufferSubData $ gldynBufferSubData addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBufferSubData"+ writeIORef glrefGetBufferSubData $ gldynGetBufferSubData addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMapBuffer"+ writeIORef glrefMapBuffer $ gldynMapBuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUnmapBuffer"+ writeIORef glrefUnmapBuffer $ gldynUnmapBuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBufferParameteriv"+ writeIORef glrefGetBufferParameteriv $ gldynGetBufferParameteriv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBufferPointerv"+ writeIORef glrefGetBufferPointerv $ gldynGetBufferPointerv addr++ -- GL_VERSION_2_0++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlendEquationSeparate"+ writeIORef glrefBlendEquationSeparate $ gldynBlendEquationSeparate addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawBuffers"+ writeIORef glrefDrawBuffers $ gldynDrawBuffers addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilOpSeparate"+ writeIORef glrefStencilOpSeparate $ gldynStencilOpSeparate addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilFuncSeparate"+ writeIORef glrefStencilFuncSeparate $ gldynStencilFuncSeparate addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glStencilMaskSeparate"+ writeIORef glrefStencilMaskSeparate $ gldynStencilMaskSeparate addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glAttachShader"+ writeIORef glrefAttachShader $ gldynAttachShader addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindAttribLocation"+ writeIORef glrefBindAttribLocation $ gldynBindAttribLocation addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompileShader"+ writeIORef glrefCompileShader $ gldynCompileShader addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCreateProgram"+ writeIORef glrefCreateProgram $ gldynCreateProgram addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCreateShader"+ writeIORef glrefCreateShader $ gldynCreateShader addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteProgram"+ writeIORef glrefDeleteProgram $ gldynDeleteProgram addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteShader"+ writeIORef glrefDeleteShader $ gldynDeleteShader addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDetachShader"+ writeIORef glrefDetachShader $ gldynDetachShader addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableVertexAttribArray"+ writeIORef glrefDisableVertexAttribArray $ gldynDisableVertexAttribArray addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableVertexAttribArray"+ writeIORef glrefEnableVertexAttribArray $ gldynEnableVertexAttribArray addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveAttrib"+ writeIORef glrefGetActiveAttrib $ gldynGetActiveAttrib addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveUniform"+ writeIORef glrefGetActiveUniform $ gldynGetActiveUniform addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetAttachedShaders"+ writeIORef glrefGetAttachedShaders $ gldynGetAttachedShaders addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetAttribLocation"+ writeIORef glrefGetAttribLocation $ gldynGetAttribLocation addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetProgramiv"+ writeIORef glrefGetProgramiv $ gldynGetProgramiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetProgramInfoLog"+ writeIORef glrefGetProgramInfoLog $ gldynGetProgramInfoLog addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetShaderiv"+ writeIORef glrefGetShaderiv $ gldynGetShaderiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetShaderInfoLog"+ writeIORef glrefGetShaderInfoLog $ gldynGetShaderInfoLog addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetShaderSource"+ writeIORef glrefGetShaderSource $ gldynGetShaderSource addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformLocation"+ writeIORef glrefGetUniformLocation $ gldynGetUniformLocation addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformfv"+ writeIORef glrefGetUniformfv $ gldynGetUniformfv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformiv"+ writeIORef glrefGetUniformiv $ gldynGetUniformiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribdv"+ writeIORef glrefGetVertexAttribdv $ gldynGetVertexAttribdv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribfv"+ writeIORef glrefGetVertexAttribfv $ gldynGetVertexAttribfv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribiv"+ writeIORef glrefGetVertexAttribiv $ gldynGetVertexAttribiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribPointerv"+ writeIORef glrefGetVertexAttribPointerv $ gldynGetVertexAttribPointerv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsProgram"+ writeIORef glrefIsProgram $ gldynIsProgram addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsShader"+ writeIORef glrefIsShader $ gldynIsShader addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glLinkProgram"+ writeIORef glrefLinkProgram $ gldynLinkProgram addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glShaderSource"+ writeIORef glrefShaderSource $ gldynShaderSource addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUseProgram"+ writeIORef glrefUseProgram $ gldynUseProgram addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1f"+ writeIORef glrefUniform1f $ gldynUniform1f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2f"+ writeIORef glrefUniform2f $ gldynUniform2f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3f"+ writeIORef glrefUniform3f $ gldynUniform3f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4f"+ writeIORef glrefUniform4f $ gldynUniform4f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1i"+ writeIORef glrefUniform1i $ gldynUniform1i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2i"+ writeIORef glrefUniform2i $ gldynUniform2i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3i"+ writeIORef glrefUniform3i $ gldynUniform3i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4i"+ writeIORef glrefUniform4i $ gldynUniform4i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1fv"+ writeIORef glrefUniform1fv $ gldynUniform1fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2fv"+ writeIORef glrefUniform2fv $ gldynUniform2fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3fv"+ writeIORef glrefUniform3fv $ gldynUniform3fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4fv"+ writeIORef glrefUniform4fv $ gldynUniform4fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1iv"+ writeIORef glrefUniform1iv $ gldynUniform1iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2iv"+ writeIORef glrefUniform2iv $ gldynUniform2iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3iv"+ writeIORef glrefUniform3iv $ gldynUniform3iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4iv"+ writeIORef glrefUniform4iv $ gldynUniform4iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix2fv"+ writeIORef glrefUniformMatrix2fv $ gldynUniformMatrix2fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix3fv"+ writeIORef glrefUniformMatrix3fv $ gldynUniformMatrix3fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix4fv"+ writeIORef glrefUniformMatrix4fv $ gldynUniformMatrix4fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glValidateProgram"+ writeIORef glrefValidateProgram $ gldynValidateProgram addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1d"+ writeIORef glrefVertexAttrib1d $ gldynVertexAttrib1d addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1dv"+ writeIORef glrefVertexAttrib1dv $ gldynVertexAttrib1dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1f"+ writeIORef glrefVertexAttrib1f $ gldynVertexAttrib1f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1fv"+ writeIORef glrefVertexAttrib1fv $ gldynVertexAttrib1fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1s"+ writeIORef glrefVertexAttrib1s $ gldynVertexAttrib1s addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib1sv"+ writeIORef glrefVertexAttrib1sv $ gldynVertexAttrib1sv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2d"+ writeIORef glrefVertexAttrib2d $ gldynVertexAttrib2d addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2dv"+ writeIORef glrefVertexAttrib2dv $ gldynVertexAttrib2dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2f"+ writeIORef glrefVertexAttrib2f $ gldynVertexAttrib2f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2fv"+ writeIORef glrefVertexAttrib2fv $ gldynVertexAttrib2fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2s"+ writeIORef glrefVertexAttrib2s $ gldynVertexAttrib2s addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib2sv"+ writeIORef glrefVertexAttrib2sv $ gldynVertexAttrib2sv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3d"+ writeIORef glrefVertexAttrib3d $ gldynVertexAttrib3d addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3dv"+ writeIORef glrefVertexAttrib3dv $ gldynVertexAttrib3dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3f"+ writeIORef glrefVertexAttrib3f $ gldynVertexAttrib3f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3fv"+ writeIORef glrefVertexAttrib3fv $ gldynVertexAttrib3fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3s"+ writeIORef glrefVertexAttrib3s $ gldynVertexAttrib3s addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib3sv"+ writeIORef glrefVertexAttrib3sv $ gldynVertexAttrib3sv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nbv"+ writeIORef glrefVertexAttrib4Nbv $ gldynVertexAttrib4Nbv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Niv"+ writeIORef glrefVertexAttrib4Niv $ gldynVertexAttrib4Niv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nsv"+ writeIORef glrefVertexAttrib4Nsv $ gldynVertexAttrib4Nsv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nub"+ writeIORef glrefVertexAttrib4Nub $ gldynVertexAttrib4Nub addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nubv"+ writeIORef glrefVertexAttrib4Nubv $ gldynVertexAttrib4Nubv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nuiv"+ writeIORef glrefVertexAttrib4Nuiv $ gldynVertexAttrib4Nuiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4Nusv"+ writeIORef glrefVertexAttrib4Nusv $ gldynVertexAttrib4Nusv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4bv"+ writeIORef glrefVertexAttrib4bv $ gldynVertexAttrib4bv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4d"+ writeIORef glrefVertexAttrib4d $ gldynVertexAttrib4d addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4dv"+ writeIORef glrefVertexAttrib4dv $ gldynVertexAttrib4dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4f"+ writeIORef glrefVertexAttrib4f $ gldynVertexAttrib4f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4fv"+ writeIORef glrefVertexAttrib4fv $ gldynVertexAttrib4fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4iv"+ writeIORef glrefVertexAttrib4iv $ gldynVertexAttrib4iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4s"+ writeIORef glrefVertexAttrib4s $ gldynVertexAttrib4s addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4sv"+ writeIORef glrefVertexAttrib4sv $ gldynVertexAttrib4sv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4ubv"+ writeIORef glrefVertexAttrib4ubv $ gldynVertexAttrib4ubv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4uiv"+ writeIORef glrefVertexAttrib4uiv $ gldynVertexAttrib4uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttrib4usv"+ writeIORef glrefVertexAttrib4usv $ gldynVertexAttrib4usv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribPointer"+ writeIORef glrefVertexAttribPointer $ gldynVertexAttribPointer addr++ -- GL_VERSION_2_1++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix2x3fv"+ writeIORef glrefUniformMatrix2x3fv $ gldynUniformMatrix2x3fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix3x2fv"+ writeIORef glrefUniformMatrix3x2fv $ gldynUniformMatrix3x2fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix2x4fv"+ writeIORef glrefUniformMatrix2x4fv $ gldynUniformMatrix2x4fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix4x2fv"+ writeIORef glrefUniformMatrix4x2fv $ gldynUniformMatrix4x2fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix3x4fv"+ writeIORef glrefUniformMatrix3x4fv $ gldynUniformMatrix3x4fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformMatrix4x3fv"+ writeIORef glrefUniformMatrix4x3fv $ gldynUniformMatrix4x3fv addr++ -- GL_VERSION_3_0++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glColorMaski"+ writeIORef glrefColorMaski $ gldynColorMaski addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBooleani_v"+ writeIORef glrefGetBooleani_v $ gldynGetBooleani_v addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetIntegeri_v"+ writeIORef glrefGetIntegeri_v $ gldynGetIntegeri_v addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnablei"+ writeIORef glrefEnablei $ gldynEnablei addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisablei"+ writeIORef glrefDisablei $ gldynDisablei addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsEnabledi"+ writeIORef glrefIsEnabledi $ gldynIsEnabledi addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBeginTransformFeedback"+ writeIORef glrefBeginTransformFeedback $ gldynBeginTransformFeedback addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEndTransformFeedback"+ writeIORef glrefEndTransformFeedback $ gldynEndTransformFeedback addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindBufferRange"+ writeIORef glrefBindBufferRange $ gldynBindBufferRange addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindBufferBase"+ writeIORef glrefBindBufferBase $ gldynBindBufferBase addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTransformFeedbackVaryings"+ writeIORef glrefTransformFeedbackVaryings $ gldynTransformFeedbackVaryings addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTransformFeedbackVarying"+ writeIORef glrefGetTransformFeedbackVarying $ gldynGetTransformFeedbackVarying addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClampColor"+ writeIORef glrefClampColor $ gldynClampColor addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBeginConditionalRender"+ writeIORef glrefBeginConditionalRender $ gldynBeginConditionalRender addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEndConditionalRender"+ writeIORef glrefEndConditionalRender $ gldynEndConditionalRender addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribIPointer"+ writeIORef glrefVertexAttribIPointer $ gldynVertexAttribIPointer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribIiv"+ writeIORef glrefGetVertexAttribIiv $ gldynGetVertexAttribIiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexAttribIuiv"+ writeIORef glrefGetVertexAttribIuiv $ gldynGetVertexAttribIuiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI1i"+ writeIORef glrefVertexAttribI1i $ gldynVertexAttribI1i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI2i"+ writeIORef glrefVertexAttribI2i $ gldynVertexAttribI2i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI3i"+ writeIORef glrefVertexAttribI3i $ gldynVertexAttribI3i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4i"+ writeIORef glrefVertexAttribI4i $ gldynVertexAttribI4i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI1ui"+ writeIORef glrefVertexAttribI1ui $ gldynVertexAttribI1ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI2ui"+ writeIORef glrefVertexAttribI2ui $ gldynVertexAttribI2ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI3ui"+ writeIORef glrefVertexAttribI3ui $ gldynVertexAttribI3ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4ui"+ writeIORef glrefVertexAttribI4ui $ gldynVertexAttribI4ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI1iv"+ writeIORef glrefVertexAttribI1iv $ gldynVertexAttribI1iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI2iv"+ writeIORef glrefVertexAttribI2iv $ gldynVertexAttribI2iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI3iv"+ writeIORef glrefVertexAttribI3iv $ gldynVertexAttribI3iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4iv"+ writeIORef glrefVertexAttribI4iv $ gldynVertexAttribI4iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI1uiv"+ writeIORef glrefVertexAttribI1uiv $ gldynVertexAttribI1uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI2uiv"+ writeIORef glrefVertexAttribI2uiv $ gldynVertexAttribI2uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI3uiv"+ writeIORef glrefVertexAttribI3uiv $ gldynVertexAttribI3uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4uiv"+ writeIORef glrefVertexAttribI4uiv $ gldynVertexAttribI4uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4bv"+ writeIORef glrefVertexAttribI4bv $ gldynVertexAttribI4bv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4sv"+ writeIORef glrefVertexAttribI4sv $ gldynVertexAttribI4sv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4ubv"+ writeIORef glrefVertexAttribI4ubv $ gldynVertexAttribI4ubv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribI4usv"+ writeIORef glrefVertexAttribI4usv $ gldynVertexAttribI4usv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformuiv"+ writeIORef glrefGetUniformuiv $ gldynGetUniformuiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindFragDataLocation"+ writeIORef glrefBindFragDataLocation $ gldynBindFragDataLocation addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFragDataLocation"+ writeIORef glrefGetFragDataLocation $ gldynGetFragDataLocation addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1ui"+ writeIORef glrefUniform1ui $ gldynUniform1ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2ui"+ writeIORef glrefUniform2ui $ gldynUniform2ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3ui"+ writeIORef glrefUniform3ui $ gldynUniform3ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4ui"+ writeIORef glrefUniform4ui $ gldynUniform4ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform1uiv"+ writeIORef glrefUniform1uiv $ gldynUniform1uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform2uiv"+ writeIORef glrefUniform2uiv $ gldynUniform2uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform3uiv"+ writeIORef glrefUniform3uiv $ gldynUniform3uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniform4uiv"+ writeIORef glrefUniform4uiv $ gldynUniform4uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameterIiv"+ writeIORef glrefTexParameterIiv $ gldynTexParameterIiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexParameterIuiv"+ writeIORef glrefTexParameterIuiv $ gldynTexParameterIuiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexParameterIiv"+ writeIORef glrefGetTexParameterIiv $ gldynGetTexParameterIiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTexParameterIuiv"+ writeIORef glrefGetTexParameterIuiv $ gldynGetTexParameterIuiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearBufferiv"+ writeIORef glrefClearBufferiv $ gldynClearBufferiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearBufferuiv"+ writeIORef glrefClearBufferuiv $ gldynClearBufferuiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearBufferfv"+ writeIORef glrefClearBufferfv $ gldynClearBufferfv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearBufferfi"+ writeIORef glrefClearBufferfi $ gldynClearBufferfi addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetStringi"+ writeIORef glrefGetStringi $ gldynGetStringi addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsRenderbuffer"+ writeIORef glrefIsRenderbuffer $ gldynIsRenderbuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindRenderbuffer"+ writeIORef glrefBindRenderbuffer $ gldynBindRenderbuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteRenderbuffers"+ writeIORef glrefDeleteRenderbuffers $ gldynDeleteRenderbuffers addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenRenderbuffers"+ writeIORef glrefGenRenderbuffers $ gldynGenRenderbuffers addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glRenderbufferStorage"+ writeIORef glrefRenderbufferStorage $ gldynRenderbufferStorage addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetRenderbufferParameteriv"+ writeIORef glrefGetRenderbufferParameteriv $ gldynGetRenderbufferParameteriv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsFramebuffer"+ writeIORef glrefIsFramebuffer $ gldynIsFramebuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindFramebuffer"+ writeIORef glrefBindFramebuffer $ gldynBindFramebuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteFramebuffers"+ writeIORef glrefDeleteFramebuffers $ gldynDeleteFramebuffers addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenFramebuffers"+ writeIORef glrefGenFramebuffers $ gldynGenFramebuffers addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCheckFramebufferStatus"+ writeIORef glrefCheckFramebufferStatus $ gldynCheckFramebufferStatus addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferTexture1D"+ writeIORef glrefFramebufferTexture1D $ gldynFramebufferTexture1D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferTexture2D"+ writeIORef glrefFramebufferTexture2D $ gldynFramebufferTexture2D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferTexture3D"+ writeIORef glrefFramebufferTexture3D $ gldynFramebufferTexture3D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferRenderbuffer"+ writeIORef glrefFramebufferRenderbuffer $ gldynFramebufferRenderbuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFramebufferAttachmentParameteriv"+ writeIORef glrefGetFramebufferAttachmentParameteriv $ gldynGetFramebufferAttachmentParameteriv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenerateMipmap"+ writeIORef glrefGenerateMipmap $ gldynGenerateMipmap addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBlitFramebuffer"+ writeIORef glrefBlitFramebuffer $ gldynBlitFramebuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glRenderbufferStorageMultisample"+ writeIORef glrefRenderbufferStorageMultisample $ gldynRenderbufferStorageMultisample addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferTextureLayer"+ writeIORef glrefFramebufferTextureLayer $ gldynFramebufferTextureLayer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMapBufferRange"+ writeIORef glrefMapBufferRange $ gldynMapBufferRange addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFlushMappedBufferRange"+ writeIORef glrefFlushMappedBufferRange $ gldynFlushMappedBufferRange addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindVertexArray"+ writeIORef glrefBindVertexArray $ gldynBindVertexArray addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteVertexArrays"+ writeIORef glrefDeleteVertexArrays $ gldynDeleteVertexArrays addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenVertexArrays"+ writeIORef glrefGenVertexArrays $ gldynGenVertexArrays addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsVertexArray"+ writeIORef glrefIsVertexArray $ gldynIsVertexArray addr++ -- GL_VERSION_3_1++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawArraysInstanced"+ writeIORef glrefDrawArraysInstanced $ gldynDrawArraysInstanced addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawElementsInstanced"+ writeIORef glrefDrawElementsInstanced $ gldynDrawElementsInstanced addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexBuffer"+ writeIORef glrefTexBuffer $ gldynTexBuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPrimitiveRestartIndex"+ writeIORef glrefPrimitiveRestartIndex $ gldynPrimitiveRestartIndex addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyBufferSubData"+ writeIORef glrefCopyBufferSubData $ gldynCopyBufferSubData addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformIndices"+ writeIORef glrefGetUniformIndices $ gldynGetUniformIndices addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveUniformsiv"+ writeIORef glrefGetActiveUniformsiv $ gldynGetActiveUniformsiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveUniformName"+ writeIORef glrefGetActiveUniformName $ gldynGetActiveUniformName addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetUniformBlockIndex"+ writeIORef glrefGetUniformBlockIndex $ gldynGetUniformBlockIndex addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveUniformBlockiv"+ writeIORef glrefGetActiveUniformBlockiv $ gldynGetActiveUniformBlockiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetActiveUniformBlockName"+ writeIORef glrefGetActiveUniformBlockName $ gldynGetActiveUniformBlockName addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUniformBlockBinding"+ writeIORef glrefUniformBlockBinding $ gldynUniformBlockBinding addr++ -- GL_VERSION_3_2++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawElementsBaseVertex"+ writeIORef glrefDrawElementsBaseVertex $ gldynDrawElementsBaseVertex addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawRangeElementsBaseVertex"+ writeIORef glrefDrawRangeElementsBaseVertex $ gldynDrawRangeElementsBaseVertex addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDrawElementsInstancedBaseVertex"+ writeIORef glrefDrawElementsInstancedBaseVertex $ gldynDrawElementsInstancedBaseVertex addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiDrawElementsBaseVertex"+ writeIORef glrefMultiDrawElementsBaseVertex $ gldynMultiDrawElementsBaseVertex addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProvokingVertex"+ writeIORef glrefProvokingVertex $ gldynProvokingVertex addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFenceSync"+ writeIORef glrefFenceSync $ gldynFenceSync addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsSync"+ writeIORef glrefIsSync $ gldynIsSync addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteSync"+ writeIORef glrefDeleteSync $ gldynDeleteSync addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClientWaitSync"+ writeIORef glrefClientWaitSync $ gldynClientWaitSync addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glWaitSync"+ writeIORef glrefWaitSync $ gldynWaitSync addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetInteger64v"+ writeIORef glrefGetInteger64v $ gldynGetInteger64v addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetSynciv"+ writeIORef glrefGetSynciv $ gldynGetSynciv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetInteger64i_v"+ writeIORef glrefGetInteger64i_v $ gldynGetInteger64i_v addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBufferParameteri64v"+ writeIORef glrefGetBufferParameteri64v $ gldynGetBufferParameteri64v addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferTexture"+ writeIORef glrefFramebufferTexture $ gldynFramebufferTexture addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexImage2DMultisample"+ writeIORef glrefTexImage2DMultisample $ gldynTexImage2DMultisample addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexImage3DMultisample"+ writeIORef glrefTexImage3DMultisample $ gldynTexImage3DMultisample addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultisamplefv"+ writeIORef glrefGetMultisamplefv $ gldynGetMultisamplefv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSampleMaski"+ writeIORef glrefSampleMaski $ gldynSampleMaski addr++ -- GL_VERSION_3_3++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindFragDataLocationIndexed"+ writeIORef glrefBindFragDataLocationIndexed $ gldynBindFragDataLocationIndexed addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFragDataIndex"+ writeIORef glrefGetFragDataIndex $ gldynGetFragDataIndex addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenSamplers"+ writeIORef glrefGenSamplers $ gldynGenSamplers addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteSamplers"+ writeIORef glrefDeleteSamplers $ gldynDeleteSamplers addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsSampler"+ writeIORef glrefIsSampler $ gldynIsSampler addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindSampler"+ writeIORef glrefBindSampler $ gldynBindSampler addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameteri"+ writeIORef glrefSamplerParameteri $ gldynSamplerParameteri addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameteriv"+ writeIORef glrefSamplerParameteriv $ gldynSamplerParameteriv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameterf"+ writeIORef glrefSamplerParameterf $ gldynSamplerParameterf addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameterfv"+ writeIORef glrefSamplerParameterfv $ gldynSamplerParameterfv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameterIiv"+ writeIORef glrefSamplerParameterIiv $ gldynSamplerParameterIiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glSamplerParameterIuiv"+ writeIORef glrefSamplerParameterIuiv $ gldynSamplerParameterIuiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetSamplerParameteriv"+ writeIORef glrefGetSamplerParameteriv $ gldynGetSamplerParameteriv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetSamplerParameterIiv"+ writeIORef glrefGetSamplerParameterIiv $ gldynGetSamplerParameterIiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetSamplerParameterfv"+ writeIORef glrefGetSamplerParameterfv $ gldynGetSamplerParameterfv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetSamplerParameterIuiv"+ writeIORef glrefGetSamplerParameterIuiv $ gldynGetSamplerParameterIuiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glQueryCounter"+ writeIORef glrefQueryCounter $ gldynQueryCounter addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetQueryObjecti64v"+ writeIORef glrefGetQueryObjecti64v $ gldynGetQueryObjecti64v addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetQueryObjectui64v"+ writeIORef glrefGetQueryObjectui64v $ gldynGetQueryObjectui64v addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribDivisor"+ writeIORef glrefVertexAttribDivisor $ gldynVertexAttribDivisor addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP1ui"+ writeIORef glrefVertexAttribP1ui $ gldynVertexAttribP1ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP1uiv"+ writeIORef glrefVertexAttribP1uiv $ gldynVertexAttribP1uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP2ui"+ writeIORef glrefVertexAttribP2ui $ gldynVertexAttribP2ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP2uiv"+ writeIORef glrefVertexAttribP2uiv $ gldynVertexAttribP2uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP3ui"+ writeIORef glrefVertexAttribP3ui $ gldynVertexAttribP3ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP3uiv"+ writeIORef glrefVertexAttribP3uiv $ gldynVertexAttribP3uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP4ui"+ writeIORef glrefVertexAttribP4ui $ gldynVertexAttribP4ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexAttribP4uiv"+ writeIORef glrefVertexAttribP4uiv $ gldynVertexAttribP4uiv addr++ -- GL_ARB_texture_storage++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexStorage1D"+ writeIORef glrefTexStorage1D $ gldynTexStorage1D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexStorage2D"+ writeIORef glrefTexStorage2D $ gldynTexStorage2D addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexStorage3D"+ writeIORef glrefTexStorage3D $ gldynTexStorage3D addr++ -- GL_KHR_debug++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageControl"+ writeIORef glrefDebugMessageControl $ gldynDebugMessageControl addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageInsert"+ writeIORef glrefDebugMessageInsert $ gldynDebugMessageInsert addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageCallback"+ writeIORef glrefDebugMessageCallback $ gldynDebugMessageCallback addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetDebugMessageLog"+ writeIORef glrefGetDebugMessageLog $ gldynGetDebugMessageLog addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPushDebugGroup"+ writeIORef glrefPushDebugGroup $ gldynPushDebugGroup addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPopDebugGroup"+ writeIORef glrefPopDebugGroup $ gldynPopDebugGroup addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glObjectLabel"+ writeIORef glrefObjectLabel $ gldynObjectLabel addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetObjectLabel"+ writeIORef glrefGetObjectLabel $ gldynGetObjectLabel addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glObjectPtrLabel"+ writeIORef glrefObjectPtrLabel $ gldynObjectPtrLabel addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetObjectPtrLabel"+ writeIORef glrefGetObjectPtrLabel $ gldynGetObjectPtrLabel addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetPointerv"+ writeIORef glrefGetPointerv $ gldynGetPointerv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageControlKHR"+ writeIORef glrefDebugMessageControlKHR $ gldynDebugMessageControlKHR addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageInsertKHR"+ writeIORef glrefDebugMessageInsertKHR $ gldynDebugMessageInsertKHR addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDebugMessageCallbackKHR"+ writeIORef glrefDebugMessageCallbackKHR $ gldynDebugMessageCallbackKHR addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetDebugMessageLogKHR"+ writeIORef glrefGetDebugMessageLogKHR $ gldynGetDebugMessageLogKHR addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPushDebugGroupKHR"+ writeIORef glrefPushDebugGroupKHR $ gldynPushDebugGroupKHR addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPopDebugGroupKHR"+ writeIORef glrefPopDebugGroupKHR $ gldynPopDebugGroupKHR addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glObjectLabelKHR"+ writeIORef glrefObjectLabelKHR $ gldynObjectLabelKHR addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetObjectLabelKHR"+ writeIORef glrefGetObjectLabelKHR $ gldynGetObjectLabelKHR addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glObjectPtrLabelKHR"+ writeIORef glrefObjectPtrLabelKHR $ gldynObjectPtrLabelKHR addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetObjectPtrLabelKHR"+ writeIORef glrefGetObjectPtrLabelKHR $ gldynGetObjectPtrLabelKHR addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetPointervKHR"+ writeIORef glrefGetPointervKHR $ gldynGetPointervKHR addr++ -- GL_EXT_direct_state_access++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixLoadfEXT"+ writeIORef glrefMatrixLoadfEXT $ gldynMatrixLoadfEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixLoaddEXT"+ writeIORef glrefMatrixLoaddEXT $ gldynMatrixLoaddEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixMultfEXT"+ writeIORef glrefMatrixMultfEXT $ gldynMatrixMultfEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixMultdEXT"+ writeIORef glrefMatrixMultdEXT $ gldynMatrixMultdEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixLoadIdentityEXT"+ writeIORef glrefMatrixLoadIdentityEXT $ gldynMatrixLoadIdentityEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixRotatefEXT"+ writeIORef glrefMatrixRotatefEXT $ gldynMatrixRotatefEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixRotatedEXT"+ writeIORef glrefMatrixRotatedEXT $ gldynMatrixRotatedEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixScalefEXT"+ writeIORef glrefMatrixScalefEXT $ gldynMatrixScalefEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixScaledEXT"+ writeIORef glrefMatrixScaledEXT $ gldynMatrixScaledEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixTranslatefEXT"+ writeIORef glrefMatrixTranslatefEXT $ gldynMatrixTranslatefEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixTranslatedEXT"+ writeIORef glrefMatrixTranslatedEXT $ gldynMatrixTranslatedEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixFrustumEXT"+ writeIORef glrefMatrixFrustumEXT $ gldynMatrixFrustumEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixOrthoEXT"+ writeIORef glrefMatrixOrthoEXT $ gldynMatrixOrthoEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixPopEXT"+ writeIORef glrefMatrixPopEXT $ gldynMatrixPopEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixPushEXT"+ writeIORef glrefMatrixPushEXT $ gldynMatrixPushEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClientAttribDefaultEXT"+ writeIORef glrefClientAttribDefaultEXT $ gldynClientAttribDefaultEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glPushClientAttribDefaultEXT"+ writeIORef glrefPushClientAttribDefaultEXT $ gldynPushClientAttribDefaultEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameterfEXT"+ writeIORef glrefTextureParameterfEXT $ gldynTextureParameterfEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameterfvEXT"+ writeIORef glrefTextureParameterfvEXT $ gldynTextureParameterfvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameteriEXT"+ writeIORef glrefTextureParameteriEXT $ gldynTextureParameteriEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameterivEXT"+ writeIORef glrefTextureParameterivEXT $ gldynTextureParameterivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureImage1DEXT"+ writeIORef glrefTextureImage1DEXT $ gldynTextureImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureImage2DEXT"+ writeIORef glrefTextureImage2DEXT $ gldynTextureImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureSubImage1DEXT"+ writeIORef glrefTextureSubImage1DEXT $ gldynTextureSubImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureSubImage2DEXT"+ writeIORef glrefTextureSubImage2DEXT $ gldynTextureSubImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTextureImage1DEXT"+ writeIORef glrefCopyTextureImage1DEXT $ gldynCopyTextureImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTextureImage2DEXT"+ writeIORef glrefCopyTextureImage2DEXT $ gldynCopyTextureImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTextureSubImage1DEXT"+ writeIORef glrefCopyTextureSubImage1DEXT $ gldynCopyTextureSubImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTextureSubImage2DEXT"+ writeIORef glrefCopyTextureSubImage2DEXT $ gldynCopyTextureSubImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureImageEXT"+ writeIORef glrefGetTextureImageEXT $ gldynGetTextureImageEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureParameterfvEXT"+ writeIORef glrefGetTextureParameterfvEXT $ gldynGetTextureParameterfvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureParameterivEXT"+ writeIORef glrefGetTextureParameterivEXT $ gldynGetTextureParameterivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureLevelParameterfvEXT"+ writeIORef glrefGetTextureLevelParameterfvEXT $ gldynGetTextureLevelParameterfvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureLevelParameterivEXT"+ writeIORef glrefGetTextureLevelParameterivEXT $ gldynGetTextureLevelParameterivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureImage3DEXT"+ writeIORef glrefTextureImage3DEXT $ gldynTextureImage3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureSubImage3DEXT"+ writeIORef glrefTextureSubImage3DEXT $ gldynTextureSubImage3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyTextureSubImage3DEXT"+ writeIORef glrefCopyTextureSubImage3DEXT $ gldynCopyTextureSubImage3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindMultiTextureEXT"+ writeIORef glrefBindMultiTextureEXT $ gldynBindMultiTextureEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexCoordPointerEXT"+ writeIORef glrefMultiTexCoordPointerEXT $ gldynMultiTexCoordPointerEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexEnvfEXT"+ writeIORef glrefMultiTexEnvfEXT $ gldynMultiTexEnvfEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexEnvfvEXT"+ writeIORef glrefMultiTexEnvfvEXT $ gldynMultiTexEnvfvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexEnviEXT"+ writeIORef glrefMultiTexEnviEXT $ gldynMultiTexEnviEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexEnvivEXT"+ writeIORef glrefMultiTexEnvivEXT $ gldynMultiTexEnvivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGendEXT"+ writeIORef glrefMultiTexGendEXT $ gldynMultiTexGendEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGendvEXT"+ writeIORef glrefMultiTexGendvEXT $ gldynMultiTexGendvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGenfEXT"+ writeIORef glrefMultiTexGenfEXT $ gldynMultiTexGenfEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGenfvEXT"+ writeIORef glrefMultiTexGenfvEXT $ gldynMultiTexGenfvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGeniEXT"+ writeIORef glrefMultiTexGeniEXT $ gldynMultiTexGeniEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexGenivEXT"+ writeIORef glrefMultiTexGenivEXT $ gldynMultiTexGenivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexEnvfvEXT"+ writeIORef glrefGetMultiTexEnvfvEXT $ gldynGetMultiTexEnvfvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexEnvivEXT"+ writeIORef glrefGetMultiTexEnvivEXT $ gldynGetMultiTexEnvivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexGendvEXT"+ writeIORef glrefGetMultiTexGendvEXT $ gldynGetMultiTexGendvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexGenfvEXT"+ writeIORef glrefGetMultiTexGenfvEXT $ gldynGetMultiTexGenfvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexGenivEXT"+ writeIORef glrefGetMultiTexGenivEXT $ gldynGetMultiTexGenivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameteriEXT"+ writeIORef glrefMultiTexParameteriEXT $ gldynMultiTexParameteriEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameterivEXT"+ writeIORef glrefMultiTexParameterivEXT $ gldynMultiTexParameterivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameterfEXT"+ writeIORef glrefMultiTexParameterfEXT $ gldynMultiTexParameterfEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameterfvEXT"+ writeIORef glrefMultiTexParameterfvEXT $ gldynMultiTexParameterfvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexImage1DEXT"+ writeIORef glrefMultiTexImage1DEXT $ gldynMultiTexImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexImage2DEXT"+ writeIORef glrefMultiTexImage2DEXT $ gldynMultiTexImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexSubImage1DEXT"+ writeIORef glrefMultiTexSubImage1DEXT $ gldynMultiTexSubImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexSubImage2DEXT"+ writeIORef glrefMultiTexSubImage2DEXT $ gldynMultiTexSubImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyMultiTexImage1DEXT"+ writeIORef glrefCopyMultiTexImage1DEXT $ gldynCopyMultiTexImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyMultiTexImage2DEXT"+ writeIORef glrefCopyMultiTexImage2DEXT $ gldynCopyMultiTexImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyMultiTexSubImage1DEXT"+ writeIORef glrefCopyMultiTexSubImage1DEXT $ gldynCopyMultiTexSubImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyMultiTexSubImage2DEXT"+ writeIORef glrefCopyMultiTexSubImage2DEXT $ gldynCopyMultiTexSubImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexImageEXT"+ writeIORef glrefGetMultiTexImageEXT $ gldynGetMultiTexImageEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexParameterfvEXT"+ writeIORef glrefGetMultiTexParameterfvEXT $ gldynGetMultiTexParameterfvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexParameterivEXT"+ writeIORef glrefGetMultiTexParameterivEXT $ gldynGetMultiTexParameterivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexLevelParameterfvEXT"+ writeIORef glrefGetMultiTexLevelParameterfvEXT $ gldynGetMultiTexLevelParameterfvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexLevelParameterivEXT"+ writeIORef glrefGetMultiTexLevelParameterivEXT $ gldynGetMultiTexLevelParameterivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexImage3DEXT"+ writeIORef glrefMultiTexImage3DEXT $ gldynMultiTexImage3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexSubImage3DEXT"+ writeIORef glrefMultiTexSubImage3DEXT $ gldynMultiTexSubImage3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCopyMultiTexSubImage3DEXT"+ writeIORef glrefCopyMultiTexSubImage3DEXT $ gldynCopyMultiTexSubImage3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableClientStateIndexedEXT"+ writeIORef glrefEnableClientStateIndexedEXT $ gldynEnableClientStateIndexedEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableClientStateIndexedEXT"+ writeIORef glrefDisableClientStateIndexedEXT $ gldynDisableClientStateIndexedEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFloatIndexedvEXT"+ writeIORef glrefGetFloatIndexedvEXT $ gldynGetFloatIndexedvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetDoubleIndexedvEXT"+ writeIORef glrefGetDoubleIndexedvEXT $ gldynGetDoubleIndexedvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetPointerIndexedvEXT"+ writeIORef glrefGetPointerIndexedvEXT $ gldynGetPointerIndexedvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableIndexedEXT"+ writeIORef glrefEnableIndexedEXT $ gldynEnableIndexedEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableIndexedEXT"+ writeIORef glrefDisableIndexedEXT $ gldynDisableIndexedEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsEnabledIndexedEXT"+ writeIORef glrefIsEnabledIndexedEXT $ gldynIsEnabledIndexedEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetIntegerIndexedvEXT"+ writeIORef glrefGetIntegerIndexedvEXT $ gldynGetIntegerIndexedvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetBooleanIndexedvEXT"+ writeIORef glrefGetBooleanIndexedvEXT $ gldynGetBooleanIndexedvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureImage3DEXT"+ writeIORef glrefCompressedTextureImage3DEXT $ gldynCompressedTextureImage3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureImage2DEXT"+ writeIORef glrefCompressedTextureImage2DEXT $ gldynCompressedTextureImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureImage1DEXT"+ writeIORef glrefCompressedTextureImage1DEXT $ gldynCompressedTextureImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureSubImage3DEXT"+ writeIORef glrefCompressedTextureSubImage3DEXT $ gldynCompressedTextureSubImage3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureSubImage2DEXT"+ writeIORef glrefCompressedTextureSubImage2DEXT $ gldynCompressedTextureSubImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedTextureSubImage1DEXT"+ writeIORef glrefCompressedTextureSubImage1DEXT $ gldynCompressedTextureSubImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetCompressedTextureImageEXT"+ writeIORef glrefGetCompressedTextureImageEXT $ gldynGetCompressedTextureImageEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexImage3DEXT"+ writeIORef glrefCompressedMultiTexImage3DEXT $ gldynCompressedMultiTexImage3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexImage2DEXT"+ writeIORef glrefCompressedMultiTexImage2DEXT $ gldynCompressedMultiTexImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexImage1DEXT"+ writeIORef glrefCompressedMultiTexImage1DEXT $ gldynCompressedMultiTexImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexSubImage3DEXT"+ writeIORef glrefCompressedMultiTexSubImage3DEXT $ gldynCompressedMultiTexSubImage3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexSubImage2DEXT"+ writeIORef glrefCompressedMultiTexSubImage2DEXT $ gldynCompressedMultiTexSubImage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCompressedMultiTexSubImage1DEXT"+ writeIORef glrefCompressedMultiTexSubImage1DEXT $ gldynCompressedMultiTexSubImage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetCompressedMultiTexImageEXT"+ writeIORef glrefGetCompressedMultiTexImageEXT $ gldynGetCompressedMultiTexImageEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixLoadTransposefEXT"+ writeIORef glrefMatrixLoadTransposefEXT $ gldynMatrixLoadTransposefEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixLoadTransposedEXT"+ writeIORef glrefMatrixLoadTransposedEXT $ gldynMatrixLoadTransposedEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixMultTransposefEXT"+ writeIORef glrefMatrixMultTransposefEXT $ gldynMatrixMultTransposefEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMatrixMultTransposedEXT"+ writeIORef glrefMatrixMultTransposedEXT $ gldynMatrixMultTransposedEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedBufferDataEXT"+ writeIORef glrefNamedBufferDataEXT $ gldynNamedBufferDataEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedBufferSubDataEXT"+ writeIORef glrefNamedBufferSubDataEXT $ gldynNamedBufferSubDataEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMapNamedBufferEXT"+ writeIORef glrefMapNamedBufferEXT $ gldynMapNamedBufferEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUnmapNamedBufferEXT"+ writeIORef glrefUnmapNamedBufferEXT $ gldynUnmapNamedBufferEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedBufferParameterivEXT"+ writeIORef glrefGetNamedBufferParameterivEXT $ gldynGetNamedBufferParameterivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedBufferPointervEXT"+ writeIORef glrefGetNamedBufferPointervEXT $ gldynGetNamedBufferPointervEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedBufferSubDataEXT"+ writeIORef glrefGetNamedBufferSubDataEXT $ gldynGetNamedBufferSubDataEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1fEXT"+ writeIORef glrefProgramUniform1fEXT $ gldynProgramUniform1fEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2fEXT"+ writeIORef glrefProgramUniform2fEXT $ gldynProgramUniform2fEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3fEXT"+ writeIORef glrefProgramUniform3fEXT $ gldynProgramUniform3fEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4fEXT"+ writeIORef glrefProgramUniform4fEXT $ gldynProgramUniform4fEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1iEXT"+ writeIORef glrefProgramUniform1iEXT $ gldynProgramUniform1iEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2iEXT"+ writeIORef glrefProgramUniform2iEXT $ gldynProgramUniform2iEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3iEXT"+ writeIORef glrefProgramUniform3iEXT $ gldynProgramUniform3iEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4iEXT"+ writeIORef glrefProgramUniform4iEXT $ gldynProgramUniform4iEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1fvEXT"+ writeIORef glrefProgramUniform1fvEXT $ gldynProgramUniform1fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2fvEXT"+ writeIORef glrefProgramUniform2fvEXT $ gldynProgramUniform2fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3fvEXT"+ writeIORef glrefProgramUniform3fvEXT $ gldynProgramUniform3fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4fvEXT"+ writeIORef glrefProgramUniform4fvEXT $ gldynProgramUniform4fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1ivEXT"+ writeIORef glrefProgramUniform1ivEXT $ gldynProgramUniform1ivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2ivEXT"+ writeIORef glrefProgramUniform2ivEXT $ gldynProgramUniform2ivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3ivEXT"+ writeIORef glrefProgramUniform3ivEXT $ gldynProgramUniform3ivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4ivEXT"+ writeIORef glrefProgramUniform4ivEXT $ gldynProgramUniform4ivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2fvEXT"+ writeIORef glrefProgramUniformMatrix2fvEXT $ gldynProgramUniformMatrix2fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3fvEXT"+ writeIORef glrefProgramUniformMatrix3fvEXT $ gldynProgramUniformMatrix3fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4fvEXT"+ writeIORef glrefProgramUniformMatrix4fvEXT $ gldynProgramUniformMatrix4fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x3fvEXT"+ writeIORef glrefProgramUniformMatrix2x3fvEXT $ gldynProgramUniformMatrix2x3fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x2fvEXT"+ writeIORef glrefProgramUniformMatrix3x2fvEXT $ gldynProgramUniformMatrix3x2fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x4fvEXT"+ writeIORef glrefProgramUniformMatrix2x4fvEXT $ gldynProgramUniformMatrix2x4fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x2fvEXT"+ writeIORef glrefProgramUniformMatrix4x2fvEXT $ gldynProgramUniformMatrix4x2fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x4fvEXT"+ writeIORef glrefProgramUniformMatrix3x4fvEXT $ gldynProgramUniformMatrix3x4fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x3fvEXT"+ writeIORef glrefProgramUniformMatrix4x3fvEXT $ gldynProgramUniformMatrix4x3fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureBufferEXT"+ writeIORef glrefTextureBufferEXT $ gldynTextureBufferEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexBufferEXT"+ writeIORef glrefMultiTexBufferEXT $ gldynMultiTexBufferEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameterIivEXT"+ writeIORef glrefTextureParameterIivEXT $ gldynTextureParameterIivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureParameterIuivEXT"+ writeIORef glrefTextureParameterIuivEXT $ gldynTextureParameterIuivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureParameterIivEXT"+ writeIORef glrefGetTextureParameterIivEXT $ gldynGetTextureParameterIivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetTextureParameterIuivEXT"+ writeIORef glrefGetTextureParameterIuivEXT $ gldynGetTextureParameterIuivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameterIivEXT"+ writeIORef glrefMultiTexParameterIivEXT $ gldynMultiTexParameterIivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexParameterIuivEXT"+ writeIORef glrefMultiTexParameterIuivEXT $ gldynMultiTexParameterIuivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexParameterIivEXT"+ writeIORef glrefGetMultiTexParameterIivEXT $ gldynGetMultiTexParameterIivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetMultiTexParameterIuivEXT"+ writeIORef glrefGetMultiTexParameterIuivEXT $ gldynGetMultiTexParameterIuivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1uiEXT"+ writeIORef glrefProgramUniform1uiEXT $ gldynProgramUniform1uiEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2uiEXT"+ writeIORef glrefProgramUniform2uiEXT $ gldynProgramUniform2uiEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3uiEXT"+ writeIORef glrefProgramUniform3uiEXT $ gldynProgramUniform3uiEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4uiEXT"+ writeIORef glrefProgramUniform4uiEXT $ gldynProgramUniform4uiEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1uivEXT"+ writeIORef glrefProgramUniform1uivEXT $ gldynProgramUniform1uivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2uivEXT"+ writeIORef glrefProgramUniform2uivEXT $ gldynProgramUniform2uivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3uivEXT"+ writeIORef glrefProgramUniform3uivEXT $ gldynProgramUniform3uivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4uivEXT"+ writeIORef glrefProgramUniform4uivEXT $ gldynProgramUniform4uivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameters4fvEXT"+ writeIORef glrefNamedProgramLocalParameters4fvEXT $ gldynNamedProgramLocalParameters4fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameterI4iEXT"+ writeIORef glrefNamedProgramLocalParameterI4iEXT $ gldynNamedProgramLocalParameterI4iEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameterI4ivEXT"+ writeIORef glrefNamedProgramLocalParameterI4ivEXT $ gldynNamedProgramLocalParameterI4ivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParametersI4ivEXT"+ writeIORef glrefNamedProgramLocalParametersI4ivEXT $ gldynNamedProgramLocalParametersI4ivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameterI4uiEXT"+ writeIORef glrefNamedProgramLocalParameterI4uiEXT $ gldynNamedProgramLocalParameterI4uiEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameterI4uivEXT"+ writeIORef glrefNamedProgramLocalParameterI4uivEXT $ gldynNamedProgramLocalParameterI4uivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParametersI4uivEXT"+ writeIORef glrefNamedProgramLocalParametersI4uivEXT $ gldynNamedProgramLocalParametersI4uivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramLocalParameterIivEXT"+ writeIORef glrefGetNamedProgramLocalParameterIivEXT $ gldynGetNamedProgramLocalParameterIivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramLocalParameterIuivEXT"+ writeIORef glrefGetNamedProgramLocalParameterIuivEXT $ gldynGetNamedProgramLocalParameterIuivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableClientStateiEXT"+ writeIORef glrefEnableClientStateiEXT $ gldynEnableClientStateiEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableClientStateiEXT"+ writeIORef glrefDisableClientStateiEXT $ gldynDisableClientStateiEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFloati_vEXT"+ writeIORef glrefGetFloati_vEXT $ gldynGetFloati_vEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetDoublei_vEXT"+ writeIORef glrefGetDoublei_vEXT $ gldynGetDoublei_vEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetPointeri_vEXT"+ writeIORef glrefGetPointeri_vEXT $ gldynGetPointeri_vEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramStringEXT"+ writeIORef glrefNamedProgramStringEXT $ gldynNamedProgramStringEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameter4dEXT"+ writeIORef glrefNamedProgramLocalParameter4dEXT $ gldynNamedProgramLocalParameter4dEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameter4dvEXT"+ writeIORef glrefNamedProgramLocalParameter4dvEXT $ gldynNamedProgramLocalParameter4dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameter4fEXT"+ writeIORef glrefNamedProgramLocalParameter4fEXT $ gldynNamedProgramLocalParameter4fEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedProgramLocalParameter4fvEXT"+ writeIORef glrefNamedProgramLocalParameter4fvEXT $ gldynNamedProgramLocalParameter4fvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramLocalParameterdvEXT"+ writeIORef glrefGetNamedProgramLocalParameterdvEXT $ gldynGetNamedProgramLocalParameterdvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramLocalParameterfvEXT"+ writeIORef glrefGetNamedProgramLocalParameterfvEXT $ gldynGetNamedProgramLocalParameterfvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramivEXT"+ writeIORef glrefGetNamedProgramivEXT $ gldynGetNamedProgramivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedProgramStringEXT"+ writeIORef glrefGetNamedProgramStringEXT $ gldynGetNamedProgramStringEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedRenderbufferStorageEXT"+ writeIORef glrefNamedRenderbufferStorageEXT $ gldynNamedRenderbufferStorageEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedRenderbufferParameterivEXT"+ writeIORef glrefGetNamedRenderbufferParameterivEXT $ gldynGetNamedRenderbufferParameterivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedRenderbufferStorageMultisampleEXT"+ writeIORef glrefNamedRenderbufferStorageMultisampleEXT $ gldynNamedRenderbufferStorageMultisampleEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedRenderbufferStorageMultisampleCoverageEXT"+ writeIORef glrefNamedRenderbufferStorageMultisampleCoverageEXT $ gldynNamedRenderbufferStorageMultisampleCoverageEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCheckNamedFramebufferStatusEXT"+ writeIORef glrefCheckNamedFramebufferStatusEXT $ gldynCheckNamedFramebufferStatusEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTexture1DEXT"+ writeIORef glrefNamedFramebufferTexture1DEXT $ gldynNamedFramebufferTexture1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTexture2DEXT"+ writeIORef glrefNamedFramebufferTexture2DEXT $ gldynNamedFramebufferTexture2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTexture3DEXT"+ writeIORef glrefNamedFramebufferTexture3DEXT $ gldynNamedFramebufferTexture3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferRenderbufferEXT"+ writeIORef glrefNamedFramebufferRenderbufferEXT $ gldynNamedFramebufferRenderbufferEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedFramebufferAttachmentParameterivEXT"+ writeIORef glrefGetNamedFramebufferAttachmentParameterivEXT $ gldynGetNamedFramebufferAttachmentParameterivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenerateTextureMipmapEXT"+ writeIORef glrefGenerateTextureMipmapEXT $ gldynGenerateTextureMipmapEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenerateMultiTexMipmapEXT"+ writeIORef glrefGenerateMultiTexMipmapEXT $ gldynGenerateMultiTexMipmapEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferDrawBufferEXT"+ writeIORef glrefFramebufferDrawBufferEXT $ gldynFramebufferDrawBufferEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferDrawBuffersEXT"+ writeIORef glrefFramebufferDrawBuffersEXT $ gldynFramebufferDrawBuffersEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFramebufferReadBufferEXT"+ writeIORef glrefFramebufferReadBufferEXT $ gldynFramebufferReadBufferEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetFramebufferParameterivEXT"+ writeIORef glrefGetFramebufferParameterivEXT $ gldynGetFramebufferParameterivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedCopyBufferSubDataEXT"+ writeIORef glrefNamedCopyBufferSubDataEXT $ gldynNamedCopyBufferSubDataEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTextureEXT"+ writeIORef glrefNamedFramebufferTextureEXT $ gldynNamedFramebufferTextureEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTextureLayerEXT"+ writeIORef glrefNamedFramebufferTextureLayerEXT $ gldynNamedFramebufferTextureLayerEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferTextureFaceEXT"+ writeIORef glrefNamedFramebufferTextureFaceEXT $ gldynNamedFramebufferTextureFaceEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureRenderbufferEXT"+ writeIORef glrefTextureRenderbufferEXT $ gldynTextureRenderbufferEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMultiTexRenderbufferEXT"+ writeIORef glrefMultiTexRenderbufferEXT $ gldynMultiTexRenderbufferEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexOffsetEXT"+ writeIORef glrefVertexArrayVertexOffsetEXT $ gldynVertexArrayVertexOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayColorOffsetEXT"+ writeIORef glrefVertexArrayColorOffsetEXT $ gldynVertexArrayColorOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayEdgeFlagOffsetEXT"+ writeIORef glrefVertexArrayEdgeFlagOffsetEXT $ gldynVertexArrayEdgeFlagOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayIndexOffsetEXT"+ writeIORef glrefVertexArrayIndexOffsetEXT $ gldynVertexArrayIndexOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayNormalOffsetEXT"+ writeIORef glrefVertexArrayNormalOffsetEXT $ gldynVertexArrayNormalOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayTexCoordOffsetEXT"+ writeIORef glrefVertexArrayTexCoordOffsetEXT $ gldynVertexArrayTexCoordOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayMultiTexCoordOffsetEXT"+ writeIORef glrefVertexArrayMultiTexCoordOffsetEXT $ gldynVertexArrayMultiTexCoordOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayFogCoordOffsetEXT"+ writeIORef glrefVertexArrayFogCoordOffsetEXT $ gldynVertexArrayFogCoordOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArraySecondaryColorOffsetEXT"+ writeIORef glrefVertexArraySecondaryColorOffsetEXT $ gldynVertexArraySecondaryColorOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribOffsetEXT"+ writeIORef glrefVertexArrayVertexAttribOffsetEXT $ gldynVertexArrayVertexAttribOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribIOffsetEXT"+ writeIORef glrefVertexArrayVertexAttribIOffsetEXT $ gldynVertexArrayVertexAttribIOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableVertexArrayEXT"+ writeIORef glrefEnableVertexArrayEXT $ gldynEnableVertexArrayEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableVertexArrayEXT"+ writeIORef glrefDisableVertexArrayEXT $ gldynDisableVertexArrayEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glEnableVertexArrayAttribEXT"+ writeIORef glrefEnableVertexArrayAttribEXT $ gldynEnableVertexArrayAttribEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDisableVertexArrayAttribEXT"+ writeIORef glrefDisableVertexArrayAttribEXT $ gldynDisableVertexArrayAttribEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexArrayIntegervEXT"+ writeIORef glrefGetVertexArrayIntegervEXT $ gldynGetVertexArrayIntegervEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexArrayPointervEXT"+ writeIORef glrefGetVertexArrayPointervEXT $ gldynGetVertexArrayPointervEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexArrayIntegeri_vEXT"+ writeIORef glrefGetVertexArrayIntegeri_vEXT $ gldynGetVertexArrayIntegeri_vEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetVertexArrayPointeri_vEXT"+ writeIORef glrefGetVertexArrayPointeri_vEXT $ gldynGetVertexArrayPointeri_vEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glMapNamedBufferRangeEXT"+ writeIORef glrefMapNamedBufferRangeEXT $ gldynMapNamedBufferRangeEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glFlushMappedNamedBufferRangeEXT"+ writeIORef glrefFlushMappedNamedBufferRangeEXT $ gldynFlushMappedNamedBufferRangeEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedBufferStorageEXT"+ writeIORef glrefNamedBufferStorageEXT $ gldynNamedBufferStorageEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearNamedBufferDataEXT"+ writeIORef glrefClearNamedBufferDataEXT $ gldynClearNamedBufferDataEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glClearNamedBufferSubDataEXT"+ writeIORef glrefClearNamedBufferSubDataEXT $ gldynClearNamedBufferSubDataEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glNamedFramebufferParameteriEXT"+ writeIORef glrefNamedFramebufferParameteriEXT $ gldynNamedFramebufferParameteriEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetNamedFramebufferParameterivEXT"+ writeIORef glrefGetNamedFramebufferParameterivEXT $ gldynGetNamedFramebufferParameterivEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1dEXT"+ writeIORef glrefProgramUniform1dEXT $ gldynProgramUniform1dEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2dEXT"+ writeIORef glrefProgramUniform2dEXT $ gldynProgramUniform2dEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3dEXT"+ writeIORef glrefProgramUniform3dEXT $ gldynProgramUniform3dEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4dEXT"+ writeIORef glrefProgramUniform4dEXT $ gldynProgramUniform4dEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1dvEXT"+ writeIORef glrefProgramUniform1dvEXT $ gldynProgramUniform1dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2dvEXT"+ writeIORef glrefProgramUniform2dvEXT $ gldynProgramUniform2dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3dvEXT"+ writeIORef glrefProgramUniform3dvEXT $ gldynProgramUniform3dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4dvEXT"+ writeIORef glrefProgramUniform4dvEXT $ gldynProgramUniform4dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2dvEXT"+ writeIORef glrefProgramUniformMatrix2dvEXT $ gldynProgramUniformMatrix2dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3dvEXT"+ writeIORef glrefProgramUniformMatrix3dvEXT $ gldynProgramUniformMatrix3dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4dvEXT"+ writeIORef glrefProgramUniformMatrix4dvEXT $ gldynProgramUniformMatrix4dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x3dvEXT"+ writeIORef glrefProgramUniformMatrix2x3dvEXT $ gldynProgramUniformMatrix2x3dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x4dvEXT"+ writeIORef glrefProgramUniformMatrix2x4dvEXT $ gldynProgramUniformMatrix2x4dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x2dvEXT"+ writeIORef glrefProgramUniformMatrix3x2dvEXT $ gldynProgramUniformMatrix3x2dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x4dvEXT"+ writeIORef glrefProgramUniformMatrix3x4dvEXT $ gldynProgramUniformMatrix3x4dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x2dvEXT"+ writeIORef glrefProgramUniformMatrix4x2dvEXT $ gldynProgramUniformMatrix4x2dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x3dvEXT"+ writeIORef glrefProgramUniformMatrix4x3dvEXT $ gldynProgramUniformMatrix4x3dvEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureBufferRangeEXT"+ writeIORef glrefTextureBufferRangeEXT $ gldynTextureBufferRangeEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureStorage1DEXT"+ writeIORef glrefTextureStorage1DEXT $ gldynTextureStorage1DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureStorage2DEXT"+ writeIORef glrefTextureStorage2DEXT $ gldynTextureStorage2DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureStorage3DEXT"+ writeIORef glrefTextureStorage3DEXT $ gldynTextureStorage3DEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureStorage2DMultisampleEXT"+ writeIORef glrefTextureStorage2DMultisampleEXT $ gldynTextureStorage2DMultisampleEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTextureStorage3DMultisampleEXT"+ writeIORef glrefTextureStorage3DMultisampleEXT $ gldynTextureStorage3DMultisampleEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayBindVertexBufferEXT"+ writeIORef glrefVertexArrayBindVertexBufferEXT $ gldynVertexArrayBindVertexBufferEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribFormatEXT"+ writeIORef glrefVertexArrayVertexAttribFormatEXT $ gldynVertexArrayVertexAttribFormatEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribIFormatEXT"+ writeIORef glrefVertexArrayVertexAttribIFormatEXT $ gldynVertexArrayVertexAttribIFormatEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribLFormatEXT"+ writeIORef glrefVertexArrayVertexAttribLFormatEXT $ gldynVertexArrayVertexAttribLFormatEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribBindingEXT"+ writeIORef glrefVertexArrayVertexAttribBindingEXT $ gldynVertexArrayVertexAttribBindingEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexBindingDivisorEXT"+ writeIORef glrefVertexArrayVertexBindingDivisorEXT $ gldynVertexArrayVertexBindingDivisorEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribLOffsetEXT"+ writeIORef glrefVertexArrayVertexAttribLOffsetEXT $ gldynVertexArrayVertexAttribLOffsetEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glTexturePageCommitmentEXT"+ writeIORef glrefTexturePageCommitmentEXT $ gldynTexturePageCommitmentEXT addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glVertexArrayVertexAttribDivisorEXT"+ writeIORef glrefVertexArrayVertexAttribDivisorEXT $ gldynVertexArrayVertexAttribDivisorEXT addr++ -- GL_ARB_buffer_storage++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBufferStorage"+ writeIORef glrefBufferStorage $ gldynBufferStorage addr++ -- GL_ARB_separate_shader_objects++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glUseProgramStages"+ writeIORef glrefUseProgramStages $ gldynUseProgramStages addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glActiveShaderProgram"+ writeIORef glrefActiveShaderProgram $ gldynActiveShaderProgram addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glCreateShaderProgramv"+ writeIORef glrefCreateShaderProgramv $ gldynCreateShaderProgramv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glBindProgramPipeline"+ writeIORef glrefBindProgramPipeline $ gldynBindProgramPipeline addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glDeleteProgramPipelines"+ writeIORef glrefDeleteProgramPipelines $ gldynDeleteProgramPipelines addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGenProgramPipelines"+ writeIORef glrefGenProgramPipelines $ gldynGenProgramPipelines addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glIsProgramPipeline"+ writeIORef glrefIsProgramPipeline $ gldynIsProgramPipeline addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetProgramPipelineiv"+ writeIORef glrefGetProgramPipelineiv $ gldynGetProgramPipelineiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1i"+ writeIORef glrefProgramUniform1i $ gldynProgramUniform1i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1iv"+ writeIORef glrefProgramUniform1iv $ gldynProgramUniform1iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1f"+ writeIORef glrefProgramUniform1f $ gldynProgramUniform1f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1fv"+ writeIORef glrefProgramUniform1fv $ gldynProgramUniform1fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1d"+ writeIORef glrefProgramUniform1d $ gldynProgramUniform1d addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1dv"+ writeIORef glrefProgramUniform1dv $ gldynProgramUniform1dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1ui"+ writeIORef glrefProgramUniform1ui $ gldynProgramUniform1ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform1uiv"+ writeIORef glrefProgramUniform1uiv $ gldynProgramUniform1uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2i"+ writeIORef glrefProgramUniform2i $ gldynProgramUniform2i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2iv"+ writeIORef glrefProgramUniform2iv $ gldynProgramUniform2iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2f"+ writeIORef glrefProgramUniform2f $ gldynProgramUniform2f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2fv"+ writeIORef glrefProgramUniform2fv $ gldynProgramUniform2fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2d"+ writeIORef glrefProgramUniform2d $ gldynProgramUniform2d addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2dv"+ writeIORef glrefProgramUniform2dv $ gldynProgramUniform2dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2ui"+ writeIORef glrefProgramUniform2ui $ gldynProgramUniform2ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform2uiv"+ writeIORef glrefProgramUniform2uiv $ gldynProgramUniform2uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3i"+ writeIORef glrefProgramUniform3i $ gldynProgramUniform3i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3iv"+ writeIORef glrefProgramUniform3iv $ gldynProgramUniform3iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3f"+ writeIORef glrefProgramUniform3f $ gldynProgramUniform3f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3fv"+ writeIORef glrefProgramUniform3fv $ gldynProgramUniform3fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3d"+ writeIORef glrefProgramUniform3d $ gldynProgramUniform3d addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3dv"+ writeIORef glrefProgramUniform3dv $ gldynProgramUniform3dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3ui"+ writeIORef glrefProgramUniform3ui $ gldynProgramUniform3ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform3uiv"+ writeIORef glrefProgramUniform3uiv $ gldynProgramUniform3uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4i"+ writeIORef glrefProgramUniform4i $ gldynProgramUniform4i addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4iv"+ writeIORef glrefProgramUniform4iv $ gldynProgramUniform4iv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4f"+ writeIORef glrefProgramUniform4f $ gldynProgramUniform4f addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4fv"+ writeIORef glrefProgramUniform4fv $ gldynProgramUniform4fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4d"+ writeIORef glrefProgramUniform4d $ gldynProgramUniform4d addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4dv"+ writeIORef glrefProgramUniform4dv $ gldynProgramUniform4dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4ui"+ writeIORef glrefProgramUniform4ui $ gldynProgramUniform4ui addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniform4uiv"+ writeIORef glrefProgramUniform4uiv $ gldynProgramUniform4uiv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2fv"+ writeIORef glrefProgramUniformMatrix2fv $ gldynProgramUniformMatrix2fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3fv"+ writeIORef glrefProgramUniformMatrix3fv $ gldynProgramUniformMatrix3fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4fv"+ writeIORef glrefProgramUniformMatrix4fv $ gldynProgramUniformMatrix4fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2dv"+ writeIORef glrefProgramUniformMatrix2dv $ gldynProgramUniformMatrix2dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3dv"+ writeIORef glrefProgramUniformMatrix3dv $ gldynProgramUniformMatrix3dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4dv"+ writeIORef glrefProgramUniformMatrix4dv $ gldynProgramUniformMatrix4dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x3fv"+ writeIORef glrefProgramUniformMatrix2x3fv $ gldynProgramUniformMatrix2x3fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x2fv"+ writeIORef glrefProgramUniformMatrix3x2fv $ gldynProgramUniformMatrix3x2fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x4fv"+ writeIORef glrefProgramUniformMatrix2x4fv $ gldynProgramUniformMatrix2x4fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x2fv"+ writeIORef glrefProgramUniformMatrix4x2fv $ gldynProgramUniformMatrix4x2fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x4fv"+ writeIORef glrefProgramUniformMatrix3x4fv $ gldynProgramUniformMatrix3x4fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x3fv"+ writeIORef glrefProgramUniformMatrix4x3fv $ gldynProgramUniformMatrix4x3fv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x3dv"+ writeIORef glrefProgramUniformMatrix2x3dv $ gldynProgramUniformMatrix2x3dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x2dv"+ writeIORef glrefProgramUniformMatrix3x2dv $ gldynProgramUniformMatrix3x2dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix2x4dv"+ writeIORef glrefProgramUniformMatrix2x4dv $ gldynProgramUniformMatrix2x4dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x2dv"+ writeIORef glrefProgramUniformMatrix4x2dv $ gldynProgramUniformMatrix4x2dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix3x4dv"+ writeIORef glrefProgramUniformMatrix3x4dv $ gldynProgramUniformMatrix3x4dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glProgramUniformMatrix4x3dv"+ writeIORef glrefProgramUniformMatrix4x3dv $ gldynProgramUniformMatrix4x3dv addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glValidateProgramPipeline"+ writeIORef glrefValidateProgramPipeline $ gldynValidateProgramPipeline addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glGetProgramPipelineInfoLog"+ writeIORef glrefGetProgramPipelineInfoLog $ gldynGetProgramPipelineInfoLog addr++ -- GL_ATI_meminfo+++ -- GL_NVX_gpu_memory_info+++ -- GL_ARB_invalidate_subdata++ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateTexSubImage"+ writeIORef glrefInvalidateTexSubImage $ gldynInvalidateTexSubImage addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateTexImage"+ writeIORef glrefInvalidateTexImage $ gldynInvalidateTexImage addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateBufferSubData"+ writeIORef glrefInvalidateBufferSubData $ gldynInvalidateBufferSubData addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateBufferData"+ writeIORef glrefInvalidateBufferData $ gldynInvalidateBufferData addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateFramebuffer"+ writeIORef glrefInvalidateFramebuffer $ gldynInvalidateFramebuffer addr+ when True $ liftIO $ do+ addr <- castPtrToFunPtr . castPtr <$> get_proc_address "glInvalidateSubFramebuffer"+ writeIORef glrefInvalidateSubFramebuffer $ gldynInvalidateSubFramebuffer addr++++ when True $ do+ result <- liftIO $ is_supported "GL_ARB_texture_storage"+ unless result $ do+ throwE $ Failure $ "Missing OpenGL extension: " ++ "GL_ARB_texture_storage"+ when True $ do+ result <- liftIO $ is_supported "GL_KHR_debug"+ liftIO $ writeIORef hasref_GL_KHR_debug result+ when True $ do+ result <- liftIO $ is_supported "GL_EXT_direct_state_access"+ liftIO $ writeIORef hasref_GL_EXT_direct_state_access result+ when True $ do+ result <- liftIO $ is_supported "GL_ARB_buffer_storage"+ liftIO $ writeIORef hasref_GL_ARB_buffer_storage result+ when True $ do+ result <- liftIO $ is_supported "GL_ARB_separate_shader_objects"+ liftIO $ writeIORef hasref_GL_ARB_separate_shader_objects result+ when True $ do+ result <- liftIO $ is_supported "GL_ATI_meminfo"+ liftIO $ writeIORef hasref_GL_ATI_meminfo result+ when True $ do+ result <- liftIO $ is_supported "GL_NVX_gpu_memory_info"+ liftIO $ writeIORef hasref_GL_NVX_gpu_memory_info result+ when True $ do+ result <- liftIO $ is_supported "GL_ARB_invalidate_subdata"+ liftIO $ writeIORef hasref_GL_ARB_invalidate_subdata result++ return Success++has_GL_ARB_texture_storage :: IO Bool+has_GL_ARB_texture_storage = readIORef hasref_GL_ARB_texture_storage+{-# INLINE has_GL_ARB_texture_storage #-}+hasref_GL_ARB_texture_storage :: IORef Bool+hasref_GL_ARB_texture_storage = unsafePerformIO $ newIORef True+{-# NOINLINE hasref_GL_ARB_texture_storage #-}+has_GL_KHR_debug :: IO Bool+has_GL_KHR_debug = readIORef hasref_GL_KHR_debug+{-# INLINE has_GL_KHR_debug #-}+hasref_GL_KHR_debug :: IORef Bool+hasref_GL_KHR_debug = unsafePerformIO $ newIORef False+{-# NOINLINE hasref_GL_KHR_debug #-}+has_GL_EXT_direct_state_access :: IO Bool+has_GL_EXT_direct_state_access = readIORef hasref_GL_EXT_direct_state_access+{-# INLINE has_GL_EXT_direct_state_access #-}+hasref_GL_EXT_direct_state_access :: IORef Bool+hasref_GL_EXT_direct_state_access = unsafePerformIO $ newIORef False+{-# NOINLINE hasref_GL_EXT_direct_state_access #-}+has_GL_ARB_buffer_storage :: IO Bool+has_GL_ARB_buffer_storage = readIORef hasref_GL_ARB_buffer_storage+{-# INLINE has_GL_ARB_buffer_storage #-}+hasref_GL_ARB_buffer_storage :: IORef Bool+hasref_GL_ARB_buffer_storage = unsafePerformIO $ newIORef False+{-# NOINLINE hasref_GL_ARB_buffer_storage #-}+has_GL_ARB_separate_shader_objects :: IO Bool+has_GL_ARB_separate_shader_objects = readIORef hasref_GL_ARB_separate_shader_objects+{-# INLINE has_GL_ARB_separate_shader_objects #-}+hasref_GL_ARB_separate_shader_objects :: IORef Bool+hasref_GL_ARB_separate_shader_objects = unsafePerformIO $ newIORef False+{-# NOINLINE hasref_GL_ARB_separate_shader_objects #-}+has_GL_ATI_meminfo :: IO Bool+has_GL_ATI_meminfo = readIORef hasref_GL_ATI_meminfo+{-# INLINE has_GL_ATI_meminfo #-}+hasref_GL_ATI_meminfo :: IORef Bool+hasref_GL_ATI_meminfo = unsafePerformIO $ newIORef False+{-# NOINLINE hasref_GL_ATI_meminfo #-}+has_GL_NVX_gpu_memory_info :: IO Bool+has_GL_NVX_gpu_memory_info = readIORef hasref_GL_NVX_gpu_memory_info+{-# INLINE has_GL_NVX_gpu_memory_info #-}+hasref_GL_NVX_gpu_memory_info :: IORef Bool+hasref_GL_NVX_gpu_memory_info = unsafePerformIO $ newIORef False+{-# NOINLINE hasref_GL_NVX_gpu_memory_info #-}+has_GL_ARB_invalidate_subdata :: IO Bool+has_GL_ARB_invalidate_subdata = readIORef hasref_GL_ARB_invalidate_subdata+{-# INLINE has_GL_ARB_invalidate_subdata #-}+hasref_GL_ARB_invalidate_subdata :: IORef Bool+hasref_GL_ARB_invalidate_subdata = unsafePerformIO $ newIORef False+{-# NOINLINE hasref_GL_ARB_invalidate_subdata #-}+++-- GL_VERSION_1_0++type FuntypeCullFace =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCullFace :: FunPtr FuntypeCullFace -> FuntypeCullFace+glrefCullFace :: IORef FuntypeCullFace+glrefCullFace = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCullFace #-}+glCullFace :: FuntypeCullFace+glCullFace = unsafePerformIO $ readIORef glrefCullFace+{-# INLINE glCullFace #-}+type FuntypeFrontFace =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFrontFace :: FunPtr FuntypeFrontFace -> FuntypeFrontFace+glrefFrontFace :: IORef FuntypeFrontFace+glrefFrontFace = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFrontFace #-}+glFrontFace :: FuntypeFrontFace+glFrontFace = unsafePerformIO $ readIORef glrefFrontFace+{-# INLINE glFrontFace #-}+type FuntypeHint =+ GLenum ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynHint :: FunPtr FuntypeHint -> FuntypeHint+glrefHint :: IORef FuntypeHint+glrefHint = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefHint #-}+glHint :: FuntypeHint+glHint = unsafePerformIO $ readIORef glrefHint+{-# INLINE glHint #-}+type FuntypeLineWidth =+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynLineWidth :: FunPtr FuntypeLineWidth -> FuntypeLineWidth+glrefLineWidth :: IORef FuntypeLineWidth+glrefLineWidth = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefLineWidth #-}+glLineWidth :: FuntypeLineWidth+glLineWidth = unsafePerformIO $ readIORef glrefLineWidth+{-# INLINE glLineWidth #-}+type FuntypePointSize =+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPointSize :: FunPtr FuntypePointSize -> FuntypePointSize+glrefPointSize :: IORef FuntypePointSize+glrefPointSize = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPointSize #-}+glPointSize :: FuntypePointSize+glPointSize = unsafePerformIO $ readIORef glrefPointSize+{-# INLINE glPointSize #-}+type FuntypePolygonMode =+ GLenum ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPolygonMode :: FunPtr FuntypePolygonMode -> FuntypePolygonMode+glrefPolygonMode :: IORef FuntypePolygonMode+glrefPolygonMode = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPolygonMode #-}+glPolygonMode :: FuntypePolygonMode+glPolygonMode = unsafePerformIO $ readIORef glrefPolygonMode+{-# INLINE glPolygonMode #-}+type FuntypeScissor =+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynScissor :: FunPtr FuntypeScissor -> FuntypeScissor+glrefScissor :: IORef FuntypeScissor+glrefScissor = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefScissor #-}+glScissor :: FuntypeScissor+glScissor = unsafePerformIO $ readIORef glrefScissor+{-# INLINE glScissor #-}+type FuntypeTexParameterf =+ GLenum ->+ GLenum ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexParameterf :: FunPtr FuntypeTexParameterf -> FuntypeTexParameterf+glrefTexParameterf :: IORef FuntypeTexParameterf+glrefTexParameterf = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexParameterf #-}+glTexParameterf :: FuntypeTexParameterf+glTexParameterf = unsafePerformIO $ readIORef glrefTexParameterf+{-# INLINE glTexParameterf #-}+type FuntypeTexParameterfv =+ GLenum ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexParameterfv :: FunPtr FuntypeTexParameterfv -> FuntypeTexParameterfv+glrefTexParameterfv :: IORef FuntypeTexParameterfv+glrefTexParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexParameterfv #-}+glTexParameterfv :: FuntypeTexParameterfv+glTexParameterfv = unsafePerformIO $ readIORef glrefTexParameterfv+{-# INLINE glTexParameterfv #-}+type FuntypeTexParameteri =+ GLenum ->+ GLenum ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexParameteri :: FunPtr FuntypeTexParameteri -> FuntypeTexParameteri+glrefTexParameteri :: IORef FuntypeTexParameteri+glrefTexParameteri = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexParameteri #-}+glTexParameteri :: FuntypeTexParameteri+glTexParameteri = unsafePerformIO $ readIORef glrefTexParameteri+{-# INLINE glTexParameteri #-}+type FuntypeTexParameteriv =+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexParameteriv :: FunPtr FuntypeTexParameteriv -> FuntypeTexParameteriv+glrefTexParameteriv :: IORef FuntypeTexParameteriv+glrefTexParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexParameteriv #-}+glTexParameteriv :: FuntypeTexParameteriv+glTexParameteriv = unsafePerformIO $ readIORef glrefTexParameteriv+{-# INLINE glTexParameteriv #-}+type FuntypeTexImage1D =+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexImage1D :: FunPtr FuntypeTexImage1D -> FuntypeTexImage1D+glrefTexImage1D :: IORef FuntypeTexImage1D+glrefTexImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexImage1D #-}+glTexImage1D :: FuntypeTexImage1D+glTexImage1D = unsafePerformIO $ readIORef glrefTexImage1D+{-# INLINE glTexImage1D #-}+type FuntypeTexImage2D =+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexImage2D :: FunPtr FuntypeTexImage2D -> FuntypeTexImage2D+glrefTexImage2D :: IORef FuntypeTexImage2D+glrefTexImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexImage2D #-}+glTexImage2D :: FuntypeTexImage2D+glTexImage2D = unsafePerformIO $ readIORef glrefTexImage2D+{-# INLINE glTexImage2D #-}+type FuntypeDrawBuffer =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDrawBuffer :: FunPtr FuntypeDrawBuffer -> FuntypeDrawBuffer+glrefDrawBuffer :: IORef FuntypeDrawBuffer+glrefDrawBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDrawBuffer #-}+glDrawBuffer :: FuntypeDrawBuffer+glDrawBuffer = unsafePerformIO $ readIORef glrefDrawBuffer+{-# INLINE glDrawBuffer #-}+type FuntypeClear =+ GLbitfield ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClear :: FunPtr FuntypeClear -> FuntypeClear+glrefClear :: IORef FuntypeClear+glrefClear = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClear #-}+glClear :: FuntypeClear+glClear = unsafePerformIO $ readIORef glrefClear+{-# INLINE glClear #-}+type FuntypeClearColor =+ GLfloat ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClearColor :: FunPtr FuntypeClearColor -> FuntypeClearColor+glrefClearColor :: IORef FuntypeClearColor+glrefClearColor = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClearColor #-}+glClearColor :: FuntypeClearColor+glClearColor = unsafePerformIO $ readIORef glrefClearColor+{-# INLINE glClearColor #-}+type FuntypeClearStencil =+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClearStencil :: FunPtr FuntypeClearStencil -> FuntypeClearStencil+glrefClearStencil :: IORef FuntypeClearStencil+glrefClearStencil = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClearStencil #-}+glClearStencil :: FuntypeClearStencil+glClearStencil = unsafePerformIO $ readIORef glrefClearStencil+{-# INLINE glClearStencil #-}+type FuntypeClearDepth =+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClearDepth :: FunPtr FuntypeClearDepth -> FuntypeClearDepth+glrefClearDepth :: IORef FuntypeClearDepth+glrefClearDepth = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClearDepth #-}+glClearDepth :: FuntypeClearDepth+glClearDepth = unsafePerformIO $ readIORef glrefClearDepth+{-# INLINE glClearDepth #-}+type FuntypeStencilMask =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynStencilMask :: FunPtr FuntypeStencilMask -> FuntypeStencilMask+glrefStencilMask :: IORef FuntypeStencilMask+glrefStencilMask = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefStencilMask #-}+glStencilMask :: FuntypeStencilMask+glStencilMask = unsafePerformIO $ readIORef glrefStencilMask+{-# INLINE glStencilMask #-}+type FuntypeColorMask =+ GLboolean ->+ GLboolean ->+ GLboolean ->+ GLboolean ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynColorMask :: FunPtr FuntypeColorMask -> FuntypeColorMask+glrefColorMask :: IORef FuntypeColorMask+glrefColorMask = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefColorMask #-}+glColorMask :: FuntypeColorMask+glColorMask = unsafePerformIO $ readIORef glrefColorMask+{-# INLINE glColorMask #-}+type FuntypeDepthMask =+ GLboolean ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDepthMask :: FunPtr FuntypeDepthMask -> FuntypeDepthMask+glrefDepthMask :: IORef FuntypeDepthMask+glrefDepthMask = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDepthMask #-}+glDepthMask :: FuntypeDepthMask+glDepthMask = unsafePerformIO $ readIORef glrefDepthMask+{-# INLINE glDepthMask #-}+type FuntypeDisable =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDisable :: FunPtr FuntypeDisable -> FuntypeDisable+glrefDisable :: IORef FuntypeDisable+glrefDisable = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDisable #-}+glDisable :: FuntypeDisable+glDisable = unsafePerformIO $ readIORef glrefDisable+{-# INLINE glDisable #-}+type FuntypeEnable =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynEnable :: FunPtr FuntypeEnable -> FuntypeEnable+glrefEnable :: IORef FuntypeEnable+glrefEnable = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefEnable #-}+glEnable :: FuntypeEnable+glEnable = unsafePerformIO $ readIORef glrefEnable+{-# INLINE glEnable #-}+type FuntypeFinish =+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFinish :: FunPtr FuntypeFinish -> FuntypeFinish+glrefFinish :: IORef FuntypeFinish+glrefFinish = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFinish #-}+glFinish :: FuntypeFinish+glFinish = unsafePerformIO $ readIORef glrefFinish+{-# INLINE glFinish #-}+type FuntypeFlush =+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFlush :: FunPtr FuntypeFlush -> FuntypeFlush+glrefFlush :: IORef FuntypeFlush+glrefFlush = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFlush #-}+glFlush :: FuntypeFlush+glFlush = unsafePerformIO $ readIORef glrefFlush+{-# INLINE glFlush #-}+type FuntypeBlendFunc =+ GLenum ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBlendFunc :: FunPtr FuntypeBlendFunc -> FuntypeBlendFunc+glrefBlendFunc :: IORef FuntypeBlendFunc+glrefBlendFunc = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBlendFunc #-}+glBlendFunc :: FuntypeBlendFunc+glBlendFunc = unsafePerformIO $ readIORef glrefBlendFunc+{-# INLINE glBlendFunc #-}+type FuntypeLogicOp =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynLogicOp :: FunPtr FuntypeLogicOp -> FuntypeLogicOp+glrefLogicOp :: IORef FuntypeLogicOp+glrefLogicOp = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefLogicOp #-}+glLogicOp :: FuntypeLogicOp+glLogicOp = unsafePerformIO $ readIORef glrefLogicOp+{-# INLINE glLogicOp #-}+type FuntypeStencilFunc =+ GLenum ->+ GLint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynStencilFunc :: FunPtr FuntypeStencilFunc -> FuntypeStencilFunc+glrefStencilFunc :: IORef FuntypeStencilFunc+glrefStencilFunc = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefStencilFunc #-}+glStencilFunc :: FuntypeStencilFunc+glStencilFunc = unsafePerformIO $ readIORef glrefStencilFunc+{-# INLINE glStencilFunc #-}+type FuntypeStencilOp =+ GLenum ->+ GLenum ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynStencilOp :: FunPtr FuntypeStencilOp -> FuntypeStencilOp+glrefStencilOp :: IORef FuntypeStencilOp+glrefStencilOp = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefStencilOp #-}+glStencilOp :: FuntypeStencilOp+glStencilOp = unsafePerformIO $ readIORef glrefStencilOp+{-# INLINE glStencilOp #-}+type FuntypeDepthFunc =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDepthFunc :: FunPtr FuntypeDepthFunc -> FuntypeDepthFunc+glrefDepthFunc :: IORef FuntypeDepthFunc+glrefDepthFunc = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDepthFunc #-}+glDepthFunc :: FuntypeDepthFunc+glDepthFunc = unsafePerformIO $ readIORef glrefDepthFunc+{-# INLINE glDepthFunc #-}+type FuntypePixelStoref =+ GLenum ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPixelStoref :: FunPtr FuntypePixelStoref -> FuntypePixelStoref+glrefPixelStoref :: IORef FuntypePixelStoref+glrefPixelStoref = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPixelStoref #-}+glPixelStoref :: FuntypePixelStoref+glPixelStoref = unsafePerformIO $ readIORef glrefPixelStoref+{-# INLINE glPixelStoref #-}+type FuntypePixelStorei =+ GLenum ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPixelStorei :: FunPtr FuntypePixelStorei -> FuntypePixelStorei+glrefPixelStorei :: IORef FuntypePixelStorei+glrefPixelStorei = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPixelStorei #-}+glPixelStorei :: FuntypePixelStorei+glPixelStorei = unsafePerformIO $ readIORef glrefPixelStorei+{-# INLINE glPixelStorei #-}+type FuntypeReadBuffer =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynReadBuffer :: FunPtr FuntypeReadBuffer -> FuntypeReadBuffer+glrefReadBuffer :: IORef FuntypeReadBuffer+glrefReadBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefReadBuffer #-}+glReadBuffer :: FuntypeReadBuffer+glReadBuffer = unsafePerformIO $ readIORef glrefReadBuffer+{-# INLINE glReadBuffer #-}+type FuntypeReadPixels =+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynReadPixels :: FunPtr FuntypeReadPixels -> FuntypeReadPixels+glrefReadPixels :: IORef FuntypeReadPixels+glrefReadPixels = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefReadPixels #-}+glReadPixels :: FuntypeReadPixels+glReadPixels = unsafePerformIO $ readIORef glrefReadPixels+{-# INLINE glReadPixels #-}+type FuntypeGetBooleanv =+ GLenum ->+ Ptr (GLboolean) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetBooleanv :: FunPtr FuntypeGetBooleanv -> FuntypeGetBooleanv+glrefGetBooleanv :: IORef FuntypeGetBooleanv+glrefGetBooleanv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetBooleanv #-}+glGetBooleanv :: FuntypeGetBooleanv+glGetBooleanv = unsafePerformIO $ readIORef glrefGetBooleanv+{-# INLINE glGetBooleanv #-}+type FuntypeGetDoublev =+ GLenum ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetDoublev :: FunPtr FuntypeGetDoublev -> FuntypeGetDoublev+glrefGetDoublev :: IORef FuntypeGetDoublev+glrefGetDoublev = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetDoublev #-}+glGetDoublev :: FuntypeGetDoublev+glGetDoublev = unsafePerformIO $ readIORef glrefGetDoublev+{-# INLINE glGetDoublev #-}+type FuntypeGetError =+ IO ( GLenum )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetError :: FunPtr FuntypeGetError -> FuntypeGetError+glrefGetError :: IORef FuntypeGetError+glrefGetError = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetError #-}+glGetError :: FuntypeGetError+glGetError = unsafePerformIO $ readIORef glrefGetError+{-# INLINE glGetError #-}+type FuntypeGetFloatv =+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetFloatv :: FunPtr FuntypeGetFloatv -> FuntypeGetFloatv+glrefGetFloatv :: IORef FuntypeGetFloatv+glrefGetFloatv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetFloatv #-}+glGetFloatv :: FuntypeGetFloatv+glGetFloatv = unsafePerformIO $ readIORef glrefGetFloatv+{-# INLINE glGetFloatv #-}+type FuntypeGetIntegerv =+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetIntegerv :: FunPtr FuntypeGetIntegerv -> FuntypeGetIntegerv+glrefGetIntegerv :: IORef FuntypeGetIntegerv+glrefGetIntegerv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetIntegerv #-}+glGetIntegerv :: FuntypeGetIntegerv+glGetIntegerv = unsafePerformIO $ readIORef glrefGetIntegerv+{-# INLINE glGetIntegerv #-}+type FuntypeGetString =+ GLenum ->+ IO ( Ptr (GLubyte) )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetString :: FunPtr FuntypeGetString -> FuntypeGetString+glrefGetString :: IORef FuntypeGetString+glrefGetString = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetString #-}+glGetString :: FuntypeGetString+glGetString = unsafePerformIO $ readIORef glrefGetString+{-# INLINE glGetString #-}+type FuntypeGetTexImage =+ GLenum ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTexImage :: FunPtr FuntypeGetTexImage -> FuntypeGetTexImage+glrefGetTexImage :: IORef FuntypeGetTexImage+glrefGetTexImage = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTexImage #-}+glGetTexImage :: FuntypeGetTexImage+glGetTexImage = unsafePerformIO $ readIORef glrefGetTexImage+{-# INLINE glGetTexImage #-}+type FuntypeGetTexParameterfv =+ GLenum ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTexParameterfv :: FunPtr FuntypeGetTexParameterfv -> FuntypeGetTexParameterfv+glrefGetTexParameterfv :: IORef FuntypeGetTexParameterfv+glrefGetTexParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTexParameterfv #-}+glGetTexParameterfv :: FuntypeGetTexParameterfv+glGetTexParameterfv = unsafePerformIO $ readIORef glrefGetTexParameterfv+{-# INLINE glGetTexParameterfv #-}+type FuntypeGetTexParameteriv =+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTexParameteriv :: FunPtr FuntypeGetTexParameteriv -> FuntypeGetTexParameteriv+glrefGetTexParameteriv :: IORef FuntypeGetTexParameteriv+glrefGetTexParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTexParameteriv #-}+glGetTexParameteriv :: FuntypeGetTexParameteriv+glGetTexParameteriv = unsafePerformIO $ readIORef glrefGetTexParameteriv+{-# INLINE glGetTexParameteriv #-}+type FuntypeGetTexLevelParameterfv =+ GLenum ->+ GLint ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTexLevelParameterfv :: FunPtr FuntypeGetTexLevelParameterfv -> FuntypeGetTexLevelParameterfv+glrefGetTexLevelParameterfv :: IORef FuntypeGetTexLevelParameterfv+glrefGetTexLevelParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTexLevelParameterfv #-}+glGetTexLevelParameterfv :: FuntypeGetTexLevelParameterfv+glGetTexLevelParameterfv = unsafePerformIO $ readIORef glrefGetTexLevelParameterfv+{-# INLINE glGetTexLevelParameterfv #-}+type FuntypeGetTexLevelParameteriv =+ GLenum ->+ GLint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTexLevelParameteriv :: FunPtr FuntypeGetTexLevelParameteriv -> FuntypeGetTexLevelParameteriv+glrefGetTexLevelParameteriv :: IORef FuntypeGetTexLevelParameteriv+glrefGetTexLevelParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTexLevelParameteriv #-}+glGetTexLevelParameteriv :: FuntypeGetTexLevelParameteriv+glGetTexLevelParameteriv = unsafePerformIO $ readIORef glrefGetTexLevelParameteriv+{-# INLINE glGetTexLevelParameteriv #-}+type FuntypeIsEnabled =+ GLenum ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsEnabled :: FunPtr FuntypeIsEnabled -> FuntypeIsEnabled+glrefIsEnabled :: IORef FuntypeIsEnabled+glrefIsEnabled = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsEnabled #-}+glIsEnabled :: FuntypeIsEnabled+glIsEnabled = unsafePerformIO $ readIORef glrefIsEnabled+{-# INLINE glIsEnabled #-}+type FuntypeDepthRange =+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDepthRange :: FunPtr FuntypeDepthRange -> FuntypeDepthRange+glrefDepthRange :: IORef FuntypeDepthRange+glrefDepthRange = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDepthRange #-}+glDepthRange :: FuntypeDepthRange+glDepthRange = unsafePerformIO $ readIORef glrefDepthRange+{-# INLINE glDepthRange #-}+type FuntypeViewport =+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynViewport :: FunPtr FuntypeViewport -> FuntypeViewport+glrefViewport :: IORef FuntypeViewport+glrefViewport = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefViewport #-}+glViewport :: FuntypeViewport+glViewport = unsafePerformIO $ readIORef glrefViewport+{-# INLINE glViewport #-}++-- GL_VERSION_1_1++type FuntypeDrawArrays =+ GLenum ->+ GLint ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDrawArrays :: FunPtr FuntypeDrawArrays -> FuntypeDrawArrays+glrefDrawArrays :: IORef FuntypeDrawArrays+glrefDrawArrays = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDrawArrays #-}+glDrawArrays :: FuntypeDrawArrays+glDrawArrays = unsafePerformIO $ readIORef glrefDrawArrays+{-# INLINE glDrawArrays #-}+type FuntypeDrawElements =+ GLenum ->+ GLsizei ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDrawElements :: FunPtr FuntypeDrawElements -> FuntypeDrawElements+glrefDrawElements :: IORef FuntypeDrawElements+glrefDrawElements = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDrawElements #-}+glDrawElements :: FuntypeDrawElements+glDrawElements = unsafePerformIO $ readIORef glrefDrawElements+{-# INLINE glDrawElements #-}+type FuntypePolygonOffset =+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPolygonOffset :: FunPtr FuntypePolygonOffset -> FuntypePolygonOffset+glrefPolygonOffset :: IORef FuntypePolygonOffset+glrefPolygonOffset = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPolygonOffset #-}+glPolygonOffset :: FuntypePolygonOffset+glPolygonOffset = unsafePerformIO $ readIORef glrefPolygonOffset+{-# INLINE glPolygonOffset #-}+type FuntypeCopyTexImage1D =+ GLenum ->+ GLint ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyTexImage1D :: FunPtr FuntypeCopyTexImage1D -> FuntypeCopyTexImage1D+glrefCopyTexImage1D :: IORef FuntypeCopyTexImage1D+glrefCopyTexImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyTexImage1D #-}+glCopyTexImage1D :: FuntypeCopyTexImage1D+glCopyTexImage1D = unsafePerformIO $ readIORef glrefCopyTexImage1D+{-# INLINE glCopyTexImage1D #-}+type FuntypeCopyTexImage2D =+ GLenum ->+ GLint ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyTexImage2D :: FunPtr FuntypeCopyTexImage2D -> FuntypeCopyTexImage2D+glrefCopyTexImage2D :: IORef FuntypeCopyTexImage2D+glrefCopyTexImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyTexImage2D #-}+glCopyTexImage2D :: FuntypeCopyTexImage2D+glCopyTexImage2D = unsafePerformIO $ readIORef glrefCopyTexImage2D+{-# INLINE glCopyTexImage2D #-}+type FuntypeCopyTexSubImage1D =+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyTexSubImage1D :: FunPtr FuntypeCopyTexSubImage1D -> FuntypeCopyTexSubImage1D+glrefCopyTexSubImage1D :: IORef FuntypeCopyTexSubImage1D+glrefCopyTexSubImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyTexSubImage1D #-}+glCopyTexSubImage1D :: FuntypeCopyTexSubImage1D+glCopyTexSubImage1D = unsafePerformIO $ readIORef glrefCopyTexSubImage1D+{-# INLINE glCopyTexSubImage1D #-}+type FuntypeCopyTexSubImage2D =+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyTexSubImage2D :: FunPtr FuntypeCopyTexSubImage2D -> FuntypeCopyTexSubImage2D+glrefCopyTexSubImage2D :: IORef FuntypeCopyTexSubImage2D+glrefCopyTexSubImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyTexSubImage2D #-}+glCopyTexSubImage2D :: FuntypeCopyTexSubImage2D+glCopyTexSubImage2D = unsafePerformIO $ readIORef glrefCopyTexSubImage2D+{-# INLINE glCopyTexSubImage2D #-}+type FuntypeTexSubImage1D =+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexSubImage1D :: FunPtr FuntypeTexSubImage1D -> FuntypeTexSubImage1D+glrefTexSubImage1D :: IORef FuntypeTexSubImage1D+glrefTexSubImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexSubImage1D #-}+glTexSubImage1D :: FuntypeTexSubImage1D+glTexSubImage1D = unsafePerformIO $ readIORef glrefTexSubImage1D+{-# INLINE glTexSubImage1D #-}+type FuntypeTexSubImage2D =+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexSubImage2D :: FunPtr FuntypeTexSubImage2D -> FuntypeTexSubImage2D+glrefTexSubImage2D :: IORef FuntypeTexSubImage2D+glrefTexSubImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexSubImage2D #-}+glTexSubImage2D :: FuntypeTexSubImage2D+glTexSubImage2D = unsafePerformIO $ readIORef glrefTexSubImage2D+{-# INLINE glTexSubImage2D #-}+type FuntypeBindTexture =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindTexture :: FunPtr FuntypeBindTexture -> FuntypeBindTexture+glrefBindTexture :: IORef FuntypeBindTexture+glrefBindTexture = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindTexture #-}+glBindTexture :: FuntypeBindTexture+glBindTexture = unsafePerformIO $ readIORef glrefBindTexture+{-# INLINE glBindTexture #-}+type FuntypeDeleteTextures =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDeleteTextures :: FunPtr FuntypeDeleteTextures -> FuntypeDeleteTextures+glrefDeleteTextures :: IORef FuntypeDeleteTextures+glrefDeleteTextures = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDeleteTextures #-}+glDeleteTextures :: FuntypeDeleteTextures+glDeleteTextures = unsafePerformIO $ readIORef glrefDeleteTextures+{-# INLINE glDeleteTextures #-}+type FuntypeGenTextures =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGenTextures :: FunPtr FuntypeGenTextures -> FuntypeGenTextures+glrefGenTextures :: IORef FuntypeGenTextures+glrefGenTextures = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGenTextures #-}+glGenTextures :: FuntypeGenTextures+glGenTextures = unsafePerformIO $ readIORef glrefGenTextures+{-# INLINE glGenTextures #-}+type FuntypeIsTexture =+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsTexture :: FunPtr FuntypeIsTexture -> FuntypeIsTexture+glrefIsTexture :: IORef FuntypeIsTexture+glrefIsTexture = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsTexture #-}+glIsTexture :: FuntypeIsTexture+glIsTexture = unsafePerformIO $ readIORef glrefIsTexture+{-# INLINE glIsTexture #-}++-- GL_VERSION_1_2++type FuntypeDrawRangeElements =+ GLenum ->+ GLuint ->+ GLuint ->+ GLsizei ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDrawRangeElements :: FunPtr FuntypeDrawRangeElements -> FuntypeDrawRangeElements+glrefDrawRangeElements :: IORef FuntypeDrawRangeElements+glrefDrawRangeElements = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDrawRangeElements #-}+glDrawRangeElements :: FuntypeDrawRangeElements+glDrawRangeElements = unsafePerformIO $ readIORef glrefDrawRangeElements+{-# INLINE glDrawRangeElements #-}+type FuntypeTexImage3D =+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexImage3D :: FunPtr FuntypeTexImage3D -> FuntypeTexImage3D+glrefTexImage3D :: IORef FuntypeTexImage3D+glrefTexImage3D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexImage3D #-}+glTexImage3D :: FuntypeTexImage3D+glTexImage3D = unsafePerformIO $ readIORef glrefTexImage3D+{-# INLINE glTexImage3D #-}+type FuntypeTexSubImage3D =+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexSubImage3D :: FunPtr FuntypeTexSubImage3D -> FuntypeTexSubImage3D+glrefTexSubImage3D :: IORef FuntypeTexSubImage3D+glrefTexSubImage3D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexSubImage3D #-}+glTexSubImage3D :: FuntypeTexSubImage3D+glTexSubImage3D = unsafePerformIO $ readIORef glrefTexSubImage3D+{-# INLINE glTexSubImage3D #-}+type FuntypeCopyTexSubImage3D =+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyTexSubImage3D :: FunPtr FuntypeCopyTexSubImage3D -> FuntypeCopyTexSubImage3D+glrefCopyTexSubImage3D :: IORef FuntypeCopyTexSubImage3D+glrefCopyTexSubImage3D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyTexSubImage3D #-}+glCopyTexSubImage3D :: FuntypeCopyTexSubImage3D+glCopyTexSubImage3D = unsafePerformIO $ readIORef glrefCopyTexSubImage3D+{-# INLINE glCopyTexSubImage3D #-}++-- GL_VERSION_1_3++type FuntypeActiveTexture =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynActiveTexture :: FunPtr FuntypeActiveTexture -> FuntypeActiveTexture+glrefActiveTexture :: IORef FuntypeActiveTexture+glrefActiveTexture = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefActiveTexture #-}+glActiveTexture :: FuntypeActiveTexture+glActiveTexture = unsafePerformIO $ readIORef glrefActiveTexture+{-# INLINE glActiveTexture #-}+type FuntypeSampleCoverage =+ GLfloat ->+ GLboolean ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynSampleCoverage :: FunPtr FuntypeSampleCoverage -> FuntypeSampleCoverage+glrefSampleCoverage :: IORef FuntypeSampleCoverage+glrefSampleCoverage = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefSampleCoverage #-}+glSampleCoverage :: FuntypeSampleCoverage+glSampleCoverage = unsafePerformIO $ readIORef glrefSampleCoverage+{-# INLINE glSampleCoverage #-}+type FuntypeCompressedTexImage3D =+ GLenum ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTexImage3D :: FunPtr FuntypeCompressedTexImage3D -> FuntypeCompressedTexImage3D+glrefCompressedTexImage3D :: IORef FuntypeCompressedTexImage3D+glrefCompressedTexImage3D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTexImage3D #-}+glCompressedTexImage3D :: FuntypeCompressedTexImage3D+glCompressedTexImage3D = unsafePerformIO $ readIORef glrefCompressedTexImage3D+{-# INLINE glCompressedTexImage3D #-}+type FuntypeCompressedTexImage2D =+ GLenum ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTexImage2D :: FunPtr FuntypeCompressedTexImage2D -> FuntypeCompressedTexImage2D+glrefCompressedTexImage2D :: IORef FuntypeCompressedTexImage2D+glrefCompressedTexImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTexImage2D #-}+glCompressedTexImage2D :: FuntypeCompressedTexImage2D+glCompressedTexImage2D = unsafePerformIO $ readIORef glrefCompressedTexImage2D+{-# INLINE glCompressedTexImage2D #-}+type FuntypeCompressedTexImage1D =+ GLenum ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLint ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTexImage1D :: FunPtr FuntypeCompressedTexImage1D -> FuntypeCompressedTexImage1D+glrefCompressedTexImage1D :: IORef FuntypeCompressedTexImage1D+glrefCompressedTexImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTexImage1D #-}+glCompressedTexImage1D :: FuntypeCompressedTexImage1D+glCompressedTexImage1D = unsafePerformIO $ readIORef glrefCompressedTexImage1D+{-# INLINE glCompressedTexImage1D #-}+type FuntypeCompressedTexSubImage3D =+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTexSubImage3D :: FunPtr FuntypeCompressedTexSubImage3D -> FuntypeCompressedTexSubImage3D+glrefCompressedTexSubImage3D :: IORef FuntypeCompressedTexSubImage3D+glrefCompressedTexSubImage3D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTexSubImage3D #-}+glCompressedTexSubImage3D :: FuntypeCompressedTexSubImage3D+glCompressedTexSubImage3D = unsafePerformIO $ readIORef glrefCompressedTexSubImage3D+{-# INLINE glCompressedTexSubImage3D #-}+type FuntypeCompressedTexSubImage2D =+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTexSubImage2D :: FunPtr FuntypeCompressedTexSubImage2D -> FuntypeCompressedTexSubImage2D+glrefCompressedTexSubImage2D :: IORef FuntypeCompressedTexSubImage2D+glrefCompressedTexSubImage2D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTexSubImage2D #-}+glCompressedTexSubImage2D :: FuntypeCompressedTexSubImage2D+glCompressedTexSubImage2D = unsafePerformIO $ readIORef glrefCompressedTexSubImage2D+{-# INLINE glCompressedTexSubImage2D #-}+type FuntypeCompressedTexSubImage1D =+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTexSubImage1D :: FunPtr FuntypeCompressedTexSubImage1D -> FuntypeCompressedTexSubImage1D+glrefCompressedTexSubImage1D :: IORef FuntypeCompressedTexSubImage1D+glrefCompressedTexSubImage1D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTexSubImage1D #-}+glCompressedTexSubImage1D :: FuntypeCompressedTexSubImage1D+glCompressedTexSubImage1D = unsafePerformIO $ readIORef glrefCompressedTexSubImage1D+{-# INLINE glCompressedTexSubImage1D #-}+type FuntypeGetCompressedTexImage =+ GLenum ->+ GLint ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetCompressedTexImage :: FunPtr FuntypeGetCompressedTexImage -> FuntypeGetCompressedTexImage+glrefGetCompressedTexImage :: IORef FuntypeGetCompressedTexImage+glrefGetCompressedTexImage = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetCompressedTexImage #-}+glGetCompressedTexImage :: FuntypeGetCompressedTexImage+glGetCompressedTexImage = unsafePerformIO $ readIORef glrefGetCompressedTexImage+{-# INLINE glGetCompressedTexImage #-}++-- GL_VERSION_1_4++type FuntypeBlendFuncSeparate =+ GLenum ->+ GLenum ->+ GLenum ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBlendFuncSeparate :: FunPtr FuntypeBlendFuncSeparate -> FuntypeBlendFuncSeparate+glrefBlendFuncSeparate :: IORef FuntypeBlendFuncSeparate+glrefBlendFuncSeparate = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBlendFuncSeparate #-}+glBlendFuncSeparate :: FuntypeBlendFuncSeparate+glBlendFuncSeparate = unsafePerformIO $ readIORef glrefBlendFuncSeparate+{-# INLINE glBlendFuncSeparate #-}+type FuntypeMultiDrawArrays =+ GLenum ->+ Ptr (GLint) ->+ Ptr (GLsizei) ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiDrawArrays :: FunPtr FuntypeMultiDrawArrays -> FuntypeMultiDrawArrays+glrefMultiDrawArrays :: IORef FuntypeMultiDrawArrays+glrefMultiDrawArrays = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiDrawArrays #-}+glMultiDrawArrays :: FuntypeMultiDrawArrays+glMultiDrawArrays = unsafePerformIO $ readIORef glrefMultiDrawArrays+{-# INLINE glMultiDrawArrays #-}+type FuntypeMultiDrawElements =+ GLenum ->+ Ptr (GLsizei) ->+ GLenum ->+ Ptr (Ptr ()) ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiDrawElements :: FunPtr FuntypeMultiDrawElements -> FuntypeMultiDrawElements+glrefMultiDrawElements :: IORef FuntypeMultiDrawElements+glrefMultiDrawElements = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiDrawElements #-}+glMultiDrawElements :: FuntypeMultiDrawElements+glMultiDrawElements = unsafePerformIO $ readIORef glrefMultiDrawElements+{-# INLINE glMultiDrawElements #-}+type FuntypePointParameterf =+ GLenum ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPointParameterf :: FunPtr FuntypePointParameterf -> FuntypePointParameterf+glrefPointParameterf :: IORef FuntypePointParameterf+glrefPointParameterf = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPointParameterf #-}+glPointParameterf :: FuntypePointParameterf+glPointParameterf = unsafePerformIO $ readIORef glrefPointParameterf+{-# INLINE glPointParameterf #-}+type FuntypePointParameterfv =+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPointParameterfv :: FunPtr FuntypePointParameterfv -> FuntypePointParameterfv+glrefPointParameterfv :: IORef FuntypePointParameterfv+glrefPointParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPointParameterfv #-}+glPointParameterfv :: FuntypePointParameterfv+glPointParameterfv = unsafePerformIO $ readIORef glrefPointParameterfv+{-# INLINE glPointParameterfv #-}+type FuntypePointParameteri =+ GLenum ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPointParameteri :: FunPtr FuntypePointParameteri -> FuntypePointParameteri+glrefPointParameteri :: IORef FuntypePointParameteri+glrefPointParameteri = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPointParameteri #-}+glPointParameteri :: FuntypePointParameteri+glPointParameteri = unsafePerformIO $ readIORef glrefPointParameteri+{-# INLINE glPointParameteri #-}+type FuntypePointParameteriv =+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPointParameteriv :: FunPtr FuntypePointParameteriv -> FuntypePointParameteriv+glrefPointParameteriv :: IORef FuntypePointParameteriv+glrefPointParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPointParameteriv #-}+glPointParameteriv :: FuntypePointParameteriv+glPointParameteriv = unsafePerformIO $ readIORef glrefPointParameteriv+{-# INLINE glPointParameteriv #-}+type FuntypeBlendColor =+ GLfloat ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBlendColor :: FunPtr FuntypeBlendColor -> FuntypeBlendColor+glrefBlendColor :: IORef FuntypeBlendColor+glrefBlendColor = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBlendColor #-}+glBlendColor :: FuntypeBlendColor+glBlendColor = unsafePerformIO $ readIORef glrefBlendColor+{-# INLINE glBlendColor #-}+type FuntypeBlendEquation =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBlendEquation :: FunPtr FuntypeBlendEquation -> FuntypeBlendEquation+glrefBlendEquation :: IORef FuntypeBlendEquation+glrefBlendEquation = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBlendEquation #-}+glBlendEquation :: FuntypeBlendEquation+glBlendEquation = unsafePerformIO $ readIORef glrefBlendEquation+{-# INLINE glBlendEquation #-}++-- GL_VERSION_1_5++type FuntypeGenQueries =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGenQueries :: FunPtr FuntypeGenQueries -> FuntypeGenQueries+glrefGenQueries :: IORef FuntypeGenQueries+glrefGenQueries = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGenQueries #-}+glGenQueries :: FuntypeGenQueries+glGenQueries = unsafePerformIO $ readIORef glrefGenQueries+{-# INLINE glGenQueries #-}+type FuntypeDeleteQueries =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDeleteQueries :: FunPtr FuntypeDeleteQueries -> FuntypeDeleteQueries+glrefDeleteQueries :: IORef FuntypeDeleteQueries+glrefDeleteQueries = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDeleteQueries #-}+glDeleteQueries :: FuntypeDeleteQueries+glDeleteQueries = unsafePerformIO $ readIORef glrefDeleteQueries+{-# INLINE glDeleteQueries #-}+type FuntypeIsQuery =+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsQuery :: FunPtr FuntypeIsQuery -> FuntypeIsQuery+glrefIsQuery :: IORef FuntypeIsQuery+glrefIsQuery = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsQuery #-}+glIsQuery :: FuntypeIsQuery+glIsQuery = unsafePerformIO $ readIORef glrefIsQuery+{-# INLINE glIsQuery #-}+type FuntypeBeginQuery =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBeginQuery :: FunPtr FuntypeBeginQuery -> FuntypeBeginQuery+glrefBeginQuery :: IORef FuntypeBeginQuery+glrefBeginQuery = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBeginQuery #-}+glBeginQuery :: FuntypeBeginQuery+glBeginQuery = unsafePerformIO $ readIORef glrefBeginQuery+{-# INLINE glBeginQuery #-}+type FuntypeEndQuery =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynEndQuery :: FunPtr FuntypeEndQuery -> FuntypeEndQuery+glrefEndQuery :: IORef FuntypeEndQuery+glrefEndQuery = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefEndQuery #-}+glEndQuery :: FuntypeEndQuery+glEndQuery = unsafePerformIO $ readIORef glrefEndQuery+{-# INLINE glEndQuery #-}+type FuntypeGetQueryiv =+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetQueryiv :: FunPtr FuntypeGetQueryiv -> FuntypeGetQueryiv+glrefGetQueryiv :: IORef FuntypeGetQueryiv+glrefGetQueryiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetQueryiv #-}+glGetQueryiv :: FuntypeGetQueryiv+glGetQueryiv = unsafePerformIO $ readIORef glrefGetQueryiv+{-# INLINE glGetQueryiv #-}+type FuntypeGetQueryObjectiv =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetQueryObjectiv :: FunPtr FuntypeGetQueryObjectiv -> FuntypeGetQueryObjectiv+glrefGetQueryObjectiv :: IORef FuntypeGetQueryObjectiv+glrefGetQueryObjectiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetQueryObjectiv #-}+glGetQueryObjectiv :: FuntypeGetQueryObjectiv+glGetQueryObjectiv = unsafePerformIO $ readIORef glrefGetQueryObjectiv+{-# INLINE glGetQueryObjectiv #-}+type FuntypeGetQueryObjectuiv =+ GLuint ->+ GLenum ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetQueryObjectuiv :: FunPtr FuntypeGetQueryObjectuiv -> FuntypeGetQueryObjectuiv+glrefGetQueryObjectuiv :: IORef FuntypeGetQueryObjectuiv+glrefGetQueryObjectuiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetQueryObjectuiv #-}+glGetQueryObjectuiv :: FuntypeGetQueryObjectuiv+glGetQueryObjectuiv = unsafePerformIO $ readIORef glrefGetQueryObjectuiv+{-# INLINE glGetQueryObjectuiv #-}+type FuntypeBindBuffer =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindBuffer :: FunPtr FuntypeBindBuffer -> FuntypeBindBuffer+glrefBindBuffer :: IORef FuntypeBindBuffer+glrefBindBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindBuffer #-}+glBindBuffer :: FuntypeBindBuffer+glBindBuffer = unsafePerformIO $ readIORef glrefBindBuffer+{-# INLINE glBindBuffer #-}+type FuntypeDeleteBuffers =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDeleteBuffers :: FunPtr FuntypeDeleteBuffers -> FuntypeDeleteBuffers+glrefDeleteBuffers :: IORef FuntypeDeleteBuffers+glrefDeleteBuffers = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDeleteBuffers #-}+glDeleteBuffers :: FuntypeDeleteBuffers+glDeleteBuffers = unsafePerformIO $ readIORef glrefDeleteBuffers+{-# INLINE glDeleteBuffers #-}+type FuntypeGenBuffers =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGenBuffers :: FunPtr FuntypeGenBuffers -> FuntypeGenBuffers+glrefGenBuffers :: IORef FuntypeGenBuffers+glrefGenBuffers = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGenBuffers #-}+glGenBuffers :: FuntypeGenBuffers+glGenBuffers = unsafePerformIO $ readIORef glrefGenBuffers+{-# INLINE glGenBuffers #-}+type FuntypeIsBuffer =+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsBuffer :: FunPtr FuntypeIsBuffer -> FuntypeIsBuffer+glrefIsBuffer :: IORef FuntypeIsBuffer+glrefIsBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsBuffer #-}+glIsBuffer :: FuntypeIsBuffer+glIsBuffer = unsafePerformIO $ readIORef glrefIsBuffer+{-# INLINE glIsBuffer #-}+type FuntypeBufferData =+ GLenum ->+ GLsizeiptr ->+ Ptr () ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBufferData :: FunPtr FuntypeBufferData -> FuntypeBufferData+glrefBufferData :: IORef FuntypeBufferData+glrefBufferData = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBufferData #-}+glBufferData :: FuntypeBufferData+glBufferData = unsafePerformIO $ readIORef glrefBufferData+{-# INLINE glBufferData #-}+type FuntypeBufferSubData =+ GLenum ->+ GLintptr ->+ GLsizeiptr ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBufferSubData :: FunPtr FuntypeBufferSubData -> FuntypeBufferSubData+glrefBufferSubData :: IORef FuntypeBufferSubData+glrefBufferSubData = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBufferSubData #-}+glBufferSubData :: FuntypeBufferSubData+glBufferSubData = unsafePerformIO $ readIORef glrefBufferSubData+{-# INLINE glBufferSubData #-}+type FuntypeGetBufferSubData =+ GLenum ->+ GLintptr ->+ GLsizeiptr ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetBufferSubData :: FunPtr FuntypeGetBufferSubData -> FuntypeGetBufferSubData+glrefGetBufferSubData :: IORef FuntypeGetBufferSubData+glrefGetBufferSubData = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetBufferSubData #-}+glGetBufferSubData :: FuntypeGetBufferSubData+glGetBufferSubData = unsafePerformIO $ readIORef glrefGetBufferSubData+{-# INLINE glGetBufferSubData #-}+type FuntypeMapBuffer =+ GLenum ->+ GLenum ->+ IO ( Ptr () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMapBuffer :: FunPtr FuntypeMapBuffer -> FuntypeMapBuffer+glrefMapBuffer :: IORef FuntypeMapBuffer+glrefMapBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMapBuffer #-}+glMapBuffer :: FuntypeMapBuffer+glMapBuffer = unsafePerformIO $ readIORef glrefMapBuffer+{-# INLINE glMapBuffer #-}+type FuntypeUnmapBuffer =+ GLenum ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUnmapBuffer :: FunPtr FuntypeUnmapBuffer -> FuntypeUnmapBuffer+glrefUnmapBuffer :: IORef FuntypeUnmapBuffer+glrefUnmapBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUnmapBuffer #-}+glUnmapBuffer :: FuntypeUnmapBuffer+glUnmapBuffer = unsafePerformIO $ readIORef glrefUnmapBuffer+{-# INLINE glUnmapBuffer #-}+type FuntypeGetBufferParameteriv =+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetBufferParameteriv :: FunPtr FuntypeGetBufferParameteriv -> FuntypeGetBufferParameteriv+glrefGetBufferParameteriv :: IORef FuntypeGetBufferParameteriv+glrefGetBufferParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetBufferParameteriv #-}+glGetBufferParameteriv :: FuntypeGetBufferParameteriv+glGetBufferParameteriv = unsafePerformIO $ readIORef glrefGetBufferParameteriv+{-# INLINE glGetBufferParameteriv #-}+type FuntypeGetBufferPointerv =+ GLenum ->+ GLenum ->+ Ptr (Ptr ()) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetBufferPointerv :: FunPtr FuntypeGetBufferPointerv -> FuntypeGetBufferPointerv+glrefGetBufferPointerv :: IORef FuntypeGetBufferPointerv+glrefGetBufferPointerv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetBufferPointerv #-}+glGetBufferPointerv :: FuntypeGetBufferPointerv+glGetBufferPointerv = unsafePerformIO $ readIORef glrefGetBufferPointerv+{-# INLINE glGetBufferPointerv #-}++-- GL_VERSION_2_0++type FuntypeBlendEquationSeparate =+ GLenum ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBlendEquationSeparate :: FunPtr FuntypeBlendEquationSeparate -> FuntypeBlendEquationSeparate+glrefBlendEquationSeparate :: IORef FuntypeBlendEquationSeparate+glrefBlendEquationSeparate = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBlendEquationSeparate #-}+glBlendEquationSeparate :: FuntypeBlendEquationSeparate+glBlendEquationSeparate = unsafePerformIO $ readIORef glrefBlendEquationSeparate+{-# INLINE glBlendEquationSeparate #-}+type FuntypeDrawBuffers =+ GLsizei ->+ Ptr (GLenum) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDrawBuffers :: FunPtr FuntypeDrawBuffers -> FuntypeDrawBuffers+glrefDrawBuffers :: IORef FuntypeDrawBuffers+glrefDrawBuffers = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDrawBuffers #-}+glDrawBuffers :: FuntypeDrawBuffers+glDrawBuffers = unsafePerformIO $ readIORef glrefDrawBuffers+{-# INLINE glDrawBuffers #-}+type FuntypeStencilOpSeparate =+ GLenum ->+ GLenum ->+ GLenum ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynStencilOpSeparate :: FunPtr FuntypeStencilOpSeparate -> FuntypeStencilOpSeparate+glrefStencilOpSeparate :: IORef FuntypeStencilOpSeparate+glrefStencilOpSeparate = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefStencilOpSeparate #-}+glStencilOpSeparate :: FuntypeStencilOpSeparate+glStencilOpSeparate = unsafePerformIO $ readIORef glrefStencilOpSeparate+{-# INLINE glStencilOpSeparate #-}+type FuntypeStencilFuncSeparate =+ GLenum ->+ GLenum ->+ GLint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynStencilFuncSeparate :: FunPtr FuntypeStencilFuncSeparate -> FuntypeStencilFuncSeparate+glrefStencilFuncSeparate :: IORef FuntypeStencilFuncSeparate+glrefStencilFuncSeparate = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefStencilFuncSeparate #-}+glStencilFuncSeparate :: FuntypeStencilFuncSeparate+glStencilFuncSeparate = unsafePerformIO $ readIORef glrefStencilFuncSeparate+{-# INLINE glStencilFuncSeparate #-}+type FuntypeStencilMaskSeparate =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynStencilMaskSeparate :: FunPtr FuntypeStencilMaskSeparate -> FuntypeStencilMaskSeparate+glrefStencilMaskSeparate :: IORef FuntypeStencilMaskSeparate+glrefStencilMaskSeparate = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefStencilMaskSeparate #-}+glStencilMaskSeparate :: FuntypeStencilMaskSeparate+glStencilMaskSeparate = unsafePerformIO $ readIORef glrefStencilMaskSeparate+{-# INLINE glStencilMaskSeparate #-}+type FuntypeAttachShader =+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynAttachShader :: FunPtr FuntypeAttachShader -> FuntypeAttachShader+glrefAttachShader :: IORef FuntypeAttachShader+glrefAttachShader = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefAttachShader #-}+glAttachShader :: FuntypeAttachShader+glAttachShader = unsafePerformIO $ readIORef glrefAttachShader+{-# INLINE glAttachShader #-}+type FuntypeBindAttribLocation =+ GLuint ->+ GLuint ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindAttribLocation :: FunPtr FuntypeBindAttribLocation -> FuntypeBindAttribLocation+glrefBindAttribLocation :: IORef FuntypeBindAttribLocation+glrefBindAttribLocation = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindAttribLocation #-}+glBindAttribLocation :: FuntypeBindAttribLocation+glBindAttribLocation = unsafePerformIO $ readIORef glrefBindAttribLocation+{-# INLINE glBindAttribLocation #-}+type FuntypeCompileShader =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompileShader :: FunPtr FuntypeCompileShader -> FuntypeCompileShader+glrefCompileShader :: IORef FuntypeCompileShader+glrefCompileShader = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompileShader #-}+glCompileShader :: FuntypeCompileShader+glCompileShader = unsafePerformIO $ readIORef glrefCompileShader+{-# INLINE glCompileShader #-}+type FuntypeCreateProgram =+ IO ( GLuint )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCreateProgram :: FunPtr FuntypeCreateProgram -> FuntypeCreateProgram+glrefCreateProgram :: IORef FuntypeCreateProgram+glrefCreateProgram = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCreateProgram #-}+glCreateProgram :: FuntypeCreateProgram+glCreateProgram = unsafePerformIO $ readIORef glrefCreateProgram+{-# INLINE glCreateProgram #-}+type FuntypeCreateShader =+ GLenum ->+ IO ( GLuint )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCreateShader :: FunPtr FuntypeCreateShader -> FuntypeCreateShader+glrefCreateShader :: IORef FuntypeCreateShader+glrefCreateShader = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCreateShader #-}+glCreateShader :: FuntypeCreateShader+glCreateShader = unsafePerformIO $ readIORef glrefCreateShader+{-# INLINE glCreateShader #-}+type FuntypeDeleteProgram =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDeleteProgram :: FunPtr FuntypeDeleteProgram -> FuntypeDeleteProgram+glrefDeleteProgram :: IORef FuntypeDeleteProgram+glrefDeleteProgram = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDeleteProgram #-}+glDeleteProgram :: FuntypeDeleteProgram+glDeleteProgram = unsafePerformIO $ readIORef glrefDeleteProgram+{-# INLINE glDeleteProgram #-}+type FuntypeDeleteShader =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDeleteShader :: FunPtr FuntypeDeleteShader -> FuntypeDeleteShader+glrefDeleteShader :: IORef FuntypeDeleteShader+glrefDeleteShader = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDeleteShader #-}+glDeleteShader :: FuntypeDeleteShader+glDeleteShader = unsafePerformIO $ readIORef glrefDeleteShader+{-# INLINE glDeleteShader #-}+type FuntypeDetachShader =+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDetachShader :: FunPtr FuntypeDetachShader -> FuntypeDetachShader+glrefDetachShader :: IORef FuntypeDetachShader+glrefDetachShader = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDetachShader #-}+glDetachShader :: FuntypeDetachShader+glDetachShader = unsafePerformIO $ readIORef glrefDetachShader+{-# INLINE glDetachShader #-}+type FuntypeDisableVertexAttribArray =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDisableVertexAttribArray :: FunPtr FuntypeDisableVertexAttribArray -> FuntypeDisableVertexAttribArray+glrefDisableVertexAttribArray :: IORef FuntypeDisableVertexAttribArray+glrefDisableVertexAttribArray = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDisableVertexAttribArray #-}+glDisableVertexAttribArray :: FuntypeDisableVertexAttribArray+glDisableVertexAttribArray = unsafePerformIO $ readIORef glrefDisableVertexAttribArray+{-# INLINE glDisableVertexAttribArray #-}+type FuntypeEnableVertexAttribArray =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynEnableVertexAttribArray :: FunPtr FuntypeEnableVertexAttribArray -> FuntypeEnableVertexAttribArray+glrefEnableVertexAttribArray :: IORef FuntypeEnableVertexAttribArray+glrefEnableVertexAttribArray = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefEnableVertexAttribArray #-}+glEnableVertexAttribArray :: FuntypeEnableVertexAttribArray+glEnableVertexAttribArray = unsafePerformIO $ readIORef glrefEnableVertexAttribArray+{-# INLINE glEnableVertexAttribArray #-}+type FuntypeGetActiveAttrib =+ GLuint ->+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLint) ->+ Ptr (GLenum) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetActiveAttrib :: FunPtr FuntypeGetActiveAttrib -> FuntypeGetActiveAttrib+glrefGetActiveAttrib :: IORef FuntypeGetActiveAttrib+glrefGetActiveAttrib = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetActiveAttrib #-}+glGetActiveAttrib :: FuntypeGetActiveAttrib+glGetActiveAttrib = unsafePerformIO $ readIORef glrefGetActiveAttrib+{-# INLINE glGetActiveAttrib #-}+type FuntypeGetActiveUniform =+ GLuint ->+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLint) ->+ Ptr (GLenum) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetActiveUniform :: FunPtr FuntypeGetActiveUniform -> FuntypeGetActiveUniform+glrefGetActiveUniform :: IORef FuntypeGetActiveUniform+glrefGetActiveUniform = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetActiveUniform #-}+glGetActiveUniform :: FuntypeGetActiveUniform+glGetActiveUniform = unsafePerformIO $ readIORef glrefGetActiveUniform+{-# INLINE glGetActiveUniform #-}+type FuntypeGetAttachedShaders =+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetAttachedShaders :: FunPtr FuntypeGetAttachedShaders -> FuntypeGetAttachedShaders+glrefGetAttachedShaders :: IORef FuntypeGetAttachedShaders+glrefGetAttachedShaders = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetAttachedShaders #-}+glGetAttachedShaders :: FuntypeGetAttachedShaders+glGetAttachedShaders = unsafePerformIO $ readIORef glrefGetAttachedShaders+{-# INLINE glGetAttachedShaders #-}+type FuntypeGetAttribLocation =+ GLuint ->+ Ptr (GLchar) ->+ IO ( GLint )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetAttribLocation :: FunPtr FuntypeGetAttribLocation -> FuntypeGetAttribLocation+glrefGetAttribLocation :: IORef FuntypeGetAttribLocation+glrefGetAttribLocation = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetAttribLocation #-}+glGetAttribLocation :: FuntypeGetAttribLocation+glGetAttribLocation = unsafePerformIO $ readIORef glrefGetAttribLocation+{-# INLINE glGetAttribLocation #-}+type FuntypeGetProgramiv =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetProgramiv :: FunPtr FuntypeGetProgramiv -> FuntypeGetProgramiv+glrefGetProgramiv :: IORef FuntypeGetProgramiv+glrefGetProgramiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetProgramiv #-}+glGetProgramiv :: FuntypeGetProgramiv+glGetProgramiv = unsafePerformIO $ readIORef glrefGetProgramiv+{-# INLINE glGetProgramiv #-}+type FuntypeGetProgramInfoLog =+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetProgramInfoLog :: FunPtr FuntypeGetProgramInfoLog -> FuntypeGetProgramInfoLog+glrefGetProgramInfoLog :: IORef FuntypeGetProgramInfoLog+glrefGetProgramInfoLog = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetProgramInfoLog #-}+glGetProgramInfoLog :: FuntypeGetProgramInfoLog+glGetProgramInfoLog = unsafePerformIO $ readIORef glrefGetProgramInfoLog+{-# INLINE glGetProgramInfoLog #-}+type FuntypeGetShaderiv =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetShaderiv :: FunPtr FuntypeGetShaderiv -> FuntypeGetShaderiv+glrefGetShaderiv :: IORef FuntypeGetShaderiv+glrefGetShaderiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetShaderiv #-}+glGetShaderiv :: FuntypeGetShaderiv+glGetShaderiv = unsafePerformIO $ readIORef glrefGetShaderiv+{-# INLINE glGetShaderiv #-}+type FuntypeGetShaderInfoLog =+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetShaderInfoLog :: FunPtr FuntypeGetShaderInfoLog -> FuntypeGetShaderInfoLog+glrefGetShaderInfoLog :: IORef FuntypeGetShaderInfoLog+glrefGetShaderInfoLog = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetShaderInfoLog #-}+glGetShaderInfoLog :: FuntypeGetShaderInfoLog+glGetShaderInfoLog = unsafePerformIO $ readIORef glrefGetShaderInfoLog+{-# INLINE glGetShaderInfoLog #-}+type FuntypeGetShaderSource =+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetShaderSource :: FunPtr FuntypeGetShaderSource -> FuntypeGetShaderSource+glrefGetShaderSource :: IORef FuntypeGetShaderSource+glrefGetShaderSource = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetShaderSource #-}+glGetShaderSource :: FuntypeGetShaderSource+glGetShaderSource = unsafePerformIO $ readIORef glrefGetShaderSource+{-# INLINE glGetShaderSource #-}+type FuntypeGetUniformLocation =+ GLuint ->+ Ptr (GLchar) ->+ IO ( GLint )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetUniformLocation :: FunPtr FuntypeGetUniformLocation -> FuntypeGetUniformLocation+glrefGetUniformLocation :: IORef FuntypeGetUniformLocation+glrefGetUniformLocation = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetUniformLocation #-}+glGetUniformLocation :: FuntypeGetUniformLocation+glGetUniformLocation = unsafePerformIO $ readIORef glrefGetUniformLocation+{-# INLINE glGetUniformLocation #-}+type FuntypeGetUniformfv =+ GLuint ->+ GLint ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetUniformfv :: FunPtr FuntypeGetUniformfv -> FuntypeGetUniformfv+glrefGetUniformfv :: IORef FuntypeGetUniformfv+glrefGetUniformfv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetUniformfv #-}+glGetUniformfv :: FuntypeGetUniformfv+glGetUniformfv = unsafePerformIO $ readIORef glrefGetUniformfv+{-# INLINE glGetUniformfv #-}+type FuntypeGetUniformiv =+ GLuint ->+ GLint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetUniformiv :: FunPtr FuntypeGetUniformiv -> FuntypeGetUniformiv+glrefGetUniformiv :: IORef FuntypeGetUniformiv+glrefGetUniformiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetUniformiv #-}+glGetUniformiv :: FuntypeGetUniformiv+glGetUniformiv = unsafePerformIO $ readIORef glrefGetUniformiv+{-# INLINE glGetUniformiv #-}+type FuntypeGetVertexAttribdv =+ GLuint ->+ GLenum ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetVertexAttribdv :: FunPtr FuntypeGetVertexAttribdv -> FuntypeGetVertexAttribdv+glrefGetVertexAttribdv :: IORef FuntypeGetVertexAttribdv+glrefGetVertexAttribdv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetVertexAttribdv #-}+glGetVertexAttribdv :: FuntypeGetVertexAttribdv+glGetVertexAttribdv = unsafePerformIO $ readIORef glrefGetVertexAttribdv+{-# INLINE glGetVertexAttribdv #-}+type FuntypeGetVertexAttribfv =+ GLuint ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetVertexAttribfv :: FunPtr FuntypeGetVertexAttribfv -> FuntypeGetVertexAttribfv+glrefGetVertexAttribfv :: IORef FuntypeGetVertexAttribfv+glrefGetVertexAttribfv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetVertexAttribfv #-}+glGetVertexAttribfv :: FuntypeGetVertexAttribfv+glGetVertexAttribfv = unsafePerformIO $ readIORef glrefGetVertexAttribfv+{-# INLINE glGetVertexAttribfv #-}+type FuntypeGetVertexAttribiv =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetVertexAttribiv :: FunPtr FuntypeGetVertexAttribiv -> FuntypeGetVertexAttribiv+glrefGetVertexAttribiv :: IORef FuntypeGetVertexAttribiv+glrefGetVertexAttribiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetVertexAttribiv #-}+glGetVertexAttribiv :: FuntypeGetVertexAttribiv+glGetVertexAttribiv = unsafePerformIO $ readIORef glrefGetVertexAttribiv+{-# INLINE glGetVertexAttribiv #-}+type FuntypeGetVertexAttribPointerv =+ GLuint ->+ GLenum ->+ Ptr (Ptr ()) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetVertexAttribPointerv :: FunPtr FuntypeGetVertexAttribPointerv -> FuntypeGetVertexAttribPointerv+glrefGetVertexAttribPointerv :: IORef FuntypeGetVertexAttribPointerv+glrefGetVertexAttribPointerv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetVertexAttribPointerv #-}+glGetVertexAttribPointerv :: FuntypeGetVertexAttribPointerv+glGetVertexAttribPointerv = unsafePerformIO $ readIORef glrefGetVertexAttribPointerv+{-# INLINE glGetVertexAttribPointerv #-}+type FuntypeIsProgram =+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsProgram :: FunPtr FuntypeIsProgram -> FuntypeIsProgram+glrefIsProgram :: IORef FuntypeIsProgram+glrefIsProgram = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsProgram #-}+glIsProgram :: FuntypeIsProgram+glIsProgram = unsafePerformIO $ readIORef glrefIsProgram+{-# INLINE glIsProgram #-}+type FuntypeIsShader =+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsShader :: FunPtr FuntypeIsShader -> FuntypeIsShader+glrefIsShader :: IORef FuntypeIsShader+glrefIsShader = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsShader #-}+glIsShader :: FuntypeIsShader+glIsShader = unsafePerformIO $ readIORef glrefIsShader+{-# INLINE glIsShader #-}+type FuntypeLinkProgram =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynLinkProgram :: FunPtr FuntypeLinkProgram -> FuntypeLinkProgram+glrefLinkProgram :: IORef FuntypeLinkProgram+glrefLinkProgram = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefLinkProgram #-}+glLinkProgram :: FuntypeLinkProgram+glLinkProgram = unsafePerformIO $ readIORef glrefLinkProgram+{-# INLINE glLinkProgram #-}+type FuntypeShaderSource =+ GLuint ->+ GLsizei ->+ Ptr (Ptr (GLchar)) ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynShaderSource :: FunPtr FuntypeShaderSource -> FuntypeShaderSource+glrefShaderSource :: IORef FuntypeShaderSource+glrefShaderSource = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefShaderSource #-}+glShaderSource :: FuntypeShaderSource+glShaderSource = unsafePerformIO $ readIORef glrefShaderSource+{-# INLINE glShaderSource #-}+type FuntypeUseProgram =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUseProgram :: FunPtr FuntypeUseProgram -> FuntypeUseProgram+glrefUseProgram :: IORef FuntypeUseProgram+glrefUseProgram = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUseProgram #-}+glUseProgram :: FuntypeUseProgram+glUseProgram = unsafePerformIO $ readIORef glrefUseProgram+{-# INLINE glUseProgram #-}+type FuntypeUniform1f =+ GLint ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform1f :: FunPtr FuntypeUniform1f -> FuntypeUniform1f+glrefUniform1f :: IORef FuntypeUniform1f+glrefUniform1f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform1f #-}+glUniform1f :: FuntypeUniform1f+glUniform1f = unsafePerformIO $ readIORef glrefUniform1f+{-# INLINE glUniform1f #-}+type FuntypeUniform2f =+ GLint ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform2f :: FunPtr FuntypeUniform2f -> FuntypeUniform2f+glrefUniform2f :: IORef FuntypeUniform2f+glrefUniform2f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform2f #-}+glUniform2f :: FuntypeUniform2f+glUniform2f = unsafePerformIO $ readIORef glrefUniform2f+{-# INLINE glUniform2f #-}+type FuntypeUniform3f =+ GLint ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform3f :: FunPtr FuntypeUniform3f -> FuntypeUniform3f+glrefUniform3f :: IORef FuntypeUniform3f+glrefUniform3f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform3f #-}+glUniform3f :: FuntypeUniform3f+glUniform3f = unsafePerformIO $ readIORef glrefUniform3f+{-# INLINE glUniform3f #-}+type FuntypeUniform4f =+ GLint ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform4f :: FunPtr FuntypeUniform4f -> FuntypeUniform4f+glrefUniform4f :: IORef FuntypeUniform4f+glrefUniform4f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform4f #-}+glUniform4f :: FuntypeUniform4f+glUniform4f = unsafePerformIO $ readIORef glrefUniform4f+{-# INLINE glUniform4f #-}+type FuntypeUniform1i =+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform1i :: FunPtr FuntypeUniform1i -> FuntypeUniform1i+glrefUniform1i :: IORef FuntypeUniform1i+glrefUniform1i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform1i #-}+glUniform1i :: FuntypeUniform1i+glUniform1i = unsafePerformIO $ readIORef glrefUniform1i+{-# INLINE glUniform1i #-}+type FuntypeUniform2i =+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform2i :: FunPtr FuntypeUniform2i -> FuntypeUniform2i+glrefUniform2i :: IORef FuntypeUniform2i+glrefUniform2i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform2i #-}+glUniform2i :: FuntypeUniform2i+glUniform2i = unsafePerformIO $ readIORef glrefUniform2i+{-# INLINE glUniform2i #-}+type FuntypeUniform3i =+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform3i :: FunPtr FuntypeUniform3i -> FuntypeUniform3i+glrefUniform3i :: IORef FuntypeUniform3i+glrefUniform3i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform3i #-}+glUniform3i :: FuntypeUniform3i+glUniform3i = unsafePerformIO $ readIORef glrefUniform3i+{-# INLINE glUniform3i #-}+type FuntypeUniform4i =+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform4i :: FunPtr FuntypeUniform4i -> FuntypeUniform4i+glrefUniform4i :: IORef FuntypeUniform4i+glrefUniform4i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform4i #-}+glUniform4i :: FuntypeUniform4i+glUniform4i = unsafePerformIO $ readIORef glrefUniform4i+{-# INLINE glUniform4i #-}+type FuntypeUniform1fv =+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform1fv :: FunPtr FuntypeUniform1fv -> FuntypeUniform1fv+glrefUniform1fv :: IORef FuntypeUniform1fv+glrefUniform1fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform1fv #-}+glUniform1fv :: FuntypeUniform1fv+glUniform1fv = unsafePerformIO $ readIORef glrefUniform1fv+{-# INLINE glUniform1fv #-}+type FuntypeUniform2fv =+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform2fv :: FunPtr FuntypeUniform2fv -> FuntypeUniform2fv+glrefUniform2fv :: IORef FuntypeUniform2fv+glrefUniform2fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform2fv #-}+glUniform2fv :: FuntypeUniform2fv+glUniform2fv = unsafePerformIO $ readIORef glrefUniform2fv+{-# INLINE glUniform2fv #-}+type FuntypeUniform3fv =+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform3fv :: FunPtr FuntypeUniform3fv -> FuntypeUniform3fv+glrefUniform3fv :: IORef FuntypeUniform3fv+glrefUniform3fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform3fv #-}+glUniform3fv :: FuntypeUniform3fv+glUniform3fv = unsafePerformIO $ readIORef glrefUniform3fv+{-# INLINE glUniform3fv #-}+type FuntypeUniform4fv =+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform4fv :: FunPtr FuntypeUniform4fv -> FuntypeUniform4fv+glrefUniform4fv :: IORef FuntypeUniform4fv+glrefUniform4fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform4fv #-}+glUniform4fv :: FuntypeUniform4fv+glUniform4fv = unsafePerformIO $ readIORef glrefUniform4fv+{-# INLINE glUniform4fv #-}+type FuntypeUniform1iv =+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform1iv :: FunPtr FuntypeUniform1iv -> FuntypeUniform1iv+glrefUniform1iv :: IORef FuntypeUniform1iv+glrefUniform1iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform1iv #-}+glUniform1iv :: FuntypeUniform1iv+glUniform1iv = unsafePerformIO $ readIORef glrefUniform1iv+{-# INLINE glUniform1iv #-}+type FuntypeUniform2iv =+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform2iv :: FunPtr FuntypeUniform2iv -> FuntypeUniform2iv+glrefUniform2iv :: IORef FuntypeUniform2iv+glrefUniform2iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform2iv #-}+glUniform2iv :: FuntypeUniform2iv+glUniform2iv = unsafePerformIO $ readIORef glrefUniform2iv+{-# INLINE glUniform2iv #-}+type FuntypeUniform3iv =+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform3iv :: FunPtr FuntypeUniform3iv -> FuntypeUniform3iv+glrefUniform3iv :: IORef FuntypeUniform3iv+glrefUniform3iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform3iv #-}+glUniform3iv :: FuntypeUniform3iv+glUniform3iv = unsafePerformIO $ readIORef glrefUniform3iv+{-# INLINE glUniform3iv #-}+type FuntypeUniform4iv =+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform4iv :: FunPtr FuntypeUniform4iv -> FuntypeUniform4iv+glrefUniform4iv :: IORef FuntypeUniform4iv+glrefUniform4iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform4iv #-}+glUniform4iv :: FuntypeUniform4iv+glUniform4iv = unsafePerformIO $ readIORef glrefUniform4iv+{-# INLINE glUniform4iv #-}+type FuntypeUniformMatrix2fv =+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniformMatrix2fv :: FunPtr FuntypeUniformMatrix2fv -> FuntypeUniformMatrix2fv+glrefUniformMatrix2fv :: IORef FuntypeUniformMatrix2fv+glrefUniformMatrix2fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniformMatrix2fv #-}+glUniformMatrix2fv :: FuntypeUniformMatrix2fv+glUniformMatrix2fv = unsafePerformIO $ readIORef glrefUniformMatrix2fv+{-# INLINE glUniformMatrix2fv #-}+type FuntypeUniformMatrix3fv =+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniformMatrix3fv :: FunPtr FuntypeUniformMatrix3fv -> FuntypeUniformMatrix3fv+glrefUniformMatrix3fv :: IORef FuntypeUniformMatrix3fv+glrefUniformMatrix3fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniformMatrix3fv #-}+glUniformMatrix3fv :: FuntypeUniformMatrix3fv+glUniformMatrix3fv = unsafePerformIO $ readIORef glrefUniformMatrix3fv+{-# INLINE glUniformMatrix3fv #-}+type FuntypeUniformMatrix4fv =+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniformMatrix4fv :: FunPtr FuntypeUniformMatrix4fv -> FuntypeUniformMatrix4fv+glrefUniformMatrix4fv :: IORef FuntypeUniformMatrix4fv+glrefUniformMatrix4fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniformMatrix4fv #-}+glUniformMatrix4fv :: FuntypeUniformMatrix4fv+glUniformMatrix4fv = unsafePerformIO $ readIORef glrefUniformMatrix4fv+{-# INLINE glUniformMatrix4fv #-}+type FuntypeValidateProgram =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynValidateProgram :: FunPtr FuntypeValidateProgram -> FuntypeValidateProgram+glrefValidateProgram :: IORef FuntypeValidateProgram+glrefValidateProgram = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefValidateProgram #-}+glValidateProgram :: FuntypeValidateProgram+glValidateProgram = unsafePerformIO $ readIORef glrefValidateProgram+{-# INLINE glValidateProgram #-}+type FuntypeVertexAttrib1d =+ GLuint ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib1d :: FunPtr FuntypeVertexAttrib1d -> FuntypeVertexAttrib1d+glrefVertexAttrib1d :: IORef FuntypeVertexAttrib1d+glrefVertexAttrib1d = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib1d #-}+glVertexAttrib1d :: FuntypeVertexAttrib1d+glVertexAttrib1d = unsafePerformIO $ readIORef glrefVertexAttrib1d+{-# INLINE glVertexAttrib1d #-}+type FuntypeVertexAttrib1dv =+ GLuint ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib1dv :: FunPtr FuntypeVertexAttrib1dv -> FuntypeVertexAttrib1dv+glrefVertexAttrib1dv :: IORef FuntypeVertexAttrib1dv+glrefVertexAttrib1dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib1dv #-}+glVertexAttrib1dv :: FuntypeVertexAttrib1dv+glVertexAttrib1dv = unsafePerformIO $ readIORef glrefVertexAttrib1dv+{-# INLINE glVertexAttrib1dv #-}+type FuntypeVertexAttrib1f =+ GLuint ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib1f :: FunPtr FuntypeVertexAttrib1f -> FuntypeVertexAttrib1f+glrefVertexAttrib1f :: IORef FuntypeVertexAttrib1f+glrefVertexAttrib1f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib1f #-}+glVertexAttrib1f :: FuntypeVertexAttrib1f+glVertexAttrib1f = unsafePerformIO $ readIORef glrefVertexAttrib1f+{-# INLINE glVertexAttrib1f #-}+type FuntypeVertexAttrib1fv =+ GLuint ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib1fv :: FunPtr FuntypeVertexAttrib1fv -> FuntypeVertexAttrib1fv+glrefVertexAttrib1fv :: IORef FuntypeVertexAttrib1fv+glrefVertexAttrib1fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib1fv #-}+glVertexAttrib1fv :: FuntypeVertexAttrib1fv+glVertexAttrib1fv = unsafePerformIO $ readIORef glrefVertexAttrib1fv+{-# INLINE glVertexAttrib1fv #-}+type FuntypeVertexAttrib1s =+ GLuint ->+ GLshort ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib1s :: FunPtr FuntypeVertexAttrib1s -> FuntypeVertexAttrib1s+glrefVertexAttrib1s :: IORef FuntypeVertexAttrib1s+glrefVertexAttrib1s = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib1s #-}+glVertexAttrib1s :: FuntypeVertexAttrib1s+glVertexAttrib1s = unsafePerformIO $ readIORef glrefVertexAttrib1s+{-# INLINE glVertexAttrib1s #-}+type FuntypeVertexAttrib1sv =+ GLuint ->+ Ptr (GLshort) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib1sv :: FunPtr FuntypeVertexAttrib1sv -> FuntypeVertexAttrib1sv+glrefVertexAttrib1sv :: IORef FuntypeVertexAttrib1sv+glrefVertexAttrib1sv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib1sv #-}+glVertexAttrib1sv :: FuntypeVertexAttrib1sv+glVertexAttrib1sv = unsafePerformIO $ readIORef glrefVertexAttrib1sv+{-# INLINE glVertexAttrib1sv #-}+type FuntypeVertexAttrib2d =+ GLuint ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib2d :: FunPtr FuntypeVertexAttrib2d -> FuntypeVertexAttrib2d+glrefVertexAttrib2d :: IORef FuntypeVertexAttrib2d+glrefVertexAttrib2d = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib2d #-}+glVertexAttrib2d :: FuntypeVertexAttrib2d+glVertexAttrib2d = unsafePerformIO $ readIORef glrefVertexAttrib2d+{-# INLINE glVertexAttrib2d #-}+type FuntypeVertexAttrib2dv =+ GLuint ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib2dv :: FunPtr FuntypeVertexAttrib2dv -> FuntypeVertexAttrib2dv+glrefVertexAttrib2dv :: IORef FuntypeVertexAttrib2dv+glrefVertexAttrib2dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib2dv #-}+glVertexAttrib2dv :: FuntypeVertexAttrib2dv+glVertexAttrib2dv = unsafePerformIO $ readIORef glrefVertexAttrib2dv+{-# INLINE glVertexAttrib2dv #-}+type FuntypeVertexAttrib2f =+ GLuint ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib2f :: FunPtr FuntypeVertexAttrib2f -> FuntypeVertexAttrib2f+glrefVertexAttrib2f :: IORef FuntypeVertexAttrib2f+glrefVertexAttrib2f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib2f #-}+glVertexAttrib2f :: FuntypeVertexAttrib2f+glVertexAttrib2f = unsafePerformIO $ readIORef glrefVertexAttrib2f+{-# INLINE glVertexAttrib2f #-}+type FuntypeVertexAttrib2fv =+ GLuint ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib2fv :: FunPtr FuntypeVertexAttrib2fv -> FuntypeVertexAttrib2fv+glrefVertexAttrib2fv :: IORef FuntypeVertexAttrib2fv+glrefVertexAttrib2fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib2fv #-}+glVertexAttrib2fv :: FuntypeVertexAttrib2fv+glVertexAttrib2fv = unsafePerformIO $ readIORef glrefVertexAttrib2fv+{-# INLINE glVertexAttrib2fv #-}+type FuntypeVertexAttrib2s =+ GLuint ->+ GLshort ->+ GLshort ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib2s :: FunPtr FuntypeVertexAttrib2s -> FuntypeVertexAttrib2s+glrefVertexAttrib2s :: IORef FuntypeVertexAttrib2s+glrefVertexAttrib2s = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib2s #-}+glVertexAttrib2s :: FuntypeVertexAttrib2s+glVertexAttrib2s = unsafePerformIO $ readIORef glrefVertexAttrib2s+{-# INLINE glVertexAttrib2s #-}+type FuntypeVertexAttrib2sv =+ GLuint ->+ Ptr (GLshort) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib2sv :: FunPtr FuntypeVertexAttrib2sv -> FuntypeVertexAttrib2sv+glrefVertexAttrib2sv :: IORef FuntypeVertexAttrib2sv+glrefVertexAttrib2sv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib2sv #-}+glVertexAttrib2sv :: FuntypeVertexAttrib2sv+glVertexAttrib2sv = unsafePerformIO $ readIORef glrefVertexAttrib2sv+{-# INLINE glVertexAttrib2sv #-}+type FuntypeVertexAttrib3d =+ GLuint ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib3d :: FunPtr FuntypeVertexAttrib3d -> FuntypeVertexAttrib3d+glrefVertexAttrib3d :: IORef FuntypeVertexAttrib3d+glrefVertexAttrib3d = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib3d #-}+glVertexAttrib3d :: FuntypeVertexAttrib3d+glVertexAttrib3d = unsafePerformIO $ readIORef glrefVertexAttrib3d+{-# INLINE glVertexAttrib3d #-}+type FuntypeVertexAttrib3dv =+ GLuint ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib3dv :: FunPtr FuntypeVertexAttrib3dv -> FuntypeVertexAttrib3dv+glrefVertexAttrib3dv :: IORef FuntypeVertexAttrib3dv+glrefVertexAttrib3dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib3dv #-}+glVertexAttrib3dv :: FuntypeVertexAttrib3dv+glVertexAttrib3dv = unsafePerformIO $ readIORef glrefVertexAttrib3dv+{-# INLINE glVertexAttrib3dv #-}+type FuntypeVertexAttrib3f =+ GLuint ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib3f :: FunPtr FuntypeVertexAttrib3f -> FuntypeVertexAttrib3f+glrefVertexAttrib3f :: IORef FuntypeVertexAttrib3f+glrefVertexAttrib3f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib3f #-}+glVertexAttrib3f :: FuntypeVertexAttrib3f+glVertexAttrib3f = unsafePerformIO $ readIORef glrefVertexAttrib3f+{-# INLINE glVertexAttrib3f #-}+type FuntypeVertexAttrib3fv =+ GLuint ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib3fv :: FunPtr FuntypeVertexAttrib3fv -> FuntypeVertexAttrib3fv+glrefVertexAttrib3fv :: IORef FuntypeVertexAttrib3fv+glrefVertexAttrib3fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib3fv #-}+glVertexAttrib3fv :: FuntypeVertexAttrib3fv+glVertexAttrib3fv = unsafePerformIO $ readIORef glrefVertexAttrib3fv+{-# INLINE glVertexAttrib3fv #-}+type FuntypeVertexAttrib3s =+ GLuint ->+ GLshort ->+ GLshort ->+ GLshort ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib3s :: FunPtr FuntypeVertexAttrib3s -> FuntypeVertexAttrib3s+glrefVertexAttrib3s :: IORef FuntypeVertexAttrib3s+glrefVertexAttrib3s = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib3s #-}+glVertexAttrib3s :: FuntypeVertexAttrib3s+glVertexAttrib3s = unsafePerformIO $ readIORef glrefVertexAttrib3s+{-# INLINE glVertexAttrib3s #-}+type FuntypeVertexAttrib3sv =+ GLuint ->+ Ptr (GLshort) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib3sv :: FunPtr FuntypeVertexAttrib3sv -> FuntypeVertexAttrib3sv+glrefVertexAttrib3sv :: IORef FuntypeVertexAttrib3sv+glrefVertexAttrib3sv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib3sv #-}+glVertexAttrib3sv :: FuntypeVertexAttrib3sv+glVertexAttrib3sv = unsafePerformIO $ readIORef glrefVertexAttrib3sv+{-# INLINE glVertexAttrib3sv #-}+type FuntypeVertexAttrib4Nbv =+ GLuint ->+ Ptr (GLbyte) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4Nbv :: FunPtr FuntypeVertexAttrib4Nbv -> FuntypeVertexAttrib4Nbv+glrefVertexAttrib4Nbv :: IORef FuntypeVertexAttrib4Nbv+glrefVertexAttrib4Nbv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4Nbv #-}+glVertexAttrib4Nbv :: FuntypeVertexAttrib4Nbv+glVertexAttrib4Nbv = unsafePerformIO $ readIORef glrefVertexAttrib4Nbv+{-# INLINE glVertexAttrib4Nbv #-}+type FuntypeVertexAttrib4Niv =+ GLuint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4Niv :: FunPtr FuntypeVertexAttrib4Niv -> FuntypeVertexAttrib4Niv+glrefVertexAttrib4Niv :: IORef FuntypeVertexAttrib4Niv+glrefVertexAttrib4Niv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4Niv #-}+glVertexAttrib4Niv :: FuntypeVertexAttrib4Niv+glVertexAttrib4Niv = unsafePerformIO $ readIORef glrefVertexAttrib4Niv+{-# INLINE glVertexAttrib4Niv #-}+type FuntypeVertexAttrib4Nsv =+ GLuint ->+ Ptr (GLshort) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4Nsv :: FunPtr FuntypeVertexAttrib4Nsv -> FuntypeVertexAttrib4Nsv+glrefVertexAttrib4Nsv :: IORef FuntypeVertexAttrib4Nsv+glrefVertexAttrib4Nsv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4Nsv #-}+glVertexAttrib4Nsv :: FuntypeVertexAttrib4Nsv+glVertexAttrib4Nsv = unsafePerformIO $ readIORef glrefVertexAttrib4Nsv+{-# INLINE glVertexAttrib4Nsv #-}+type FuntypeVertexAttrib4Nub =+ GLuint ->+ GLubyte ->+ GLubyte ->+ GLubyte ->+ GLubyte ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4Nub :: FunPtr FuntypeVertexAttrib4Nub -> FuntypeVertexAttrib4Nub+glrefVertexAttrib4Nub :: IORef FuntypeVertexAttrib4Nub+glrefVertexAttrib4Nub = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4Nub #-}+glVertexAttrib4Nub :: FuntypeVertexAttrib4Nub+glVertexAttrib4Nub = unsafePerformIO $ readIORef glrefVertexAttrib4Nub+{-# INLINE glVertexAttrib4Nub #-}+type FuntypeVertexAttrib4Nubv =+ GLuint ->+ Ptr (GLubyte) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4Nubv :: FunPtr FuntypeVertexAttrib4Nubv -> FuntypeVertexAttrib4Nubv+glrefVertexAttrib4Nubv :: IORef FuntypeVertexAttrib4Nubv+glrefVertexAttrib4Nubv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4Nubv #-}+glVertexAttrib4Nubv :: FuntypeVertexAttrib4Nubv+glVertexAttrib4Nubv = unsafePerformIO $ readIORef glrefVertexAttrib4Nubv+{-# INLINE glVertexAttrib4Nubv #-}+type FuntypeVertexAttrib4Nuiv =+ GLuint ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4Nuiv :: FunPtr FuntypeVertexAttrib4Nuiv -> FuntypeVertexAttrib4Nuiv+glrefVertexAttrib4Nuiv :: IORef FuntypeVertexAttrib4Nuiv+glrefVertexAttrib4Nuiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4Nuiv #-}+glVertexAttrib4Nuiv :: FuntypeVertexAttrib4Nuiv+glVertexAttrib4Nuiv = unsafePerformIO $ readIORef glrefVertexAttrib4Nuiv+{-# INLINE glVertexAttrib4Nuiv #-}+type FuntypeVertexAttrib4Nusv =+ GLuint ->+ Ptr (GLushort) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4Nusv :: FunPtr FuntypeVertexAttrib4Nusv -> FuntypeVertexAttrib4Nusv+glrefVertexAttrib4Nusv :: IORef FuntypeVertexAttrib4Nusv+glrefVertexAttrib4Nusv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4Nusv #-}+glVertexAttrib4Nusv :: FuntypeVertexAttrib4Nusv+glVertexAttrib4Nusv = unsafePerformIO $ readIORef glrefVertexAttrib4Nusv+{-# INLINE glVertexAttrib4Nusv #-}+type FuntypeVertexAttrib4bv =+ GLuint ->+ Ptr (GLbyte) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4bv :: FunPtr FuntypeVertexAttrib4bv -> FuntypeVertexAttrib4bv+glrefVertexAttrib4bv :: IORef FuntypeVertexAttrib4bv+glrefVertexAttrib4bv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4bv #-}+glVertexAttrib4bv :: FuntypeVertexAttrib4bv+glVertexAttrib4bv = unsafePerformIO $ readIORef glrefVertexAttrib4bv+{-# INLINE glVertexAttrib4bv #-}+type FuntypeVertexAttrib4d =+ GLuint ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4d :: FunPtr FuntypeVertexAttrib4d -> FuntypeVertexAttrib4d+glrefVertexAttrib4d :: IORef FuntypeVertexAttrib4d+glrefVertexAttrib4d = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4d #-}+glVertexAttrib4d :: FuntypeVertexAttrib4d+glVertexAttrib4d = unsafePerformIO $ readIORef glrefVertexAttrib4d+{-# INLINE glVertexAttrib4d #-}+type FuntypeVertexAttrib4dv =+ GLuint ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4dv :: FunPtr FuntypeVertexAttrib4dv -> FuntypeVertexAttrib4dv+glrefVertexAttrib4dv :: IORef FuntypeVertexAttrib4dv+glrefVertexAttrib4dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4dv #-}+glVertexAttrib4dv :: FuntypeVertexAttrib4dv+glVertexAttrib4dv = unsafePerformIO $ readIORef glrefVertexAttrib4dv+{-# INLINE glVertexAttrib4dv #-}+type FuntypeVertexAttrib4f =+ GLuint ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4f :: FunPtr FuntypeVertexAttrib4f -> FuntypeVertexAttrib4f+glrefVertexAttrib4f :: IORef FuntypeVertexAttrib4f+glrefVertexAttrib4f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4f #-}+glVertexAttrib4f :: FuntypeVertexAttrib4f+glVertexAttrib4f = unsafePerformIO $ readIORef glrefVertexAttrib4f+{-# INLINE glVertexAttrib4f #-}+type FuntypeVertexAttrib4fv =+ GLuint ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4fv :: FunPtr FuntypeVertexAttrib4fv -> FuntypeVertexAttrib4fv+glrefVertexAttrib4fv :: IORef FuntypeVertexAttrib4fv+glrefVertexAttrib4fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4fv #-}+glVertexAttrib4fv :: FuntypeVertexAttrib4fv+glVertexAttrib4fv = unsafePerformIO $ readIORef glrefVertexAttrib4fv+{-# INLINE glVertexAttrib4fv #-}+type FuntypeVertexAttrib4iv =+ GLuint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4iv :: FunPtr FuntypeVertexAttrib4iv -> FuntypeVertexAttrib4iv+glrefVertexAttrib4iv :: IORef FuntypeVertexAttrib4iv+glrefVertexAttrib4iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4iv #-}+glVertexAttrib4iv :: FuntypeVertexAttrib4iv+glVertexAttrib4iv = unsafePerformIO $ readIORef glrefVertexAttrib4iv+{-# INLINE glVertexAttrib4iv #-}+type FuntypeVertexAttrib4s =+ GLuint ->+ GLshort ->+ GLshort ->+ GLshort ->+ GLshort ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4s :: FunPtr FuntypeVertexAttrib4s -> FuntypeVertexAttrib4s+glrefVertexAttrib4s :: IORef FuntypeVertexAttrib4s+glrefVertexAttrib4s = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4s #-}+glVertexAttrib4s :: FuntypeVertexAttrib4s+glVertexAttrib4s = unsafePerformIO $ readIORef glrefVertexAttrib4s+{-# INLINE glVertexAttrib4s #-}+type FuntypeVertexAttrib4sv =+ GLuint ->+ Ptr (GLshort) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4sv :: FunPtr FuntypeVertexAttrib4sv -> FuntypeVertexAttrib4sv+glrefVertexAttrib4sv :: IORef FuntypeVertexAttrib4sv+glrefVertexAttrib4sv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4sv #-}+glVertexAttrib4sv :: FuntypeVertexAttrib4sv+glVertexAttrib4sv = unsafePerformIO $ readIORef glrefVertexAttrib4sv+{-# INLINE glVertexAttrib4sv #-}+type FuntypeVertexAttrib4ubv =+ GLuint ->+ Ptr (GLubyte) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4ubv :: FunPtr FuntypeVertexAttrib4ubv -> FuntypeVertexAttrib4ubv+glrefVertexAttrib4ubv :: IORef FuntypeVertexAttrib4ubv+glrefVertexAttrib4ubv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4ubv #-}+glVertexAttrib4ubv :: FuntypeVertexAttrib4ubv+glVertexAttrib4ubv = unsafePerformIO $ readIORef glrefVertexAttrib4ubv+{-# INLINE glVertexAttrib4ubv #-}+type FuntypeVertexAttrib4uiv =+ GLuint ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4uiv :: FunPtr FuntypeVertexAttrib4uiv -> FuntypeVertexAttrib4uiv+glrefVertexAttrib4uiv :: IORef FuntypeVertexAttrib4uiv+glrefVertexAttrib4uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4uiv #-}+glVertexAttrib4uiv :: FuntypeVertexAttrib4uiv+glVertexAttrib4uiv = unsafePerformIO $ readIORef glrefVertexAttrib4uiv+{-# INLINE glVertexAttrib4uiv #-}+type FuntypeVertexAttrib4usv =+ GLuint ->+ Ptr (GLushort) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttrib4usv :: FunPtr FuntypeVertexAttrib4usv -> FuntypeVertexAttrib4usv+glrefVertexAttrib4usv :: IORef FuntypeVertexAttrib4usv+glrefVertexAttrib4usv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttrib4usv #-}+glVertexAttrib4usv :: FuntypeVertexAttrib4usv+glVertexAttrib4usv = unsafePerformIO $ readIORef glrefVertexAttrib4usv+{-# INLINE glVertexAttrib4usv #-}+type FuntypeVertexAttribPointer =+ GLuint ->+ GLint ->+ GLenum ->+ GLboolean ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribPointer :: FunPtr FuntypeVertexAttribPointer -> FuntypeVertexAttribPointer+glrefVertexAttribPointer :: IORef FuntypeVertexAttribPointer+glrefVertexAttribPointer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribPointer #-}+glVertexAttribPointer :: FuntypeVertexAttribPointer+glVertexAttribPointer = unsafePerformIO $ readIORef glrefVertexAttribPointer+{-# INLINE glVertexAttribPointer #-}++-- GL_VERSION_2_1++type FuntypeUniformMatrix2x3fv =+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniformMatrix2x3fv :: FunPtr FuntypeUniformMatrix2x3fv -> FuntypeUniformMatrix2x3fv+glrefUniformMatrix2x3fv :: IORef FuntypeUniformMatrix2x3fv+glrefUniformMatrix2x3fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniformMatrix2x3fv #-}+glUniformMatrix2x3fv :: FuntypeUniformMatrix2x3fv+glUniformMatrix2x3fv = unsafePerformIO $ readIORef glrefUniformMatrix2x3fv+{-# INLINE glUniformMatrix2x3fv #-}+type FuntypeUniformMatrix3x2fv =+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniformMatrix3x2fv :: FunPtr FuntypeUniformMatrix3x2fv -> FuntypeUniformMatrix3x2fv+glrefUniformMatrix3x2fv :: IORef FuntypeUniformMatrix3x2fv+glrefUniformMatrix3x2fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniformMatrix3x2fv #-}+glUniformMatrix3x2fv :: FuntypeUniformMatrix3x2fv+glUniformMatrix3x2fv = unsafePerformIO $ readIORef glrefUniformMatrix3x2fv+{-# INLINE glUniformMatrix3x2fv #-}+type FuntypeUniformMatrix2x4fv =+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniformMatrix2x4fv :: FunPtr FuntypeUniformMatrix2x4fv -> FuntypeUniformMatrix2x4fv+glrefUniformMatrix2x4fv :: IORef FuntypeUniformMatrix2x4fv+glrefUniformMatrix2x4fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniformMatrix2x4fv #-}+glUniformMatrix2x4fv :: FuntypeUniformMatrix2x4fv+glUniformMatrix2x4fv = unsafePerformIO $ readIORef glrefUniformMatrix2x4fv+{-# INLINE glUniformMatrix2x4fv #-}+type FuntypeUniformMatrix4x2fv =+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniformMatrix4x2fv :: FunPtr FuntypeUniformMatrix4x2fv -> FuntypeUniformMatrix4x2fv+glrefUniformMatrix4x2fv :: IORef FuntypeUniformMatrix4x2fv+glrefUniformMatrix4x2fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniformMatrix4x2fv #-}+glUniformMatrix4x2fv :: FuntypeUniformMatrix4x2fv+glUniformMatrix4x2fv = unsafePerformIO $ readIORef glrefUniformMatrix4x2fv+{-# INLINE glUniformMatrix4x2fv #-}+type FuntypeUniformMatrix3x4fv =+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniformMatrix3x4fv :: FunPtr FuntypeUniformMatrix3x4fv -> FuntypeUniformMatrix3x4fv+glrefUniformMatrix3x4fv :: IORef FuntypeUniformMatrix3x4fv+glrefUniformMatrix3x4fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniformMatrix3x4fv #-}+glUniformMatrix3x4fv :: FuntypeUniformMatrix3x4fv+glUniformMatrix3x4fv = unsafePerformIO $ readIORef glrefUniformMatrix3x4fv+{-# INLINE glUniformMatrix3x4fv #-}+type FuntypeUniformMatrix4x3fv =+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniformMatrix4x3fv :: FunPtr FuntypeUniformMatrix4x3fv -> FuntypeUniformMatrix4x3fv+glrefUniformMatrix4x3fv :: IORef FuntypeUniformMatrix4x3fv+glrefUniformMatrix4x3fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniformMatrix4x3fv #-}+glUniformMatrix4x3fv :: FuntypeUniformMatrix4x3fv+glUniformMatrix4x3fv = unsafePerformIO $ readIORef glrefUniformMatrix4x3fv+{-# INLINE glUniformMatrix4x3fv #-}++-- GL_VERSION_3_0++type FuntypeColorMaski =+ GLuint ->+ GLboolean ->+ GLboolean ->+ GLboolean ->+ GLboolean ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynColorMaski :: FunPtr FuntypeColorMaski -> FuntypeColorMaski+glrefColorMaski :: IORef FuntypeColorMaski+glrefColorMaski = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefColorMaski #-}+glColorMaski :: FuntypeColorMaski+glColorMaski = unsafePerformIO $ readIORef glrefColorMaski+{-# INLINE glColorMaski #-}+type FuntypeGetBooleani_v =+ GLenum ->+ GLuint ->+ Ptr (GLboolean) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetBooleani_v :: FunPtr FuntypeGetBooleani_v -> FuntypeGetBooleani_v+glrefGetBooleani_v :: IORef FuntypeGetBooleani_v+glrefGetBooleani_v = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetBooleani_v #-}+glGetBooleani_v :: FuntypeGetBooleani_v+glGetBooleani_v = unsafePerformIO $ readIORef glrefGetBooleani_v+{-# INLINE glGetBooleani_v #-}+type FuntypeGetIntegeri_v =+ GLenum ->+ GLuint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetIntegeri_v :: FunPtr FuntypeGetIntegeri_v -> FuntypeGetIntegeri_v+glrefGetIntegeri_v :: IORef FuntypeGetIntegeri_v+glrefGetIntegeri_v = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetIntegeri_v #-}+glGetIntegeri_v :: FuntypeGetIntegeri_v+glGetIntegeri_v = unsafePerformIO $ readIORef glrefGetIntegeri_v+{-# INLINE glGetIntegeri_v #-}+type FuntypeEnablei =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynEnablei :: FunPtr FuntypeEnablei -> FuntypeEnablei+glrefEnablei :: IORef FuntypeEnablei+glrefEnablei = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefEnablei #-}+glEnablei :: FuntypeEnablei+glEnablei = unsafePerformIO $ readIORef glrefEnablei+{-# INLINE glEnablei #-}+type FuntypeDisablei =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDisablei :: FunPtr FuntypeDisablei -> FuntypeDisablei+glrefDisablei :: IORef FuntypeDisablei+glrefDisablei = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDisablei #-}+glDisablei :: FuntypeDisablei+glDisablei = unsafePerformIO $ readIORef glrefDisablei+{-# INLINE glDisablei #-}+type FuntypeIsEnabledi =+ GLenum ->+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsEnabledi :: FunPtr FuntypeIsEnabledi -> FuntypeIsEnabledi+glrefIsEnabledi :: IORef FuntypeIsEnabledi+glrefIsEnabledi = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsEnabledi #-}+glIsEnabledi :: FuntypeIsEnabledi+glIsEnabledi = unsafePerformIO $ readIORef glrefIsEnabledi+{-# INLINE glIsEnabledi #-}+type FuntypeBeginTransformFeedback =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBeginTransformFeedback :: FunPtr FuntypeBeginTransformFeedback -> FuntypeBeginTransformFeedback+glrefBeginTransformFeedback :: IORef FuntypeBeginTransformFeedback+glrefBeginTransformFeedback = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBeginTransformFeedback #-}+glBeginTransformFeedback :: FuntypeBeginTransformFeedback+glBeginTransformFeedback = unsafePerformIO $ readIORef glrefBeginTransformFeedback+{-# INLINE glBeginTransformFeedback #-}+type FuntypeEndTransformFeedback =+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynEndTransformFeedback :: FunPtr FuntypeEndTransformFeedback -> FuntypeEndTransformFeedback+glrefEndTransformFeedback :: IORef FuntypeEndTransformFeedback+glrefEndTransformFeedback = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefEndTransformFeedback #-}+glEndTransformFeedback :: FuntypeEndTransformFeedback+glEndTransformFeedback = unsafePerformIO $ readIORef glrefEndTransformFeedback+{-# INLINE glEndTransformFeedback #-}+type FuntypeBindBufferRange =+ GLenum ->+ GLuint ->+ GLuint ->+ GLintptr ->+ GLsizeiptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindBufferRange :: FunPtr FuntypeBindBufferRange -> FuntypeBindBufferRange+glrefBindBufferRange :: IORef FuntypeBindBufferRange+glrefBindBufferRange = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindBufferRange #-}+glBindBufferRange :: FuntypeBindBufferRange+glBindBufferRange = unsafePerformIO $ readIORef glrefBindBufferRange+{-# INLINE glBindBufferRange #-}+type FuntypeBindBufferBase =+ GLenum ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindBufferBase :: FunPtr FuntypeBindBufferBase -> FuntypeBindBufferBase+glrefBindBufferBase :: IORef FuntypeBindBufferBase+glrefBindBufferBase = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindBufferBase #-}+glBindBufferBase :: FuntypeBindBufferBase+glBindBufferBase = unsafePerformIO $ readIORef glrefBindBufferBase+{-# INLINE glBindBufferBase #-}+type FuntypeTransformFeedbackVaryings =+ GLuint ->+ GLsizei ->+ Ptr (Ptr (GLchar)) ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTransformFeedbackVaryings :: FunPtr FuntypeTransformFeedbackVaryings -> FuntypeTransformFeedbackVaryings+glrefTransformFeedbackVaryings :: IORef FuntypeTransformFeedbackVaryings+glrefTransformFeedbackVaryings = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTransformFeedbackVaryings #-}+glTransformFeedbackVaryings :: FuntypeTransformFeedbackVaryings+glTransformFeedbackVaryings = unsafePerformIO $ readIORef glrefTransformFeedbackVaryings+{-# INLINE glTransformFeedbackVaryings #-}+type FuntypeGetTransformFeedbackVarying =+ GLuint ->+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLsizei) ->+ Ptr (GLenum) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTransformFeedbackVarying :: FunPtr FuntypeGetTransformFeedbackVarying -> FuntypeGetTransformFeedbackVarying+glrefGetTransformFeedbackVarying :: IORef FuntypeGetTransformFeedbackVarying+glrefGetTransformFeedbackVarying = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTransformFeedbackVarying #-}+glGetTransformFeedbackVarying :: FuntypeGetTransformFeedbackVarying+glGetTransformFeedbackVarying = unsafePerformIO $ readIORef glrefGetTransformFeedbackVarying+{-# INLINE glGetTransformFeedbackVarying #-}+type FuntypeClampColor =+ GLenum ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClampColor :: FunPtr FuntypeClampColor -> FuntypeClampColor+glrefClampColor :: IORef FuntypeClampColor+glrefClampColor = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClampColor #-}+glClampColor :: FuntypeClampColor+glClampColor = unsafePerformIO $ readIORef glrefClampColor+{-# INLINE glClampColor #-}+type FuntypeBeginConditionalRender =+ GLuint ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBeginConditionalRender :: FunPtr FuntypeBeginConditionalRender -> FuntypeBeginConditionalRender+glrefBeginConditionalRender :: IORef FuntypeBeginConditionalRender+glrefBeginConditionalRender = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBeginConditionalRender #-}+glBeginConditionalRender :: FuntypeBeginConditionalRender+glBeginConditionalRender = unsafePerformIO $ readIORef glrefBeginConditionalRender+{-# INLINE glBeginConditionalRender #-}+type FuntypeEndConditionalRender =+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynEndConditionalRender :: FunPtr FuntypeEndConditionalRender -> FuntypeEndConditionalRender+glrefEndConditionalRender :: IORef FuntypeEndConditionalRender+glrefEndConditionalRender = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefEndConditionalRender #-}+glEndConditionalRender :: FuntypeEndConditionalRender+glEndConditionalRender = unsafePerformIO $ readIORef glrefEndConditionalRender+{-# INLINE glEndConditionalRender #-}+type FuntypeVertexAttribIPointer =+ GLuint ->+ GLint ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribIPointer :: FunPtr FuntypeVertexAttribIPointer -> FuntypeVertexAttribIPointer+glrefVertexAttribIPointer :: IORef FuntypeVertexAttribIPointer+glrefVertexAttribIPointer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribIPointer #-}+glVertexAttribIPointer :: FuntypeVertexAttribIPointer+glVertexAttribIPointer = unsafePerformIO $ readIORef glrefVertexAttribIPointer+{-# INLINE glVertexAttribIPointer #-}+type FuntypeGetVertexAttribIiv =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetVertexAttribIiv :: FunPtr FuntypeGetVertexAttribIiv -> FuntypeGetVertexAttribIiv+glrefGetVertexAttribIiv :: IORef FuntypeGetVertexAttribIiv+glrefGetVertexAttribIiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetVertexAttribIiv #-}+glGetVertexAttribIiv :: FuntypeGetVertexAttribIiv+glGetVertexAttribIiv = unsafePerformIO $ readIORef glrefGetVertexAttribIiv+{-# INLINE glGetVertexAttribIiv #-}+type FuntypeGetVertexAttribIuiv =+ GLuint ->+ GLenum ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetVertexAttribIuiv :: FunPtr FuntypeGetVertexAttribIuiv -> FuntypeGetVertexAttribIuiv+glrefGetVertexAttribIuiv :: IORef FuntypeGetVertexAttribIuiv+glrefGetVertexAttribIuiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetVertexAttribIuiv #-}+glGetVertexAttribIuiv :: FuntypeGetVertexAttribIuiv+glGetVertexAttribIuiv = unsafePerformIO $ readIORef glrefGetVertexAttribIuiv+{-# INLINE glGetVertexAttribIuiv #-}+type FuntypeVertexAttribI1i =+ GLuint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI1i :: FunPtr FuntypeVertexAttribI1i -> FuntypeVertexAttribI1i+glrefVertexAttribI1i :: IORef FuntypeVertexAttribI1i+glrefVertexAttribI1i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI1i #-}+glVertexAttribI1i :: FuntypeVertexAttribI1i+glVertexAttribI1i = unsafePerformIO $ readIORef glrefVertexAttribI1i+{-# INLINE glVertexAttribI1i #-}+type FuntypeVertexAttribI2i =+ GLuint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI2i :: FunPtr FuntypeVertexAttribI2i -> FuntypeVertexAttribI2i+glrefVertexAttribI2i :: IORef FuntypeVertexAttribI2i+glrefVertexAttribI2i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI2i #-}+glVertexAttribI2i :: FuntypeVertexAttribI2i+glVertexAttribI2i = unsafePerformIO $ readIORef glrefVertexAttribI2i+{-# INLINE glVertexAttribI2i #-}+type FuntypeVertexAttribI3i =+ GLuint ->+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI3i :: FunPtr FuntypeVertexAttribI3i -> FuntypeVertexAttribI3i+glrefVertexAttribI3i :: IORef FuntypeVertexAttribI3i+glrefVertexAttribI3i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI3i #-}+glVertexAttribI3i :: FuntypeVertexAttribI3i+glVertexAttribI3i = unsafePerformIO $ readIORef glrefVertexAttribI3i+{-# INLINE glVertexAttribI3i #-}+type FuntypeVertexAttribI4i =+ GLuint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI4i :: FunPtr FuntypeVertexAttribI4i -> FuntypeVertexAttribI4i+glrefVertexAttribI4i :: IORef FuntypeVertexAttribI4i+glrefVertexAttribI4i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI4i #-}+glVertexAttribI4i :: FuntypeVertexAttribI4i+glVertexAttribI4i = unsafePerformIO $ readIORef glrefVertexAttribI4i+{-# INLINE glVertexAttribI4i #-}+type FuntypeVertexAttribI1ui =+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI1ui :: FunPtr FuntypeVertexAttribI1ui -> FuntypeVertexAttribI1ui+glrefVertexAttribI1ui :: IORef FuntypeVertexAttribI1ui+glrefVertexAttribI1ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI1ui #-}+glVertexAttribI1ui :: FuntypeVertexAttribI1ui+glVertexAttribI1ui = unsafePerformIO $ readIORef glrefVertexAttribI1ui+{-# INLINE glVertexAttribI1ui #-}+type FuntypeVertexAttribI2ui =+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI2ui :: FunPtr FuntypeVertexAttribI2ui -> FuntypeVertexAttribI2ui+glrefVertexAttribI2ui :: IORef FuntypeVertexAttribI2ui+glrefVertexAttribI2ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI2ui #-}+glVertexAttribI2ui :: FuntypeVertexAttribI2ui+glVertexAttribI2ui = unsafePerformIO $ readIORef glrefVertexAttribI2ui+{-# INLINE glVertexAttribI2ui #-}+type FuntypeVertexAttribI3ui =+ GLuint ->+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI3ui :: FunPtr FuntypeVertexAttribI3ui -> FuntypeVertexAttribI3ui+glrefVertexAttribI3ui :: IORef FuntypeVertexAttribI3ui+glrefVertexAttribI3ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI3ui #-}+glVertexAttribI3ui :: FuntypeVertexAttribI3ui+glVertexAttribI3ui = unsafePerformIO $ readIORef glrefVertexAttribI3ui+{-# INLINE glVertexAttribI3ui #-}+type FuntypeVertexAttribI4ui =+ GLuint ->+ GLuint ->+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI4ui :: FunPtr FuntypeVertexAttribI4ui -> FuntypeVertexAttribI4ui+glrefVertexAttribI4ui :: IORef FuntypeVertexAttribI4ui+glrefVertexAttribI4ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI4ui #-}+glVertexAttribI4ui :: FuntypeVertexAttribI4ui+glVertexAttribI4ui = unsafePerformIO $ readIORef glrefVertexAttribI4ui+{-# INLINE glVertexAttribI4ui #-}+type FuntypeVertexAttribI1iv =+ GLuint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI1iv :: FunPtr FuntypeVertexAttribI1iv -> FuntypeVertexAttribI1iv+glrefVertexAttribI1iv :: IORef FuntypeVertexAttribI1iv+glrefVertexAttribI1iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI1iv #-}+glVertexAttribI1iv :: FuntypeVertexAttribI1iv+glVertexAttribI1iv = unsafePerformIO $ readIORef glrefVertexAttribI1iv+{-# INLINE glVertexAttribI1iv #-}+type FuntypeVertexAttribI2iv =+ GLuint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI2iv :: FunPtr FuntypeVertexAttribI2iv -> FuntypeVertexAttribI2iv+glrefVertexAttribI2iv :: IORef FuntypeVertexAttribI2iv+glrefVertexAttribI2iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI2iv #-}+glVertexAttribI2iv :: FuntypeVertexAttribI2iv+glVertexAttribI2iv = unsafePerformIO $ readIORef glrefVertexAttribI2iv+{-# INLINE glVertexAttribI2iv #-}+type FuntypeVertexAttribI3iv =+ GLuint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI3iv :: FunPtr FuntypeVertexAttribI3iv -> FuntypeVertexAttribI3iv+glrefVertexAttribI3iv :: IORef FuntypeVertexAttribI3iv+glrefVertexAttribI3iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI3iv #-}+glVertexAttribI3iv :: FuntypeVertexAttribI3iv+glVertexAttribI3iv = unsafePerformIO $ readIORef glrefVertexAttribI3iv+{-# INLINE glVertexAttribI3iv #-}+type FuntypeVertexAttribI4iv =+ GLuint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI4iv :: FunPtr FuntypeVertexAttribI4iv -> FuntypeVertexAttribI4iv+glrefVertexAttribI4iv :: IORef FuntypeVertexAttribI4iv+glrefVertexAttribI4iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI4iv #-}+glVertexAttribI4iv :: FuntypeVertexAttribI4iv+glVertexAttribI4iv = unsafePerformIO $ readIORef glrefVertexAttribI4iv+{-# INLINE glVertexAttribI4iv #-}+type FuntypeVertexAttribI1uiv =+ GLuint ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI1uiv :: FunPtr FuntypeVertexAttribI1uiv -> FuntypeVertexAttribI1uiv+glrefVertexAttribI1uiv :: IORef FuntypeVertexAttribI1uiv+glrefVertexAttribI1uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI1uiv #-}+glVertexAttribI1uiv :: FuntypeVertexAttribI1uiv+glVertexAttribI1uiv = unsafePerformIO $ readIORef glrefVertexAttribI1uiv+{-# INLINE glVertexAttribI1uiv #-}+type FuntypeVertexAttribI2uiv =+ GLuint ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI2uiv :: FunPtr FuntypeVertexAttribI2uiv -> FuntypeVertexAttribI2uiv+glrefVertexAttribI2uiv :: IORef FuntypeVertexAttribI2uiv+glrefVertexAttribI2uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI2uiv #-}+glVertexAttribI2uiv :: FuntypeVertexAttribI2uiv+glVertexAttribI2uiv = unsafePerformIO $ readIORef glrefVertexAttribI2uiv+{-# INLINE glVertexAttribI2uiv #-}+type FuntypeVertexAttribI3uiv =+ GLuint ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI3uiv :: FunPtr FuntypeVertexAttribI3uiv -> FuntypeVertexAttribI3uiv+glrefVertexAttribI3uiv :: IORef FuntypeVertexAttribI3uiv+glrefVertexAttribI3uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI3uiv #-}+glVertexAttribI3uiv :: FuntypeVertexAttribI3uiv+glVertexAttribI3uiv = unsafePerformIO $ readIORef glrefVertexAttribI3uiv+{-# INLINE glVertexAttribI3uiv #-}+type FuntypeVertexAttribI4uiv =+ GLuint ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI4uiv :: FunPtr FuntypeVertexAttribI4uiv -> FuntypeVertexAttribI4uiv+glrefVertexAttribI4uiv :: IORef FuntypeVertexAttribI4uiv+glrefVertexAttribI4uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI4uiv #-}+glVertexAttribI4uiv :: FuntypeVertexAttribI4uiv+glVertexAttribI4uiv = unsafePerformIO $ readIORef glrefVertexAttribI4uiv+{-# INLINE glVertexAttribI4uiv #-}+type FuntypeVertexAttribI4bv =+ GLuint ->+ Ptr (GLbyte) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI4bv :: FunPtr FuntypeVertexAttribI4bv -> FuntypeVertexAttribI4bv+glrefVertexAttribI4bv :: IORef FuntypeVertexAttribI4bv+glrefVertexAttribI4bv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI4bv #-}+glVertexAttribI4bv :: FuntypeVertexAttribI4bv+glVertexAttribI4bv = unsafePerformIO $ readIORef glrefVertexAttribI4bv+{-# INLINE glVertexAttribI4bv #-}+type FuntypeVertexAttribI4sv =+ GLuint ->+ Ptr (GLshort) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI4sv :: FunPtr FuntypeVertexAttribI4sv -> FuntypeVertexAttribI4sv+glrefVertexAttribI4sv :: IORef FuntypeVertexAttribI4sv+glrefVertexAttribI4sv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI4sv #-}+glVertexAttribI4sv :: FuntypeVertexAttribI4sv+glVertexAttribI4sv = unsafePerformIO $ readIORef glrefVertexAttribI4sv+{-# INLINE glVertexAttribI4sv #-}+type FuntypeVertexAttribI4ubv =+ GLuint ->+ Ptr (GLubyte) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI4ubv :: FunPtr FuntypeVertexAttribI4ubv -> FuntypeVertexAttribI4ubv+glrefVertexAttribI4ubv :: IORef FuntypeVertexAttribI4ubv+glrefVertexAttribI4ubv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI4ubv #-}+glVertexAttribI4ubv :: FuntypeVertexAttribI4ubv+glVertexAttribI4ubv = unsafePerformIO $ readIORef glrefVertexAttribI4ubv+{-# INLINE glVertexAttribI4ubv #-}+type FuntypeVertexAttribI4usv =+ GLuint ->+ Ptr (GLushort) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribI4usv :: FunPtr FuntypeVertexAttribI4usv -> FuntypeVertexAttribI4usv+glrefVertexAttribI4usv :: IORef FuntypeVertexAttribI4usv+glrefVertexAttribI4usv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribI4usv #-}+glVertexAttribI4usv :: FuntypeVertexAttribI4usv+glVertexAttribI4usv = unsafePerformIO $ readIORef glrefVertexAttribI4usv+{-# INLINE glVertexAttribI4usv #-}+type FuntypeGetUniformuiv =+ GLuint ->+ GLint ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetUniformuiv :: FunPtr FuntypeGetUniformuiv -> FuntypeGetUniformuiv+glrefGetUniformuiv :: IORef FuntypeGetUniformuiv+glrefGetUniformuiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetUniformuiv #-}+glGetUniformuiv :: FuntypeGetUniformuiv+glGetUniformuiv = unsafePerformIO $ readIORef glrefGetUniformuiv+{-# INLINE glGetUniformuiv #-}+type FuntypeBindFragDataLocation =+ GLuint ->+ GLuint ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindFragDataLocation :: FunPtr FuntypeBindFragDataLocation -> FuntypeBindFragDataLocation+glrefBindFragDataLocation :: IORef FuntypeBindFragDataLocation+glrefBindFragDataLocation = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindFragDataLocation #-}+glBindFragDataLocation :: FuntypeBindFragDataLocation+glBindFragDataLocation = unsafePerformIO $ readIORef glrefBindFragDataLocation+{-# INLINE glBindFragDataLocation #-}+type FuntypeGetFragDataLocation =+ GLuint ->+ Ptr (GLchar) ->+ IO ( GLint )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetFragDataLocation :: FunPtr FuntypeGetFragDataLocation -> FuntypeGetFragDataLocation+glrefGetFragDataLocation :: IORef FuntypeGetFragDataLocation+glrefGetFragDataLocation = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetFragDataLocation #-}+glGetFragDataLocation :: FuntypeGetFragDataLocation+glGetFragDataLocation = unsafePerformIO $ readIORef glrefGetFragDataLocation+{-# INLINE glGetFragDataLocation #-}+type FuntypeUniform1ui =+ GLint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform1ui :: FunPtr FuntypeUniform1ui -> FuntypeUniform1ui+glrefUniform1ui :: IORef FuntypeUniform1ui+glrefUniform1ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform1ui #-}+glUniform1ui :: FuntypeUniform1ui+glUniform1ui = unsafePerformIO $ readIORef glrefUniform1ui+{-# INLINE glUniform1ui #-}+type FuntypeUniform2ui =+ GLint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform2ui :: FunPtr FuntypeUniform2ui -> FuntypeUniform2ui+glrefUniform2ui :: IORef FuntypeUniform2ui+glrefUniform2ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform2ui #-}+glUniform2ui :: FuntypeUniform2ui+glUniform2ui = unsafePerformIO $ readIORef glrefUniform2ui+{-# INLINE glUniform2ui #-}+type FuntypeUniform3ui =+ GLint ->+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform3ui :: FunPtr FuntypeUniform3ui -> FuntypeUniform3ui+glrefUniform3ui :: IORef FuntypeUniform3ui+glrefUniform3ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform3ui #-}+glUniform3ui :: FuntypeUniform3ui+glUniform3ui = unsafePerformIO $ readIORef glrefUniform3ui+{-# INLINE glUniform3ui #-}+type FuntypeUniform4ui =+ GLint ->+ GLuint ->+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform4ui :: FunPtr FuntypeUniform4ui -> FuntypeUniform4ui+glrefUniform4ui :: IORef FuntypeUniform4ui+glrefUniform4ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform4ui #-}+glUniform4ui :: FuntypeUniform4ui+glUniform4ui = unsafePerformIO $ readIORef glrefUniform4ui+{-# INLINE glUniform4ui #-}+type FuntypeUniform1uiv =+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform1uiv :: FunPtr FuntypeUniform1uiv -> FuntypeUniform1uiv+glrefUniform1uiv :: IORef FuntypeUniform1uiv+glrefUniform1uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform1uiv #-}+glUniform1uiv :: FuntypeUniform1uiv+glUniform1uiv = unsafePerformIO $ readIORef glrefUniform1uiv+{-# INLINE glUniform1uiv #-}+type FuntypeUniform2uiv =+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform2uiv :: FunPtr FuntypeUniform2uiv -> FuntypeUniform2uiv+glrefUniform2uiv :: IORef FuntypeUniform2uiv+glrefUniform2uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform2uiv #-}+glUniform2uiv :: FuntypeUniform2uiv+glUniform2uiv = unsafePerformIO $ readIORef glrefUniform2uiv+{-# INLINE glUniform2uiv #-}+type FuntypeUniform3uiv =+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform3uiv :: FunPtr FuntypeUniform3uiv -> FuntypeUniform3uiv+glrefUniform3uiv :: IORef FuntypeUniform3uiv+glrefUniform3uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform3uiv #-}+glUniform3uiv :: FuntypeUniform3uiv+glUniform3uiv = unsafePerformIO $ readIORef glrefUniform3uiv+{-# INLINE glUniform3uiv #-}+type FuntypeUniform4uiv =+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniform4uiv :: FunPtr FuntypeUniform4uiv -> FuntypeUniform4uiv+glrefUniform4uiv :: IORef FuntypeUniform4uiv+glrefUniform4uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniform4uiv #-}+glUniform4uiv :: FuntypeUniform4uiv+glUniform4uiv = unsafePerformIO $ readIORef glrefUniform4uiv+{-# INLINE glUniform4uiv #-}+type FuntypeTexParameterIiv =+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexParameterIiv :: FunPtr FuntypeTexParameterIiv -> FuntypeTexParameterIiv+glrefTexParameterIiv :: IORef FuntypeTexParameterIiv+glrefTexParameterIiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexParameterIiv #-}+glTexParameterIiv :: FuntypeTexParameterIiv+glTexParameterIiv = unsafePerformIO $ readIORef glrefTexParameterIiv+{-# INLINE glTexParameterIiv #-}+type FuntypeTexParameterIuiv =+ GLenum ->+ GLenum ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexParameterIuiv :: FunPtr FuntypeTexParameterIuiv -> FuntypeTexParameterIuiv+glrefTexParameterIuiv :: IORef FuntypeTexParameterIuiv+glrefTexParameterIuiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexParameterIuiv #-}+glTexParameterIuiv :: FuntypeTexParameterIuiv+glTexParameterIuiv = unsafePerformIO $ readIORef glrefTexParameterIuiv+{-# INLINE glTexParameterIuiv #-}+type FuntypeGetTexParameterIiv =+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTexParameterIiv :: FunPtr FuntypeGetTexParameterIiv -> FuntypeGetTexParameterIiv+glrefGetTexParameterIiv :: IORef FuntypeGetTexParameterIiv+glrefGetTexParameterIiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTexParameterIiv #-}+glGetTexParameterIiv :: FuntypeGetTexParameterIiv+glGetTexParameterIiv = unsafePerformIO $ readIORef glrefGetTexParameterIiv+{-# INLINE glGetTexParameterIiv #-}+type FuntypeGetTexParameterIuiv =+ GLenum ->+ GLenum ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTexParameterIuiv :: FunPtr FuntypeGetTexParameterIuiv -> FuntypeGetTexParameterIuiv+glrefGetTexParameterIuiv :: IORef FuntypeGetTexParameterIuiv+glrefGetTexParameterIuiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTexParameterIuiv #-}+glGetTexParameterIuiv :: FuntypeGetTexParameterIuiv+glGetTexParameterIuiv = unsafePerformIO $ readIORef glrefGetTexParameterIuiv+{-# INLINE glGetTexParameterIuiv #-}+type FuntypeClearBufferiv =+ GLenum ->+ GLint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClearBufferiv :: FunPtr FuntypeClearBufferiv -> FuntypeClearBufferiv+glrefClearBufferiv :: IORef FuntypeClearBufferiv+glrefClearBufferiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClearBufferiv #-}+glClearBufferiv :: FuntypeClearBufferiv+glClearBufferiv = unsafePerformIO $ readIORef glrefClearBufferiv+{-# INLINE glClearBufferiv #-}+type FuntypeClearBufferuiv =+ GLenum ->+ GLint ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClearBufferuiv :: FunPtr FuntypeClearBufferuiv -> FuntypeClearBufferuiv+glrefClearBufferuiv :: IORef FuntypeClearBufferuiv+glrefClearBufferuiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClearBufferuiv #-}+glClearBufferuiv :: FuntypeClearBufferuiv+glClearBufferuiv = unsafePerformIO $ readIORef glrefClearBufferuiv+{-# INLINE glClearBufferuiv #-}+type FuntypeClearBufferfv =+ GLenum ->+ GLint ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClearBufferfv :: FunPtr FuntypeClearBufferfv -> FuntypeClearBufferfv+glrefClearBufferfv :: IORef FuntypeClearBufferfv+glrefClearBufferfv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClearBufferfv #-}+glClearBufferfv :: FuntypeClearBufferfv+glClearBufferfv = unsafePerformIO $ readIORef glrefClearBufferfv+{-# INLINE glClearBufferfv #-}+type FuntypeClearBufferfi =+ GLenum ->+ GLint ->+ GLfloat ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClearBufferfi :: FunPtr FuntypeClearBufferfi -> FuntypeClearBufferfi+glrefClearBufferfi :: IORef FuntypeClearBufferfi+glrefClearBufferfi = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClearBufferfi #-}+glClearBufferfi :: FuntypeClearBufferfi+glClearBufferfi = unsafePerformIO $ readIORef glrefClearBufferfi+{-# INLINE glClearBufferfi #-}+type FuntypeGetStringi =+ GLenum ->+ GLuint ->+ IO ( Ptr (GLubyte) )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetStringi :: FunPtr FuntypeGetStringi -> FuntypeGetStringi+glrefGetStringi :: IORef FuntypeGetStringi+glrefGetStringi = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetStringi #-}+glGetStringi :: FuntypeGetStringi+glGetStringi = unsafePerformIO $ readIORef glrefGetStringi+{-# INLINE glGetStringi #-}+type FuntypeIsRenderbuffer =+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsRenderbuffer :: FunPtr FuntypeIsRenderbuffer -> FuntypeIsRenderbuffer+glrefIsRenderbuffer :: IORef FuntypeIsRenderbuffer+glrefIsRenderbuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsRenderbuffer #-}+glIsRenderbuffer :: FuntypeIsRenderbuffer+glIsRenderbuffer = unsafePerformIO $ readIORef glrefIsRenderbuffer+{-# INLINE glIsRenderbuffer #-}+type FuntypeBindRenderbuffer =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindRenderbuffer :: FunPtr FuntypeBindRenderbuffer -> FuntypeBindRenderbuffer+glrefBindRenderbuffer :: IORef FuntypeBindRenderbuffer+glrefBindRenderbuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindRenderbuffer #-}+glBindRenderbuffer :: FuntypeBindRenderbuffer+glBindRenderbuffer = unsafePerformIO $ readIORef glrefBindRenderbuffer+{-# INLINE glBindRenderbuffer #-}+type FuntypeDeleteRenderbuffers =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDeleteRenderbuffers :: FunPtr FuntypeDeleteRenderbuffers -> FuntypeDeleteRenderbuffers+glrefDeleteRenderbuffers :: IORef FuntypeDeleteRenderbuffers+glrefDeleteRenderbuffers = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDeleteRenderbuffers #-}+glDeleteRenderbuffers :: FuntypeDeleteRenderbuffers+glDeleteRenderbuffers = unsafePerformIO $ readIORef glrefDeleteRenderbuffers+{-# INLINE glDeleteRenderbuffers #-}+type FuntypeGenRenderbuffers =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGenRenderbuffers :: FunPtr FuntypeGenRenderbuffers -> FuntypeGenRenderbuffers+glrefGenRenderbuffers :: IORef FuntypeGenRenderbuffers+glrefGenRenderbuffers = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGenRenderbuffers #-}+glGenRenderbuffers :: FuntypeGenRenderbuffers+glGenRenderbuffers = unsafePerformIO $ readIORef glrefGenRenderbuffers+{-# INLINE glGenRenderbuffers #-}+type FuntypeRenderbufferStorage =+ GLenum ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynRenderbufferStorage :: FunPtr FuntypeRenderbufferStorage -> FuntypeRenderbufferStorage+glrefRenderbufferStorage :: IORef FuntypeRenderbufferStorage+glrefRenderbufferStorage = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefRenderbufferStorage #-}+glRenderbufferStorage :: FuntypeRenderbufferStorage+glRenderbufferStorage = unsafePerformIO $ readIORef glrefRenderbufferStorage+{-# INLINE glRenderbufferStorage #-}+type FuntypeGetRenderbufferParameteriv =+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetRenderbufferParameteriv :: FunPtr FuntypeGetRenderbufferParameteriv -> FuntypeGetRenderbufferParameteriv+glrefGetRenderbufferParameteriv :: IORef FuntypeGetRenderbufferParameteriv+glrefGetRenderbufferParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetRenderbufferParameteriv #-}+glGetRenderbufferParameteriv :: FuntypeGetRenderbufferParameteriv+glGetRenderbufferParameteriv = unsafePerformIO $ readIORef glrefGetRenderbufferParameteriv+{-# INLINE glGetRenderbufferParameteriv #-}+type FuntypeIsFramebuffer =+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsFramebuffer :: FunPtr FuntypeIsFramebuffer -> FuntypeIsFramebuffer+glrefIsFramebuffer :: IORef FuntypeIsFramebuffer+glrefIsFramebuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsFramebuffer #-}+glIsFramebuffer :: FuntypeIsFramebuffer+glIsFramebuffer = unsafePerformIO $ readIORef glrefIsFramebuffer+{-# INLINE glIsFramebuffer #-}+type FuntypeBindFramebuffer =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindFramebuffer :: FunPtr FuntypeBindFramebuffer -> FuntypeBindFramebuffer+glrefBindFramebuffer :: IORef FuntypeBindFramebuffer+glrefBindFramebuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindFramebuffer #-}+glBindFramebuffer :: FuntypeBindFramebuffer+glBindFramebuffer = unsafePerformIO $ readIORef glrefBindFramebuffer+{-# INLINE glBindFramebuffer #-}+type FuntypeDeleteFramebuffers =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDeleteFramebuffers :: FunPtr FuntypeDeleteFramebuffers -> FuntypeDeleteFramebuffers+glrefDeleteFramebuffers :: IORef FuntypeDeleteFramebuffers+glrefDeleteFramebuffers = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDeleteFramebuffers #-}+glDeleteFramebuffers :: FuntypeDeleteFramebuffers+glDeleteFramebuffers = unsafePerformIO $ readIORef glrefDeleteFramebuffers+{-# INLINE glDeleteFramebuffers #-}+type FuntypeGenFramebuffers =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGenFramebuffers :: FunPtr FuntypeGenFramebuffers -> FuntypeGenFramebuffers+glrefGenFramebuffers :: IORef FuntypeGenFramebuffers+glrefGenFramebuffers = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGenFramebuffers #-}+glGenFramebuffers :: FuntypeGenFramebuffers+glGenFramebuffers = unsafePerformIO $ readIORef glrefGenFramebuffers+{-# INLINE glGenFramebuffers #-}+type FuntypeCheckFramebufferStatus =+ GLenum ->+ IO ( GLenum )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCheckFramebufferStatus :: FunPtr FuntypeCheckFramebufferStatus -> FuntypeCheckFramebufferStatus+glrefCheckFramebufferStatus :: IORef FuntypeCheckFramebufferStatus+glrefCheckFramebufferStatus = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCheckFramebufferStatus #-}+glCheckFramebufferStatus :: FuntypeCheckFramebufferStatus+glCheckFramebufferStatus = unsafePerformIO $ readIORef glrefCheckFramebufferStatus+{-# INLINE glCheckFramebufferStatus #-}+type FuntypeFramebufferTexture1D =+ GLenum ->+ GLenum ->+ GLenum ->+ GLuint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFramebufferTexture1D :: FunPtr FuntypeFramebufferTexture1D -> FuntypeFramebufferTexture1D+glrefFramebufferTexture1D :: IORef FuntypeFramebufferTexture1D+glrefFramebufferTexture1D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFramebufferTexture1D #-}+glFramebufferTexture1D :: FuntypeFramebufferTexture1D+glFramebufferTexture1D = unsafePerformIO $ readIORef glrefFramebufferTexture1D+{-# INLINE glFramebufferTexture1D #-}+type FuntypeFramebufferTexture2D =+ GLenum ->+ GLenum ->+ GLenum ->+ GLuint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFramebufferTexture2D :: FunPtr FuntypeFramebufferTexture2D -> FuntypeFramebufferTexture2D+glrefFramebufferTexture2D :: IORef FuntypeFramebufferTexture2D+glrefFramebufferTexture2D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFramebufferTexture2D #-}+glFramebufferTexture2D :: FuntypeFramebufferTexture2D+glFramebufferTexture2D = unsafePerformIO $ readIORef glrefFramebufferTexture2D+{-# INLINE glFramebufferTexture2D #-}+type FuntypeFramebufferTexture3D =+ GLenum ->+ GLenum ->+ GLenum ->+ GLuint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFramebufferTexture3D :: FunPtr FuntypeFramebufferTexture3D -> FuntypeFramebufferTexture3D+glrefFramebufferTexture3D :: IORef FuntypeFramebufferTexture3D+glrefFramebufferTexture3D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFramebufferTexture3D #-}+glFramebufferTexture3D :: FuntypeFramebufferTexture3D+glFramebufferTexture3D = unsafePerformIO $ readIORef glrefFramebufferTexture3D+{-# INLINE glFramebufferTexture3D #-}+type FuntypeFramebufferRenderbuffer =+ GLenum ->+ GLenum ->+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFramebufferRenderbuffer :: FunPtr FuntypeFramebufferRenderbuffer -> FuntypeFramebufferRenderbuffer+glrefFramebufferRenderbuffer :: IORef FuntypeFramebufferRenderbuffer+glrefFramebufferRenderbuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFramebufferRenderbuffer #-}+glFramebufferRenderbuffer :: FuntypeFramebufferRenderbuffer+glFramebufferRenderbuffer = unsafePerformIO $ readIORef glrefFramebufferRenderbuffer+{-# INLINE glFramebufferRenderbuffer #-}+type FuntypeGetFramebufferAttachmentParameteriv =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetFramebufferAttachmentParameteriv :: FunPtr FuntypeGetFramebufferAttachmentParameteriv -> FuntypeGetFramebufferAttachmentParameteriv+glrefGetFramebufferAttachmentParameteriv :: IORef FuntypeGetFramebufferAttachmentParameteriv+glrefGetFramebufferAttachmentParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetFramebufferAttachmentParameteriv #-}+glGetFramebufferAttachmentParameteriv :: FuntypeGetFramebufferAttachmentParameteriv+glGetFramebufferAttachmentParameteriv = unsafePerformIO $ readIORef glrefGetFramebufferAttachmentParameteriv+{-# INLINE glGetFramebufferAttachmentParameteriv #-}+type FuntypeGenerateMipmap =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGenerateMipmap :: FunPtr FuntypeGenerateMipmap -> FuntypeGenerateMipmap+glrefGenerateMipmap :: IORef FuntypeGenerateMipmap+glrefGenerateMipmap = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGenerateMipmap #-}+glGenerateMipmap :: FuntypeGenerateMipmap+glGenerateMipmap = unsafePerformIO $ readIORef glrefGenerateMipmap+{-# INLINE glGenerateMipmap #-}+type FuntypeBlitFramebuffer =+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLbitfield ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBlitFramebuffer :: FunPtr FuntypeBlitFramebuffer -> FuntypeBlitFramebuffer+glrefBlitFramebuffer :: IORef FuntypeBlitFramebuffer+glrefBlitFramebuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBlitFramebuffer #-}+glBlitFramebuffer :: FuntypeBlitFramebuffer+glBlitFramebuffer = unsafePerformIO $ readIORef glrefBlitFramebuffer+{-# INLINE glBlitFramebuffer #-}+type FuntypeRenderbufferStorageMultisample =+ GLenum ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynRenderbufferStorageMultisample :: FunPtr FuntypeRenderbufferStorageMultisample -> FuntypeRenderbufferStorageMultisample+glrefRenderbufferStorageMultisample :: IORef FuntypeRenderbufferStorageMultisample+glrefRenderbufferStorageMultisample = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefRenderbufferStorageMultisample #-}+glRenderbufferStorageMultisample :: FuntypeRenderbufferStorageMultisample+glRenderbufferStorageMultisample = unsafePerformIO $ readIORef glrefRenderbufferStorageMultisample+{-# INLINE glRenderbufferStorageMultisample #-}+type FuntypeFramebufferTextureLayer =+ GLenum ->+ GLenum ->+ GLuint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFramebufferTextureLayer :: FunPtr FuntypeFramebufferTextureLayer -> FuntypeFramebufferTextureLayer+glrefFramebufferTextureLayer :: IORef FuntypeFramebufferTextureLayer+glrefFramebufferTextureLayer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFramebufferTextureLayer #-}+glFramebufferTextureLayer :: FuntypeFramebufferTextureLayer+glFramebufferTextureLayer = unsafePerformIO $ readIORef glrefFramebufferTextureLayer+{-# INLINE glFramebufferTextureLayer #-}+type FuntypeMapBufferRange =+ GLenum ->+ GLintptr ->+ GLsizeiptr ->+ GLbitfield ->+ IO ( Ptr () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMapBufferRange :: FunPtr FuntypeMapBufferRange -> FuntypeMapBufferRange+glrefMapBufferRange :: IORef FuntypeMapBufferRange+glrefMapBufferRange = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMapBufferRange #-}+glMapBufferRange :: FuntypeMapBufferRange+glMapBufferRange = unsafePerformIO $ readIORef glrefMapBufferRange+{-# INLINE glMapBufferRange #-}+type FuntypeFlushMappedBufferRange =+ GLenum ->+ GLintptr ->+ GLsizeiptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFlushMappedBufferRange :: FunPtr FuntypeFlushMappedBufferRange -> FuntypeFlushMappedBufferRange+glrefFlushMappedBufferRange :: IORef FuntypeFlushMappedBufferRange+glrefFlushMappedBufferRange = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFlushMappedBufferRange #-}+glFlushMappedBufferRange :: FuntypeFlushMappedBufferRange+glFlushMappedBufferRange = unsafePerformIO $ readIORef glrefFlushMappedBufferRange+{-# INLINE glFlushMappedBufferRange #-}+type FuntypeBindVertexArray =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindVertexArray :: FunPtr FuntypeBindVertexArray -> FuntypeBindVertexArray+glrefBindVertexArray :: IORef FuntypeBindVertexArray+glrefBindVertexArray = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindVertexArray #-}+glBindVertexArray :: FuntypeBindVertexArray+glBindVertexArray = unsafePerformIO $ readIORef glrefBindVertexArray+{-# INLINE glBindVertexArray #-}+type FuntypeDeleteVertexArrays =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDeleteVertexArrays :: FunPtr FuntypeDeleteVertexArrays -> FuntypeDeleteVertexArrays+glrefDeleteVertexArrays :: IORef FuntypeDeleteVertexArrays+glrefDeleteVertexArrays = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDeleteVertexArrays #-}+glDeleteVertexArrays :: FuntypeDeleteVertexArrays+glDeleteVertexArrays = unsafePerformIO $ readIORef glrefDeleteVertexArrays+{-# INLINE glDeleteVertexArrays #-}+type FuntypeGenVertexArrays =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGenVertexArrays :: FunPtr FuntypeGenVertexArrays -> FuntypeGenVertexArrays+glrefGenVertexArrays :: IORef FuntypeGenVertexArrays+glrefGenVertexArrays = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGenVertexArrays #-}+glGenVertexArrays :: FuntypeGenVertexArrays+glGenVertexArrays = unsafePerformIO $ readIORef glrefGenVertexArrays+{-# INLINE glGenVertexArrays #-}+type FuntypeIsVertexArray =+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsVertexArray :: FunPtr FuntypeIsVertexArray -> FuntypeIsVertexArray+glrefIsVertexArray :: IORef FuntypeIsVertexArray+glrefIsVertexArray = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsVertexArray #-}+glIsVertexArray :: FuntypeIsVertexArray+glIsVertexArray = unsafePerformIO $ readIORef glrefIsVertexArray+{-# INLINE glIsVertexArray #-}++-- GL_VERSION_3_1++type FuntypeDrawArraysInstanced =+ GLenum ->+ GLint ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDrawArraysInstanced :: FunPtr FuntypeDrawArraysInstanced -> FuntypeDrawArraysInstanced+glrefDrawArraysInstanced :: IORef FuntypeDrawArraysInstanced+glrefDrawArraysInstanced = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDrawArraysInstanced #-}+glDrawArraysInstanced :: FuntypeDrawArraysInstanced+glDrawArraysInstanced = unsafePerformIO $ readIORef glrefDrawArraysInstanced+{-# INLINE glDrawArraysInstanced #-}+type FuntypeDrawElementsInstanced =+ GLenum ->+ GLsizei ->+ GLenum ->+ Ptr () ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDrawElementsInstanced :: FunPtr FuntypeDrawElementsInstanced -> FuntypeDrawElementsInstanced+glrefDrawElementsInstanced :: IORef FuntypeDrawElementsInstanced+glrefDrawElementsInstanced = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDrawElementsInstanced #-}+glDrawElementsInstanced :: FuntypeDrawElementsInstanced+glDrawElementsInstanced = unsafePerformIO $ readIORef glrefDrawElementsInstanced+{-# INLINE glDrawElementsInstanced #-}+type FuntypeTexBuffer =+ GLenum ->+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexBuffer :: FunPtr FuntypeTexBuffer -> FuntypeTexBuffer+glrefTexBuffer :: IORef FuntypeTexBuffer+glrefTexBuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexBuffer #-}+glTexBuffer :: FuntypeTexBuffer+glTexBuffer = unsafePerformIO $ readIORef glrefTexBuffer+{-# INLINE glTexBuffer #-}+type FuntypePrimitiveRestartIndex =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPrimitiveRestartIndex :: FunPtr FuntypePrimitiveRestartIndex -> FuntypePrimitiveRestartIndex+glrefPrimitiveRestartIndex :: IORef FuntypePrimitiveRestartIndex+glrefPrimitiveRestartIndex = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPrimitiveRestartIndex #-}+glPrimitiveRestartIndex :: FuntypePrimitiveRestartIndex+glPrimitiveRestartIndex = unsafePerformIO $ readIORef glrefPrimitiveRestartIndex+{-# INLINE glPrimitiveRestartIndex #-}+type FuntypeCopyBufferSubData =+ GLenum ->+ GLenum ->+ GLintptr ->+ GLintptr ->+ GLsizeiptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyBufferSubData :: FunPtr FuntypeCopyBufferSubData -> FuntypeCopyBufferSubData+glrefCopyBufferSubData :: IORef FuntypeCopyBufferSubData+glrefCopyBufferSubData = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyBufferSubData #-}+glCopyBufferSubData :: FuntypeCopyBufferSubData+glCopyBufferSubData = unsafePerformIO $ readIORef glrefCopyBufferSubData+{-# INLINE glCopyBufferSubData #-}+type FuntypeGetUniformIndices =+ GLuint ->+ GLsizei ->+ Ptr (Ptr (GLchar)) ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetUniformIndices :: FunPtr FuntypeGetUniformIndices -> FuntypeGetUniformIndices+glrefGetUniformIndices :: IORef FuntypeGetUniformIndices+glrefGetUniformIndices = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetUniformIndices #-}+glGetUniformIndices :: FuntypeGetUniformIndices+glGetUniformIndices = unsafePerformIO $ readIORef glrefGetUniformIndices+{-# INLINE glGetUniformIndices #-}+type FuntypeGetActiveUniformsiv =+ GLuint ->+ GLsizei ->+ Ptr (GLuint) ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetActiveUniformsiv :: FunPtr FuntypeGetActiveUniformsiv -> FuntypeGetActiveUniformsiv+glrefGetActiveUniformsiv :: IORef FuntypeGetActiveUniformsiv+glrefGetActiveUniformsiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetActiveUniformsiv #-}+glGetActiveUniformsiv :: FuntypeGetActiveUniformsiv+glGetActiveUniformsiv = unsafePerformIO $ readIORef glrefGetActiveUniformsiv+{-# INLINE glGetActiveUniformsiv #-}+type FuntypeGetActiveUniformName =+ GLuint ->+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetActiveUniformName :: FunPtr FuntypeGetActiveUniformName -> FuntypeGetActiveUniformName+glrefGetActiveUniformName :: IORef FuntypeGetActiveUniformName+glrefGetActiveUniformName = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetActiveUniformName #-}+glGetActiveUniformName :: FuntypeGetActiveUniformName+glGetActiveUniformName = unsafePerformIO $ readIORef glrefGetActiveUniformName+{-# INLINE glGetActiveUniformName #-}+type FuntypeGetUniformBlockIndex =+ GLuint ->+ Ptr (GLchar) ->+ IO ( GLuint )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetUniformBlockIndex :: FunPtr FuntypeGetUniformBlockIndex -> FuntypeGetUniformBlockIndex+glrefGetUniformBlockIndex :: IORef FuntypeGetUniformBlockIndex+glrefGetUniformBlockIndex = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetUniformBlockIndex #-}+glGetUniformBlockIndex :: FuntypeGetUniformBlockIndex+glGetUniformBlockIndex = unsafePerformIO $ readIORef glrefGetUniformBlockIndex+{-# INLINE glGetUniformBlockIndex #-}+type FuntypeGetActiveUniformBlockiv =+ GLuint ->+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetActiveUniformBlockiv :: FunPtr FuntypeGetActiveUniformBlockiv -> FuntypeGetActiveUniformBlockiv+glrefGetActiveUniformBlockiv :: IORef FuntypeGetActiveUniformBlockiv+glrefGetActiveUniformBlockiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetActiveUniformBlockiv #-}+glGetActiveUniformBlockiv :: FuntypeGetActiveUniformBlockiv+glGetActiveUniformBlockiv = unsafePerformIO $ readIORef glrefGetActiveUniformBlockiv+{-# INLINE glGetActiveUniformBlockiv #-}+type FuntypeGetActiveUniformBlockName =+ GLuint ->+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetActiveUniformBlockName :: FunPtr FuntypeGetActiveUniformBlockName -> FuntypeGetActiveUniformBlockName+glrefGetActiveUniformBlockName :: IORef FuntypeGetActiveUniformBlockName+glrefGetActiveUniformBlockName = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetActiveUniformBlockName #-}+glGetActiveUniformBlockName :: FuntypeGetActiveUniformBlockName+glGetActiveUniformBlockName = unsafePerformIO $ readIORef glrefGetActiveUniformBlockName+{-# INLINE glGetActiveUniformBlockName #-}+type FuntypeUniformBlockBinding =+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUniformBlockBinding :: FunPtr FuntypeUniformBlockBinding -> FuntypeUniformBlockBinding+glrefUniformBlockBinding :: IORef FuntypeUniformBlockBinding+glrefUniformBlockBinding = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUniformBlockBinding #-}+glUniformBlockBinding :: FuntypeUniformBlockBinding+glUniformBlockBinding = unsafePerformIO $ readIORef glrefUniformBlockBinding+{-# INLINE glUniformBlockBinding #-}++-- GL_VERSION_3_2++type FuntypeDrawElementsBaseVertex =+ GLenum ->+ GLsizei ->+ GLenum ->+ Ptr () ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDrawElementsBaseVertex :: FunPtr FuntypeDrawElementsBaseVertex -> FuntypeDrawElementsBaseVertex+glrefDrawElementsBaseVertex :: IORef FuntypeDrawElementsBaseVertex+glrefDrawElementsBaseVertex = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDrawElementsBaseVertex #-}+glDrawElementsBaseVertex :: FuntypeDrawElementsBaseVertex+glDrawElementsBaseVertex = unsafePerformIO $ readIORef glrefDrawElementsBaseVertex+{-# INLINE glDrawElementsBaseVertex #-}+type FuntypeDrawRangeElementsBaseVertex =+ GLenum ->+ GLuint ->+ GLuint ->+ GLsizei ->+ GLenum ->+ Ptr () ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDrawRangeElementsBaseVertex :: FunPtr FuntypeDrawRangeElementsBaseVertex -> FuntypeDrawRangeElementsBaseVertex+glrefDrawRangeElementsBaseVertex :: IORef FuntypeDrawRangeElementsBaseVertex+glrefDrawRangeElementsBaseVertex = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDrawRangeElementsBaseVertex #-}+glDrawRangeElementsBaseVertex :: FuntypeDrawRangeElementsBaseVertex+glDrawRangeElementsBaseVertex = unsafePerformIO $ readIORef glrefDrawRangeElementsBaseVertex+{-# INLINE glDrawRangeElementsBaseVertex #-}+type FuntypeDrawElementsInstancedBaseVertex =+ GLenum ->+ GLsizei ->+ GLenum ->+ Ptr () ->+ GLsizei ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDrawElementsInstancedBaseVertex :: FunPtr FuntypeDrawElementsInstancedBaseVertex -> FuntypeDrawElementsInstancedBaseVertex+glrefDrawElementsInstancedBaseVertex :: IORef FuntypeDrawElementsInstancedBaseVertex+glrefDrawElementsInstancedBaseVertex = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDrawElementsInstancedBaseVertex #-}+glDrawElementsInstancedBaseVertex :: FuntypeDrawElementsInstancedBaseVertex+glDrawElementsInstancedBaseVertex = unsafePerformIO $ readIORef glrefDrawElementsInstancedBaseVertex+{-# INLINE glDrawElementsInstancedBaseVertex #-}+type FuntypeMultiDrawElementsBaseVertex =+ GLenum ->+ Ptr (GLsizei) ->+ GLenum ->+ Ptr (Ptr ()) ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiDrawElementsBaseVertex :: FunPtr FuntypeMultiDrawElementsBaseVertex -> FuntypeMultiDrawElementsBaseVertex+glrefMultiDrawElementsBaseVertex :: IORef FuntypeMultiDrawElementsBaseVertex+glrefMultiDrawElementsBaseVertex = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiDrawElementsBaseVertex #-}+glMultiDrawElementsBaseVertex :: FuntypeMultiDrawElementsBaseVertex+glMultiDrawElementsBaseVertex = unsafePerformIO $ readIORef glrefMultiDrawElementsBaseVertex+{-# INLINE glMultiDrawElementsBaseVertex #-}+type FuntypeProvokingVertex =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProvokingVertex :: FunPtr FuntypeProvokingVertex -> FuntypeProvokingVertex+glrefProvokingVertex :: IORef FuntypeProvokingVertex+glrefProvokingVertex = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProvokingVertex #-}+glProvokingVertex :: FuntypeProvokingVertex+glProvokingVertex = unsafePerformIO $ readIORef glrefProvokingVertex+{-# INLINE glProvokingVertex #-}+type FuntypeFenceSync =+ GLenum ->+ GLbitfield ->+ IO ( GLsync )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFenceSync :: FunPtr FuntypeFenceSync -> FuntypeFenceSync+glrefFenceSync :: IORef FuntypeFenceSync+glrefFenceSync = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFenceSync #-}+glFenceSync :: FuntypeFenceSync+glFenceSync = unsafePerformIO $ readIORef glrefFenceSync+{-# INLINE glFenceSync #-}+type FuntypeIsSync =+ GLsync ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsSync :: FunPtr FuntypeIsSync -> FuntypeIsSync+glrefIsSync :: IORef FuntypeIsSync+glrefIsSync = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsSync #-}+glIsSync :: FuntypeIsSync+glIsSync = unsafePerformIO $ readIORef glrefIsSync+{-# INLINE glIsSync #-}+type FuntypeDeleteSync =+ GLsync ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDeleteSync :: FunPtr FuntypeDeleteSync -> FuntypeDeleteSync+glrefDeleteSync :: IORef FuntypeDeleteSync+glrefDeleteSync = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDeleteSync #-}+glDeleteSync :: FuntypeDeleteSync+glDeleteSync = unsafePerformIO $ readIORef glrefDeleteSync+{-# INLINE glDeleteSync #-}+type FuntypeClientWaitSync =+ GLsync ->+ GLbitfield ->+ GLuint64 ->+ IO ( GLenum )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClientWaitSync :: FunPtr FuntypeClientWaitSync -> FuntypeClientWaitSync+glrefClientWaitSync :: IORef FuntypeClientWaitSync+glrefClientWaitSync = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClientWaitSync #-}+glClientWaitSync :: FuntypeClientWaitSync+glClientWaitSync = unsafePerformIO $ readIORef glrefClientWaitSync+{-# INLINE glClientWaitSync #-}+type FuntypeWaitSync =+ GLsync ->+ GLbitfield ->+ GLuint64 ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynWaitSync :: FunPtr FuntypeWaitSync -> FuntypeWaitSync+glrefWaitSync :: IORef FuntypeWaitSync+glrefWaitSync = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefWaitSync #-}+glWaitSync :: FuntypeWaitSync+glWaitSync = unsafePerformIO $ readIORef glrefWaitSync+{-# INLINE glWaitSync #-}+type FuntypeGetInteger64v =+ GLenum ->+ Ptr (GLint64) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetInteger64v :: FunPtr FuntypeGetInteger64v -> FuntypeGetInteger64v+glrefGetInteger64v :: IORef FuntypeGetInteger64v+glrefGetInteger64v = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetInteger64v #-}+glGetInteger64v :: FuntypeGetInteger64v+glGetInteger64v = unsafePerformIO $ readIORef glrefGetInteger64v+{-# INLINE glGetInteger64v #-}+type FuntypeGetSynciv =+ GLsync ->+ GLenum ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetSynciv :: FunPtr FuntypeGetSynciv -> FuntypeGetSynciv+glrefGetSynciv :: IORef FuntypeGetSynciv+glrefGetSynciv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetSynciv #-}+glGetSynciv :: FuntypeGetSynciv+glGetSynciv = unsafePerformIO $ readIORef glrefGetSynciv+{-# INLINE glGetSynciv #-}+type FuntypeGetInteger64i_v =+ GLenum ->+ GLuint ->+ Ptr (GLint64) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetInteger64i_v :: FunPtr FuntypeGetInteger64i_v -> FuntypeGetInteger64i_v+glrefGetInteger64i_v :: IORef FuntypeGetInteger64i_v+glrefGetInteger64i_v = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetInteger64i_v #-}+glGetInteger64i_v :: FuntypeGetInteger64i_v+glGetInteger64i_v = unsafePerformIO $ readIORef glrefGetInteger64i_v+{-# INLINE glGetInteger64i_v #-}+type FuntypeGetBufferParameteri64v =+ GLenum ->+ GLenum ->+ Ptr (GLint64) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetBufferParameteri64v :: FunPtr FuntypeGetBufferParameteri64v -> FuntypeGetBufferParameteri64v+glrefGetBufferParameteri64v :: IORef FuntypeGetBufferParameteri64v+glrefGetBufferParameteri64v = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetBufferParameteri64v #-}+glGetBufferParameteri64v :: FuntypeGetBufferParameteri64v+glGetBufferParameteri64v = unsafePerformIO $ readIORef glrefGetBufferParameteri64v+{-# INLINE glGetBufferParameteri64v #-}+type FuntypeFramebufferTexture =+ GLenum ->+ GLenum ->+ GLuint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFramebufferTexture :: FunPtr FuntypeFramebufferTexture -> FuntypeFramebufferTexture+glrefFramebufferTexture :: IORef FuntypeFramebufferTexture+glrefFramebufferTexture = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFramebufferTexture #-}+glFramebufferTexture :: FuntypeFramebufferTexture+glFramebufferTexture = unsafePerformIO $ readIORef glrefFramebufferTexture+{-# INLINE glFramebufferTexture #-}+type FuntypeTexImage2DMultisample =+ GLenum ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLboolean ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexImage2DMultisample :: FunPtr FuntypeTexImage2DMultisample -> FuntypeTexImage2DMultisample+glrefTexImage2DMultisample :: IORef FuntypeTexImage2DMultisample+glrefTexImage2DMultisample = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexImage2DMultisample #-}+glTexImage2DMultisample :: FuntypeTexImage2DMultisample+glTexImage2DMultisample = unsafePerformIO $ readIORef glrefTexImage2DMultisample+{-# INLINE glTexImage2DMultisample #-}+type FuntypeTexImage3DMultisample =+ GLenum ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLboolean ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexImage3DMultisample :: FunPtr FuntypeTexImage3DMultisample -> FuntypeTexImage3DMultisample+glrefTexImage3DMultisample :: IORef FuntypeTexImage3DMultisample+glrefTexImage3DMultisample = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexImage3DMultisample #-}+glTexImage3DMultisample :: FuntypeTexImage3DMultisample+glTexImage3DMultisample = unsafePerformIO $ readIORef glrefTexImage3DMultisample+{-# INLINE glTexImage3DMultisample #-}+type FuntypeGetMultisamplefv =+ GLenum ->+ GLuint ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultisamplefv :: FunPtr FuntypeGetMultisamplefv -> FuntypeGetMultisamplefv+glrefGetMultisamplefv :: IORef FuntypeGetMultisamplefv+glrefGetMultisamplefv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultisamplefv #-}+glGetMultisamplefv :: FuntypeGetMultisamplefv+glGetMultisamplefv = unsafePerformIO $ readIORef glrefGetMultisamplefv+{-# INLINE glGetMultisamplefv #-}+type FuntypeSampleMaski =+ GLuint ->+ GLbitfield ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynSampleMaski :: FunPtr FuntypeSampleMaski -> FuntypeSampleMaski+glrefSampleMaski :: IORef FuntypeSampleMaski+glrefSampleMaski = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefSampleMaski #-}+glSampleMaski :: FuntypeSampleMaski+glSampleMaski = unsafePerformIO $ readIORef glrefSampleMaski+{-# INLINE glSampleMaski #-}++-- GL_VERSION_3_3++type FuntypeBindFragDataLocationIndexed =+ GLuint ->+ GLuint ->+ GLuint ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindFragDataLocationIndexed :: FunPtr FuntypeBindFragDataLocationIndexed -> FuntypeBindFragDataLocationIndexed+glrefBindFragDataLocationIndexed :: IORef FuntypeBindFragDataLocationIndexed+glrefBindFragDataLocationIndexed = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindFragDataLocationIndexed #-}+glBindFragDataLocationIndexed :: FuntypeBindFragDataLocationIndexed+glBindFragDataLocationIndexed = unsafePerformIO $ readIORef glrefBindFragDataLocationIndexed+{-# INLINE glBindFragDataLocationIndexed #-}+type FuntypeGetFragDataIndex =+ GLuint ->+ Ptr (GLchar) ->+ IO ( GLint )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetFragDataIndex :: FunPtr FuntypeGetFragDataIndex -> FuntypeGetFragDataIndex+glrefGetFragDataIndex :: IORef FuntypeGetFragDataIndex+glrefGetFragDataIndex = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetFragDataIndex #-}+glGetFragDataIndex :: FuntypeGetFragDataIndex+glGetFragDataIndex = unsafePerformIO $ readIORef glrefGetFragDataIndex+{-# INLINE glGetFragDataIndex #-}+type FuntypeGenSamplers =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGenSamplers :: FunPtr FuntypeGenSamplers -> FuntypeGenSamplers+glrefGenSamplers :: IORef FuntypeGenSamplers+glrefGenSamplers = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGenSamplers #-}+glGenSamplers :: FuntypeGenSamplers+glGenSamplers = unsafePerformIO $ readIORef glrefGenSamplers+{-# INLINE glGenSamplers #-}+type FuntypeDeleteSamplers =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDeleteSamplers :: FunPtr FuntypeDeleteSamplers -> FuntypeDeleteSamplers+glrefDeleteSamplers :: IORef FuntypeDeleteSamplers+glrefDeleteSamplers = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDeleteSamplers #-}+glDeleteSamplers :: FuntypeDeleteSamplers+glDeleteSamplers = unsafePerformIO $ readIORef glrefDeleteSamplers+{-# INLINE glDeleteSamplers #-}+type FuntypeIsSampler =+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsSampler :: FunPtr FuntypeIsSampler -> FuntypeIsSampler+glrefIsSampler :: IORef FuntypeIsSampler+glrefIsSampler = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsSampler #-}+glIsSampler :: FuntypeIsSampler+glIsSampler = unsafePerformIO $ readIORef glrefIsSampler+{-# INLINE glIsSampler #-}+type FuntypeBindSampler =+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindSampler :: FunPtr FuntypeBindSampler -> FuntypeBindSampler+glrefBindSampler :: IORef FuntypeBindSampler+glrefBindSampler = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindSampler #-}+glBindSampler :: FuntypeBindSampler+glBindSampler = unsafePerformIO $ readIORef glrefBindSampler+{-# INLINE glBindSampler #-}+type FuntypeSamplerParameteri =+ GLuint ->+ GLenum ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynSamplerParameteri :: FunPtr FuntypeSamplerParameteri -> FuntypeSamplerParameteri+glrefSamplerParameteri :: IORef FuntypeSamplerParameteri+glrefSamplerParameteri = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefSamplerParameteri #-}+glSamplerParameteri :: FuntypeSamplerParameteri+glSamplerParameteri = unsafePerformIO $ readIORef glrefSamplerParameteri+{-# INLINE glSamplerParameteri #-}+type FuntypeSamplerParameteriv =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynSamplerParameteriv :: FunPtr FuntypeSamplerParameteriv -> FuntypeSamplerParameteriv+glrefSamplerParameteriv :: IORef FuntypeSamplerParameteriv+glrefSamplerParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefSamplerParameteriv #-}+glSamplerParameteriv :: FuntypeSamplerParameteriv+glSamplerParameteriv = unsafePerformIO $ readIORef glrefSamplerParameteriv+{-# INLINE glSamplerParameteriv #-}+type FuntypeSamplerParameterf =+ GLuint ->+ GLenum ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynSamplerParameterf :: FunPtr FuntypeSamplerParameterf -> FuntypeSamplerParameterf+glrefSamplerParameterf :: IORef FuntypeSamplerParameterf+glrefSamplerParameterf = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefSamplerParameterf #-}+glSamplerParameterf :: FuntypeSamplerParameterf+glSamplerParameterf = unsafePerformIO $ readIORef glrefSamplerParameterf+{-# INLINE glSamplerParameterf #-}+type FuntypeSamplerParameterfv =+ GLuint ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynSamplerParameterfv :: FunPtr FuntypeSamplerParameterfv -> FuntypeSamplerParameterfv+glrefSamplerParameterfv :: IORef FuntypeSamplerParameterfv+glrefSamplerParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefSamplerParameterfv #-}+glSamplerParameterfv :: FuntypeSamplerParameterfv+glSamplerParameterfv = unsafePerformIO $ readIORef glrefSamplerParameterfv+{-# INLINE glSamplerParameterfv #-}+type FuntypeSamplerParameterIiv =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynSamplerParameterIiv :: FunPtr FuntypeSamplerParameterIiv -> FuntypeSamplerParameterIiv+glrefSamplerParameterIiv :: IORef FuntypeSamplerParameterIiv+glrefSamplerParameterIiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefSamplerParameterIiv #-}+glSamplerParameterIiv :: FuntypeSamplerParameterIiv+glSamplerParameterIiv = unsafePerformIO $ readIORef glrefSamplerParameterIiv+{-# INLINE glSamplerParameterIiv #-}+type FuntypeSamplerParameterIuiv =+ GLuint ->+ GLenum ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynSamplerParameterIuiv :: FunPtr FuntypeSamplerParameterIuiv -> FuntypeSamplerParameterIuiv+glrefSamplerParameterIuiv :: IORef FuntypeSamplerParameterIuiv+glrefSamplerParameterIuiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefSamplerParameterIuiv #-}+glSamplerParameterIuiv :: FuntypeSamplerParameterIuiv+glSamplerParameterIuiv = unsafePerformIO $ readIORef glrefSamplerParameterIuiv+{-# INLINE glSamplerParameterIuiv #-}+type FuntypeGetSamplerParameteriv =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetSamplerParameteriv :: FunPtr FuntypeGetSamplerParameteriv -> FuntypeGetSamplerParameteriv+glrefGetSamplerParameteriv :: IORef FuntypeGetSamplerParameteriv+glrefGetSamplerParameteriv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetSamplerParameteriv #-}+glGetSamplerParameteriv :: FuntypeGetSamplerParameteriv+glGetSamplerParameteriv = unsafePerformIO $ readIORef glrefGetSamplerParameteriv+{-# INLINE glGetSamplerParameteriv #-}+type FuntypeGetSamplerParameterIiv =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetSamplerParameterIiv :: FunPtr FuntypeGetSamplerParameterIiv -> FuntypeGetSamplerParameterIiv+glrefGetSamplerParameterIiv :: IORef FuntypeGetSamplerParameterIiv+glrefGetSamplerParameterIiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetSamplerParameterIiv #-}+glGetSamplerParameterIiv :: FuntypeGetSamplerParameterIiv+glGetSamplerParameterIiv = unsafePerformIO $ readIORef glrefGetSamplerParameterIiv+{-# INLINE glGetSamplerParameterIiv #-}+type FuntypeGetSamplerParameterfv =+ GLuint ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetSamplerParameterfv :: FunPtr FuntypeGetSamplerParameterfv -> FuntypeGetSamplerParameterfv+glrefGetSamplerParameterfv :: IORef FuntypeGetSamplerParameterfv+glrefGetSamplerParameterfv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetSamplerParameterfv #-}+glGetSamplerParameterfv :: FuntypeGetSamplerParameterfv+glGetSamplerParameterfv = unsafePerformIO $ readIORef glrefGetSamplerParameterfv+{-# INLINE glGetSamplerParameterfv #-}+type FuntypeGetSamplerParameterIuiv =+ GLuint ->+ GLenum ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetSamplerParameterIuiv :: FunPtr FuntypeGetSamplerParameterIuiv -> FuntypeGetSamplerParameterIuiv+glrefGetSamplerParameterIuiv :: IORef FuntypeGetSamplerParameterIuiv+glrefGetSamplerParameterIuiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetSamplerParameterIuiv #-}+glGetSamplerParameterIuiv :: FuntypeGetSamplerParameterIuiv+glGetSamplerParameterIuiv = unsafePerformIO $ readIORef glrefGetSamplerParameterIuiv+{-# INLINE glGetSamplerParameterIuiv #-}+type FuntypeQueryCounter =+ GLuint ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynQueryCounter :: FunPtr FuntypeQueryCounter -> FuntypeQueryCounter+glrefQueryCounter :: IORef FuntypeQueryCounter+glrefQueryCounter = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefQueryCounter #-}+glQueryCounter :: FuntypeQueryCounter+glQueryCounter = unsafePerformIO $ readIORef glrefQueryCounter+{-# INLINE glQueryCounter #-}+type FuntypeGetQueryObjecti64v =+ GLuint ->+ GLenum ->+ Ptr (GLint64) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetQueryObjecti64v :: FunPtr FuntypeGetQueryObjecti64v -> FuntypeGetQueryObjecti64v+glrefGetQueryObjecti64v :: IORef FuntypeGetQueryObjecti64v+glrefGetQueryObjecti64v = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetQueryObjecti64v #-}+glGetQueryObjecti64v :: FuntypeGetQueryObjecti64v+glGetQueryObjecti64v = unsafePerformIO $ readIORef glrefGetQueryObjecti64v+{-# INLINE glGetQueryObjecti64v #-}+type FuntypeGetQueryObjectui64v =+ GLuint ->+ GLenum ->+ Ptr (GLuint64) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetQueryObjectui64v :: FunPtr FuntypeGetQueryObjectui64v -> FuntypeGetQueryObjectui64v+glrefGetQueryObjectui64v :: IORef FuntypeGetQueryObjectui64v+glrefGetQueryObjectui64v = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetQueryObjectui64v #-}+glGetQueryObjectui64v :: FuntypeGetQueryObjectui64v+glGetQueryObjectui64v = unsafePerformIO $ readIORef glrefGetQueryObjectui64v+{-# INLINE glGetQueryObjectui64v #-}+type FuntypeVertexAttribDivisor =+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribDivisor :: FunPtr FuntypeVertexAttribDivisor -> FuntypeVertexAttribDivisor+glrefVertexAttribDivisor :: IORef FuntypeVertexAttribDivisor+glrefVertexAttribDivisor = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribDivisor #-}+glVertexAttribDivisor :: FuntypeVertexAttribDivisor+glVertexAttribDivisor = unsafePerformIO $ readIORef glrefVertexAttribDivisor+{-# INLINE glVertexAttribDivisor #-}+type FuntypeVertexAttribP1ui =+ GLuint ->+ GLenum ->+ GLboolean ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribP1ui :: FunPtr FuntypeVertexAttribP1ui -> FuntypeVertexAttribP1ui+glrefVertexAttribP1ui :: IORef FuntypeVertexAttribP1ui+glrefVertexAttribP1ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribP1ui #-}+glVertexAttribP1ui :: FuntypeVertexAttribP1ui+glVertexAttribP1ui = unsafePerformIO $ readIORef glrefVertexAttribP1ui+{-# INLINE glVertexAttribP1ui #-}+type FuntypeVertexAttribP1uiv =+ GLuint ->+ GLenum ->+ GLboolean ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribP1uiv :: FunPtr FuntypeVertexAttribP1uiv -> FuntypeVertexAttribP1uiv+glrefVertexAttribP1uiv :: IORef FuntypeVertexAttribP1uiv+glrefVertexAttribP1uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribP1uiv #-}+glVertexAttribP1uiv :: FuntypeVertexAttribP1uiv+glVertexAttribP1uiv = unsafePerformIO $ readIORef glrefVertexAttribP1uiv+{-# INLINE glVertexAttribP1uiv #-}+type FuntypeVertexAttribP2ui =+ GLuint ->+ GLenum ->+ GLboolean ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribP2ui :: FunPtr FuntypeVertexAttribP2ui -> FuntypeVertexAttribP2ui+glrefVertexAttribP2ui :: IORef FuntypeVertexAttribP2ui+glrefVertexAttribP2ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribP2ui #-}+glVertexAttribP2ui :: FuntypeVertexAttribP2ui+glVertexAttribP2ui = unsafePerformIO $ readIORef glrefVertexAttribP2ui+{-# INLINE glVertexAttribP2ui #-}+type FuntypeVertexAttribP2uiv =+ GLuint ->+ GLenum ->+ GLboolean ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribP2uiv :: FunPtr FuntypeVertexAttribP2uiv -> FuntypeVertexAttribP2uiv+glrefVertexAttribP2uiv :: IORef FuntypeVertexAttribP2uiv+glrefVertexAttribP2uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribP2uiv #-}+glVertexAttribP2uiv :: FuntypeVertexAttribP2uiv+glVertexAttribP2uiv = unsafePerformIO $ readIORef glrefVertexAttribP2uiv+{-# INLINE glVertexAttribP2uiv #-}+type FuntypeVertexAttribP3ui =+ GLuint ->+ GLenum ->+ GLboolean ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribP3ui :: FunPtr FuntypeVertexAttribP3ui -> FuntypeVertexAttribP3ui+glrefVertexAttribP3ui :: IORef FuntypeVertexAttribP3ui+glrefVertexAttribP3ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribP3ui #-}+glVertexAttribP3ui :: FuntypeVertexAttribP3ui+glVertexAttribP3ui = unsafePerformIO $ readIORef glrefVertexAttribP3ui+{-# INLINE glVertexAttribP3ui #-}+type FuntypeVertexAttribP3uiv =+ GLuint ->+ GLenum ->+ GLboolean ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribP3uiv :: FunPtr FuntypeVertexAttribP3uiv -> FuntypeVertexAttribP3uiv+glrefVertexAttribP3uiv :: IORef FuntypeVertexAttribP3uiv+glrefVertexAttribP3uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribP3uiv #-}+glVertexAttribP3uiv :: FuntypeVertexAttribP3uiv+glVertexAttribP3uiv = unsafePerformIO $ readIORef glrefVertexAttribP3uiv+{-# INLINE glVertexAttribP3uiv #-}+type FuntypeVertexAttribP4ui =+ GLuint ->+ GLenum ->+ GLboolean ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribP4ui :: FunPtr FuntypeVertexAttribP4ui -> FuntypeVertexAttribP4ui+glrefVertexAttribP4ui :: IORef FuntypeVertexAttribP4ui+glrefVertexAttribP4ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribP4ui #-}+glVertexAttribP4ui :: FuntypeVertexAttribP4ui+glVertexAttribP4ui = unsafePerformIO $ readIORef glrefVertexAttribP4ui+{-# INLINE glVertexAttribP4ui #-}+type FuntypeVertexAttribP4uiv =+ GLuint ->+ GLenum ->+ GLboolean ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexAttribP4uiv :: FunPtr FuntypeVertexAttribP4uiv -> FuntypeVertexAttribP4uiv+glrefVertexAttribP4uiv :: IORef FuntypeVertexAttribP4uiv+glrefVertexAttribP4uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexAttribP4uiv #-}+glVertexAttribP4uiv :: FuntypeVertexAttribP4uiv+glVertexAttribP4uiv = unsafePerformIO $ readIORef glrefVertexAttribP4uiv+{-# INLINE glVertexAttribP4uiv #-}++-- GL_ARB_texture_storage++type FuntypeTexStorage1D =+ GLenum ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexStorage1D :: FunPtr FuntypeTexStorage1D -> FuntypeTexStorage1D+glrefTexStorage1D :: IORef FuntypeTexStorage1D+glrefTexStorage1D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexStorage1D #-}+glTexStorage1D :: FuntypeTexStorage1D+glTexStorage1D = unsafePerformIO $ readIORef glrefTexStorage1D+{-# INLINE glTexStorage1D #-}+type FuntypeTexStorage2D =+ GLenum ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexStorage2D :: FunPtr FuntypeTexStorage2D -> FuntypeTexStorage2D+glrefTexStorage2D :: IORef FuntypeTexStorage2D+glrefTexStorage2D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexStorage2D #-}+glTexStorage2D :: FuntypeTexStorage2D+glTexStorage2D = unsafePerformIO $ readIORef glrefTexStorage2D+{-# INLINE glTexStorage2D #-}+type FuntypeTexStorage3D =+ GLenum ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexStorage3D :: FunPtr FuntypeTexStorage3D -> FuntypeTexStorage3D+glrefTexStorage3D :: IORef FuntypeTexStorage3D+glrefTexStorage3D = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexStorage3D #-}+glTexStorage3D :: FuntypeTexStorage3D+glTexStorage3D = unsafePerformIO $ readIORef glrefTexStorage3D+{-# INLINE glTexStorage3D #-}++-- GL_KHR_debug++type FuntypeDebugMessageControl =+ GLenum ->+ GLenum ->+ GLenum ->+ GLsizei ->+ Ptr (GLuint) ->+ GLboolean ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDebugMessageControl :: FunPtr FuntypeDebugMessageControl -> FuntypeDebugMessageControl+glrefDebugMessageControl :: IORef FuntypeDebugMessageControl+glrefDebugMessageControl = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDebugMessageControl #-}+glDebugMessageControl :: FuntypeDebugMessageControl+glDebugMessageControl = unsafePerformIO $ readIORef glrefDebugMessageControl+{-# INLINE glDebugMessageControl #-}+type FuntypeDebugMessageInsert =+ GLenum ->+ GLenum ->+ GLuint ->+ GLenum ->+ GLsizei ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDebugMessageInsert :: FunPtr FuntypeDebugMessageInsert -> FuntypeDebugMessageInsert+glrefDebugMessageInsert :: IORef FuntypeDebugMessageInsert+glrefDebugMessageInsert = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDebugMessageInsert #-}+glDebugMessageInsert :: FuntypeDebugMessageInsert+glDebugMessageInsert = unsafePerformIO $ readIORef glrefDebugMessageInsert+{-# INLINE glDebugMessageInsert #-}+type FuntypeDebugMessageCallback =+ GLDEBUGPROC ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDebugMessageCallback :: FunPtr FuntypeDebugMessageCallback -> FuntypeDebugMessageCallback+glrefDebugMessageCallback :: IORef FuntypeDebugMessageCallback+glrefDebugMessageCallback = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDebugMessageCallback #-}+glDebugMessageCallback :: FuntypeDebugMessageCallback+glDebugMessageCallback = unsafePerformIO $ readIORef glrefDebugMessageCallback+{-# INLINE glDebugMessageCallback #-}+type FuntypeGetDebugMessageLog =+ GLuint ->+ GLsizei ->+ Ptr (GLenum) ->+ Ptr (GLenum) ->+ Ptr (GLuint) ->+ Ptr (GLenum) ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( GLuint )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetDebugMessageLog :: FunPtr FuntypeGetDebugMessageLog -> FuntypeGetDebugMessageLog+glrefGetDebugMessageLog :: IORef FuntypeGetDebugMessageLog+glrefGetDebugMessageLog = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetDebugMessageLog #-}+glGetDebugMessageLog :: FuntypeGetDebugMessageLog+glGetDebugMessageLog = unsafePerformIO $ readIORef glrefGetDebugMessageLog+{-# INLINE glGetDebugMessageLog #-}+type FuntypePushDebugGroup =+ GLenum ->+ GLuint ->+ GLsizei ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPushDebugGroup :: FunPtr FuntypePushDebugGroup -> FuntypePushDebugGroup+glrefPushDebugGroup :: IORef FuntypePushDebugGroup+glrefPushDebugGroup = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPushDebugGroup #-}+glPushDebugGroup :: FuntypePushDebugGroup+glPushDebugGroup = unsafePerformIO $ readIORef glrefPushDebugGroup+{-# INLINE glPushDebugGroup #-}+type FuntypePopDebugGroup =+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPopDebugGroup :: FunPtr FuntypePopDebugGroup -> FuntypePopDebugGroup+glrefPopDebugGroup :: IORef FuntypePopDebugGroup+glrefPopDebugGroup = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPopDebugGroup #-}+glPopDebugGroup :: FuntypePopDebugGroup+glPopDebugGroup = unsafePerformIO $ readIORef glrefPopDebugGroup+{-# INLINE glPopDebugGroup #-}+type FuntypeObjectLabel =+ GLenum ->+ GLuint ->+ GLsizei ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynObjectLabel :: FunPtr FuntypeObjectLabel -> FuntypeObjectLabel+glrefObjectLabel :: IORef FuntypeObjectLabel+glrefObjectLabel = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefObjectLabel #-}+glObjectLabel :: FuntypeObjectLabel+glObjectLabel = unsafePerformIO $ readIORef glrefObjectLabel+{-# INLINE glObjectLabel #-}+type FuntypeGetObjectLabel =+ GLenum ->+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetObjectLabel :: FunPtr FuntypeGetObjectLabel -> FuntypeGetObjectLabel+glrefGetObjectLabel :: IORef FuntypeGetObjectLabel+glrefGetObjectLabel = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetObjectLabel #-}+glGetObjectLabel :: FuntypeGetObjectLabel+glGetObjectLabel = unsafePerformIO $ readIORef glrefGetObjectLabel+{-# INLINE glGetObjectLabel #-}+type FuntypeObjectPtrLabel =+ Ptr () ->+ GLsizei ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynObjectPtrLabel :: FunPtr FuntypeObjectPtrLabel -> FuntypeObjectPtrLabel+glrefObjectPtrLabel :: IORef FuntypeObjectPtrLabel+glrefObjectPtrLabel = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefObjectPtrLabel #-}+glObjectPtrLabel :: FuntypeObjectPtrLabel+glObjectPtrLabel = unsafePerformIO $ readIORef glrefObjectPtrLabel+{-# INLINE glObjectPtrLabel #-}+type FuntypeGetObjectPtrLabel =+ Ptr () ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetObjectPtrLabel :: FunPtr FuntypeGetObjectPtrLabel -> FuntypeGetObjectPtrLabel+glrefGetObjectPtrLabel :: IORef FuntypeGetObjectPtrLabel+glrefGetObjectPtrLabel = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetObjectPtrLabel #-}+glGetObjectPtrLabel :: FuntypeGetObjectPtrLabel+glGetObjectPtrLabel = unsafePerformIO $ readIORef glrefGetObjectPtrLabel+{-# INLINE glGetObjectPtrLabel #-}+type FuntypeGetPointerv =+ GLenum ->+ Ptr (Ptr ()) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetPointerv :: FunPtr FuntypeGetPointerv -> FuntypeGetPointerv+glrefGetPointerv :: IORef FuntypeGetPointerv+glrefGetPointerv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetPointerv #-}+glGetPointerv :: FuntypeGetPointerv+glGetPointerv = unsafePerformIO $ readIORef glrefGetPointerv+{-# INLINE glGetPointerv #-}+type FuntypeDebugMessageControlKHR =+ GLenum ->+ GLenum ->+ GLenum ->+ GLsizei ->+ Ptr (GLuint) ->+ GLboolean ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDebugMessageControlKHR :: FunPtr FuntypeDebugMessageControlKHR -> FuntypeDebugMessageControlKHR+glrefDebugMessageControlKHR :: IORef FuntypeDebugMessageControlKHR+glrefDebugMessageControlKHR = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDebugMessageControlKHR #-}+glDebugMessageControlKHR :: FuntypeDebugMessageControlKHR+glDebugMessageControlKHR = unsafePerformIO $ readIORef glrefDebugMessageControlKHR+{-# INLINE glDebugMessageControlKHR #-}+type FuntypeDebugMessageInsertKHR =+ GLenum ->+ GLenum ->+ GLuint ->+ GLenum ->+ GLsizei ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDebugMessageInsertKHR :: FunPtr FuntypeDebugMessageInsertKHR -> FuntypeDebugMessageInsertKHR+glrefDebugMessageInsertKHR :: IORef FuntypeDebugMessageInsertKHR+glrefDebugMessageInsertKHR = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDebugMessageInsertKHR #-}+glDebugMessageInsertKHR :: FuntypeDebugMessageInsertKHR+glDebugMessageInsertKHR = unsafePerformIO $ readIORef glrefDebugMessageInsertKHR+{-# INLINE glDebugMessageInsertKHR #-}+type FuntypeDebugMessageCallbackKHR =+ GLDEBUGPROCKHR ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDebugMessageCallbackKHR :: FunPtr FuntypeDebugMessageCallbackKHR -> FuntypeDebugMessageCallbackKHR+glrefDebugMessageCallbackKHR :: IORef FuntypeDebugMessageCallbackKHR+glrefDebugMessageCallbackKHR = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDebugMessageCallbackKHR #-}+glDebugMessageCallbackKHR :: FuntypeDebugMessageCallbackKHR+glDebugMessageCallbackKHR = unsafePerformIO $ readIORef glrefDebugMessageCallbackKHR+{-# INLINE glDebugMessageCallbackKHR #-}+type FuntypeGetDebugMessageLogKHR =+ GLuint ->+ GLsizei ->+ Ptr (GLenum) ->+ Ptr (GLenum) ->+ Ptr (GLuint) ->+ Ptr (GLenum) ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( GLuint )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetDebugMessageLogKHR :: FunPtr FuntypeGetDebugMessageLogKHR -> FuntypeGetDebugMessageLogKHR+glrefGetDebugMessageLogKHR :: IORef FuntypeGetDebugMessageLogKHR+glrefGetDebugMessageLogKHR = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetDebugMessageLogKHR #-}+glGetDebugMessageLogKHR :: FuntypeGetDebugMessageLogKHR+glGetDebugMessageLogKHR = unsafePerformIO $ readIORef glrefGetDebugMessageLogKHR+{-# INLINE glGetDebugMessageLogKHR #-}+type FuntypePushDebugGroupKHR =+ GLenum ->+ GLuint ->+ GLsizei ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPushDebugGroupKHR :: FunPtr FuntypePushDebugGroupKHR -> FuntypePushDebugGroupKHR+glrefPushDebugGroupKHR :: IORef FuntypePushDebugGroupKHR+glrefPushDebugGroupKHR = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPushDebugGroupKHR #-}+glPushDebugGroupKHR :: FuntypePushDebugGroupKHR+glPushDebugGroupKHR = unsafePerformIO $ readIORef glrefPushDebugGroupKHR+{-# INLINE glPushDebugGroupKHR #-}+type FuntypePopDebugGroupKHR =+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPopDebugGroupKHR :: FunPtr FuntypePopDebugGroupKHR -> FuntypePopDebugGroupKHR+glrefPopDebugGroupKHR :: IORef FuntypePopDebugGroupKHR+glrefPopDebugGroupKHR = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPopDebugGroupKHR #-}+glPopDebugGroupKHR :: FuntypePopDebugGroupKHR+glPopDebugGroupKHR = unsafePerformIO $ readIORef glrefPopDebugGroupKHR+{-# INLINE glPopDebugGroupKHR #-}+type FuntypeObjectLabelKHR =+ GLenum ->+ GLuint ->+ GLsizei ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynObjectLabelKHR :: FunPtr FuntypeObjectLabelKHR -> FuntypeObjectLabelKHR+glrefObjectLabelKHR :: IORef FuntypeObjectLabelKHR+glrefObjectLabelKHR = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefObjectLabelKHR #-}+glObjectLabelKHR :: FuntypeObjectLabelKHR+glObjectLabelKHR = unsafePerformIO $ readIORef glrefObjectLabelKHR+{-# INLINE glObjectLabelKHR #-}+type FuntypeGetObjectLabelKHR =+ GLenum ->+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetObjectLabelKHR :: FunPtr FuntypeGetObjectLabelKHR -> FuntypeGetObjectLabelKHR+glrefGetObjectLabelKHR :: IORef FuntypeGetObjectLabelKHR+glrefGetObjectLabelKHR = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetObjectLabelKHR #-}+glGetObjectLabelKHR :: FuntypeGetObjectLabelKHR+glGetObjectLabelKHR = unsafePerformIO $ readIORef glrefGetObjectLabelKHR+{-# INLINE glGetObjectLabelKHR #-}+type FuntypeObjectPtrLabelKHR =+ Ptr () ->+ GLsizei ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynObjectPtrLabelKHR :: FunPtr FuntypeObjectPtrLabelKHR -> FuntypeObjectPtrLabelKHR+glrefObjectPtrLabelKHR :: IORef FuntypeObjectPtrLabelKHR+glrefObjectPtrLabelKHR = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefObjectPtrLabelKHR #-}+glObjectPtrLabelKHR :: FuntypeObjectPtrLabelKHR+glObjectPtrLabelKHR = unsafePerformIO $ readIORef glrefObjectPtrLabelKHR+{-# INLINE glObjectPtrLabelKHR #-}+type FuntypeGetObjectPtrLabelKHR =+ Ptr () ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetObjectPtrLabelKHR :: FunPtr FuntypeGetObjectPtrLabelKHR -> FuntypeGetObjectPtrLabelKHR+glrefGetObjectPtrLabelKHR :: IORef FuntypeGetObjectPtrLabelKHR+glrefGetObjectPtrLabelKHR = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetObjectPtrLabelKHR #-}+glGetObjectPtrLabelKHR :: FuntypeGetObjectPtrLabelKHR+glGetObjectPtrLabelKHR = unsafePerformIO $ readIORef glrefGetObjectPtrLabelKHR+{-# INLINE glGetObjectPtrLabelKHR #-}+type FuntypeGetPointervKHR =+ GLenum ->+ Ptr (Ptr ()) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetPointervKHR :: FunPtr FuntypeGetPointervKHR -> FuntypeGetPointervKHR+glrefGetPointervKHR :: IORef FuntypeGetPointervKHR+glrefGetPointervKHR = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetPointervKHR #-}+glGetPointervKHR :: FuntypeGetPointervKHR+glGetPointervKHR = unsafePerformIO $ readIORef glrefGetPointervKHR+{-# INLINE glGetPointervKHR #-}++-- GL_EXT_direct_state_access++type FuntypeMatrixLoadfEXT =+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixLoadfEXT :: FunPtr FuntypeMatrixLoadfEXT -> FuntypeMatrixLoadfEXT+glrefMatrixLoadfEXT :: IORef FuntypeMatrixLoadfEXT+glrefMatrixLoadfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixLoadfEXT #-}+glMatrixLoadfEXT :: FuntypeMatrixLoadfEXT+glMatrixLoadfEXT = unsafePerformIO $ readIORef glrefMatrixLoadfEXT+{-# INLINE glMatrixLoadfEXT #-}+type FuntypeMatrixLoaddEXT =+ GLenum ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixLoaddEXT :: FunPtr FuntypeMatrixLoaddEXT -> FuntypeMatrixLoaddEXT+glrefMatrixLoaddEXT :: IORef FuntypeMatrixLoaddEXT+glrefMatrixLoaddEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixLoaddEXT #-}+glMatrixLoaddEXT :: FuntypeMatrixLoaddEXT+glMatrixLoaddEXT = unsafePerformIO $ readIORef glrefMatrixLoaddEXT+{-# INLINE glMatrixLoaddEXT #-}+type FuntypeMatrixMultfEXT =+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixMultfEXT :: FunPtr FuntypeMatrixMultfEXT -> FuntypeMatrixMultfEXT+glrefMatrixMultfEXT :: IORef FuntypeMatrixMultfEXT+glrefMatrixMultfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixMultfEXT #-}+glMatrixMultfEXT :: FuntypeMatrixMultfEXT+glMatrixMultfEXT = unsafePerformIO $ readIORef glrefMatrixMultfEXT+{-# INLINE glMatrixMultfEXT #-}+type FuntypeMatrixMultdEXT =+ GLenum ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixMultdEXT :: FunPtr FuntypeMatrixMultdEXT -> FuntypeMatrixMultdEXT+glrefMatrixMultdEXT :: IORef FuntypeMatrixMultdEXT+glrefMatrixMultdEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixMultdEXT #-}+glMatrixMultdEXT :: FuntypeMatrixMultdEXT+glMatrixMultdEXT = unsafePerformIO $ readIORef glrefMatrixMultdEXT+{-# INLINE glMatrixMultdEXT #-}+type FuntypeMatrixLoadIdentityEXT =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixLoadIdentityEXT :: FunPtr FuntypeMatrixLoadIdentityEXT -> FuntypeMatrixLoadIdentityEXT+glrefMatrixLoadIdentityEXT :: IORef FuntypeMatrixLoadIdentityEXT+glrefMatrixLoadIdentityEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixLoadIdentityEXT #-}+glMatrixLoadIdentityEXT :: FuntypeMatrixLoadIdentityEXT+glMatrixLoadIdentityEXT = unsafePerformIO $ readIORef glrefMatrixLoadIdentityEXT+{-# INLINE glMatrixLoadIdentityEXT #-}+type FuntypeMatrixRotatefEXT =+ GLenum ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixRotatefEXT :: FunPtr FuntypeMatrixRotatefEXT -> FuntypeMatrixRotatefEXT+glrefMatrixRotatefEXT :: IORef FuntypeMatrixRotatefEXT+glrefMatrixRotatefEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixRotatefEXT #-}+glMatrixRotatefEXT :: FuntypeMatrixRotatefEXT+glMatrixRotatefEXT = unsafePerformIO $ readIORef glrefMatrixRotatefEXT+{-# INLINE glMatrixRotatefEXT #-}+type FuntypeMatrixRotatedEXT =+ GLenum ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixRotatedEXT :: FunPtr FuntypeMatrixRotatedEXT -> FuntypeMatrixRotatedEXT+glrefMatrixRotatedEXT :: IORef FuntypeMatrixRotatedEXT+glrefMatrixRotatedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixRotatedEXT #-}+glMatrixRotatedEXT :: FuntypeMatrixRotatedEXT+glMatrixRotatedEXT = unsafePerformIO $ readIORef glrefMatrixRotatedEXT+{-# INLINE glMatrixRotatedEXT #-}+type FuntypeMatrixScalefEXT =+ GLenum ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixScalefEXT :: FunPtr FuntypeMatrixScalefEXT -> FuntypeMatrixScalefEXT+glrefMatrixScalefEXT :: IORef FuntypeMatrixScalefEXT+glrefMatrixScalefEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixScalefEXT #-}+glMatrixScalefEXT :: FuntypeMatrixScalefEXT+glMatrixScalefEXT = unsafePerformIO $ readIORef glrefMatrixScalefEXT+{-# INLINE glMatrixScalefEXT #-}+type FuntypeMatrixScaledEXT =+ GLenum ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixScaledEXT :: FunPtr FuntypeMatrixScaledEXT -> FuntypeMatrixScaledEXT+glrefMatrixScaledEXT :: IORef FuntypeMatrixScaledEXT+glrefMatrixScaledEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixScaledEXT #-}+glMatrixScaledEXT :: FuntypeMatrixScaledEXT+glMatrixScaledEXT = unsafePerformIO $ readIORef glrefMatrixScaledEXT+{-# INLINE glMatrixScaledEXT #-}+type FuntypeMatrixTranslatefEXT =+ GLenum ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixTranslatefEXT :: FunPtr FuntypeMatrixTranslatefEXT -> FuntypeMatrixTranslatefEXT+glrefMatrixTranslatefEXT :: IORef FuntypeMatrixTranslatefEXT+glrefMatrixTranslatefEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixTranslatefEXT #-}+glMatrixTranslatefEXT :: FuntypeMatrixTranslatefEXT+glMatrixTranslatefEXT = unsafePerformIO $ readIORef glrefMatrixTranslatefEXT+{-# INLINE glMatrixTranslatefEXT #-}+type FuntypeMatrixTranslatedEXT =+ GLenum ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixTranslatedEXT :: FunPtr FuntypeMatrixTranslatedEXT -> FuntypeMatrixTranslatedEXT+glrefMatrixTranslatedEXT :: IORef FuntypeMatrixTranslatedEXT+glrefMatrixTranslatedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixTranslatedEXT #-}+glMatrixTranslatedEXT :: FuntypeMatrixTranslatedEXT+glMatrixTranslatedEXT = unsafePerformIO $ readIORef glrefMatrixTranslatedEXT+{-# INLINE glMatrixTranslatedEXT #-}+type FuntypeMatrixFrustumEXT =+ GLenum ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixFrustumEXT :: FunPtr FuntypeMatrixFrustumEXT -> FuntypeMatrixFrustumEXT+glrefMatrixFrustumEXT :: IORef FuntypeMatrixFrustumEXT+glrefMatrixFrustumEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixFrustumEXT #-}+glMatrixFrustumEXT :: FuntypeMatrixFrustumEXT+glMatrixFrustumEXT = unsafePerformIO $ readIORef glrefMatrixFrustumEXT+{-# INLINE glMatrixFrustumEXT #-}+type FuntypeMatrixOrthoEXT =+ GLenum ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixOrthoEXT :: FunPtr FuntypeMatrixOrthoEXT -> FuntypeMatrixOrthoEXT+glrefMatrixOrthoEXT :: IORef FuntypeMatrixOrthoEXT+glrefMatrixOrthoEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixOrthoEXT #-}+glMatrixOrthoEXT :: FuntypeMatrixOrthoEXT+glMatrixOrthoEXT = unsafePerformIO $ readIORef glrefMatrixOrthoEXT+{-# INLINE glMatrixOrthoEXT #-}+type FuntypeMatrixPopEXT =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixPopEXT :: FunPtr FuntypeMatrixPopEXT -> FuntypeMatrixPopEXT+glrefMatrixPopEXT :: IORef FuntypeMatrixPopEXT+glrefMatrixPopEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixPopEXT #-}+glMatrixPopEXT :: FuntypeMatrixPopEXT+glMatrixPopEXT = unsafePerformIO $ readIORef glrefMatrixPopEXT+{-# INLINE glMatrixPopEXT #-}+type FuntypeMatrixPushEXT =+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixPushEXT :: FunPtr FuntypeMatrixPushEXT -> FuntypeMatrixPushEXT+glrefMatrixPushEXT :: IORef FuntypeMatrixPushEXT+glrefMatrixPushEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixPushEXT #-}+glMatrixPushEXT :: FuntypeMatrixPushEXT+glMatrixPushEXT = unsafePerformIO $ readIORef glrefMatrixPushEXT+{-# INLINE glMatrixPushEXT #-}+type FuntypeClientAttribDefaultEXT =+ GLbitfield ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClientAttribDefaultEXT :: FunPtr FuntypeClientAttribDefaultEXT -> FuntypeClientAttribDefaultEXT+glrefClientAttribDefaultEXT :: IORef FuntypeClientAttribDefaultEXT+glrefClientAttribDefaultEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClientAttribDefaultEXT #-}+glClientAttribDefaultEXT :: FuntypeClientAttribDefaultEXT+glClientAttribDefaultEXT = unsafePerformIO $ readIORef glrefClientAttribDefaultEXT+{-# INLINE glClientAttribDefaultEXT #-}+type FuntypePushClientAttribDefaultEXT =+ GLbitfield ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynPushClientAttribDefaultEXT :: FunPtr FuntypePushClientAttribDefaultEXT -> FuntypePushClientAttribDefaultEXT+glrefPushClientAttribDefaultEXT :: IORef FuntypePushClientAttribDefaultEXT+glrefPushClientAttribDefaultEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefPushClientAttribDefaultEXT #-}+glPushClientAttribDefaultEXT :: FuntypePushClientAttribDefaultEXT+glPushClientAttribDefaultEXT = unsafePerformIO $ readIORef glrefPushClientAttribDefaultEXT+{-# INLINE glPushClientAttribDefaultEXT #-}+type FuntypeTextureParameterfEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureParameterfEXT :: FunPtr FuntypeTextureParameterfEXT -> FuntypeTextureParameterfEXT+glrefTextureParameterfEXT :: IORef FuntypeTextureParameterfEXT+glrefTextureParameterfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureParameterfEXT #-}+glTextureParameterfEXT :: FuntypeTextureParameterfEXT+glTextureParameterfEXT = unsafePerformIO $ readIORef glrefTextureParameterfEXT+{-# INLINE glTextureParameterfEXT #-}+type FuntypeTextureParameterfvEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureParameterfvEXT :: FunPtr FuntypeTextureParameterfvEXT -> FuntypeTextureParameterfvEXT+glrefTextureParameterfvEXT :: IORef FuntypeTextureParameterfvEXT+glrefTextureParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureParameterfvEXT #-}+glTextureParameterfvEXT :: FuntypeTextureParameterfvEXT+glTextureParameterfvEXT = unsafePerformIO $ readIORef glrefTextureParameterfvEXT+{-# INLINE glTextureParameterfvEXT #-}+type FuntypeTextureParameteriEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureParameteriEXT :: FunPtr FuntypeTextureParameteriEXT -> FuntypeTextureParameteriEXT+glrefTextureParameteriEXT :: IORef FuntypeTextureParameteriEXT+glrefTextureParameteriEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureParameteriEXT #-}+glTextureParameteriEXT :: FuntypeTextureParameteriEXT+glTextureParameteriEXT = unsafePerformIO $ readIORef glrefTextureParameteriEXT+{-# INLINE glTextureParameteriEXT #-}+type FuntypeTextureParameterivEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureParameterivEXT :: FunPtr FuntypeTextureParameterivEXT -> FuntypeTextureParameterivEXT+glrefTextureParameterivEXT :: IORef FuntypeTextureParameterivEXT+glrefTextureParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureParameterivEXT #-}+glTextureParameterivEXT :: FuntypeTextureParameterivEXT+glTextureParameterivEXT = unsafePerformIO $ readIORef glrefTextureParameterivEXT+{-# INLINE glTextureParameterivEXT #-}+type FuntypeTextureImage1DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureImage1DEXT :: FunPtr FuntypeTextureImage1DEXT -> FuntypeTextureImage1DEXT+glrefTextureImage1DEXT :: IORef FuntypeTextureImage1DEXT+glrefTextureImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureImage1DEXT #-}+glTextureImage1DEXT :: FuntypeTextureImage1DEXT+glTextureImage1DEXT = unsafePerformIO $ readIORef glrefTextureImage1DEXT+{-# INLINE glTextureImage1DEXT #-}+type FuntypeTextureImage2DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureImage2DEXT :: FunPtr FuntypeTextureImage2DEXT -> FuntypeTextureImage2DEXT+glrefTextureImage2DEXT :: IORef FuntypeTextureImage2DEXT+glrefTextureImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureImage2DEXT #-}+glTextureImage2DEXT :: FuntypeTextureImage2DEXT+glTextureImage2DEXT = unsafePerformIO $ readIORef glrefTextureImage2DEXT+{-# INLINE glTextureImage2DEXT #-}+type FuntypeTextureSubImage1DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureSubImage1DEXT :: FunPtr FuntypeTextureSubImage1DEXT -> FuntypeTextureSubImage1DEXT+glrefTextureSubImage1DEXT :: IORef FuntypeTextureSubImage1DEXT+glrefTextureSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureSubImage1DEXT #-}+glTextureSubImage1DEXT :: FuntypeTextureSubImage1DEXT+glTextureSubImage1DEXT = unsafePerformIO $ readIORef glrefTextureSubImage1DEXT+{-# INLINE glTextureSubImage1DEXT #-}+type FuntypeTextureSubImage2DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureSubImage2DEXT :: FunPtr FuntypeTextureSubImage2DEXT -> FuntypeTextureSubImage2DEXT+glrefTextureSubImage2DEXT :: IORef FuntypeTextureSubImage2DEXT+glrefTextureSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureSubImage2DEXT #-}+glTextureSubImage2DEXT :: FuntypeTextureSubImage2DEXT+glTextureSubImage2DEXT = unsafePerformIO $ readIORef glrefTextureSubImage2DEXT+{-# INLINE glTextureSubImage2DEXT #-}+type FuntypeCopyTextureImage1DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyTextureImage1DEXT :: FunPtr FuntypeCopyTextureImage1DEXT -> FuntypeCopyTextureImage1DEXT+glrefCopyTextureImage1DEXT :: IORef FuntypeCopyTextureImage1DEXT+glrefCopyTextureImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyTextureImage1DEXT #-}+glCopyTextureImage1DEXT :: FuntypeCopyTextureImage1DEXT+glCopyTextureImage1DEXT = unsafePerformIO $ readIORef glrefCopyTextureImage1DEXT+{-# INLINE glCopyTextureImage1DEXT #-}+type FuntypeCopyTextureImage2DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyTextureImage2DEXT :: FunPtr FuntypeCopyTextureImage2DEXT -> FuntypeCopyTextureImage2DEXT+glrefCopyTextureImage2DEXT :: IORef FuntypeCopyTextureImage2DEXT+glrefCopyTextureImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyTextureImage2DEXT #-}+glCopyTextureImage2DEXT :: FuntypeCopyTextureImage2DEXT+glCopyTextureImage2DEXT = unsafePerformIO $ readIORef glrefCopyTextureImage2DEXT+{-# INLINE glCopyTextureImage2DEXT #-}+type FuntypeCopyTextureSubImage1DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyTextureSubImage1DEXT :: FunPtr FuntypeCopyTextureSubImage1DEXT -> FuntypeCopyTextureSubImage1DEXT+glrefCopyTextureSubImage1DEXT :: IORef FuntypeCopyTextureSubImage1DEXT+glrefCopyTextureSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyTextureSubImage1DEXT #-}+glCopyTextureSubImage1DEXT :: FuntypeCopyTextureSubImage1DEXT+glCopyTextureSubImage1DEXT = unsafePerformIO $ readIORef glrefCopyTextureSubImage1DEXT+{-# INLINE glCopyTextureSubImage1DEXT #-}+type FuntypeCopyTextureSubImage2DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyTextureSubImage2DEXT :: FunPtr FuntypeCopyTextureSubImage2DEXT -> FuntypeCopyTextureSubImage2DEXT+glrefCopyTextureSubImage2DEXT :: IORef FuntypeCopyTextureSubImage2DEXT+glrefCopyTextureSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyTextureSubImage2DEXT #-}+glCopyTextureSubImage2DEXT :: FuntypeCopyTextureSubImage2DEXT+glCopyTextureSubImage2DEXT = unsafePerformIO $ readIORef glrefCopyTextureSubImage2DEXT+{-# INLINE glCopyTextureSubImage2DEXT #-}+type FuntypeGetTextureImageEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTextureImageEXT :: FunPtr FuntypeGetTextureImageEXT -> FuntypeGetTextureImageEXT+glrefGetTextureImageEXT :: IORef FuntypeGetTextureImageEXT+glrefGetTextureImageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTextureImageEXT #-}+glGetTextureImageEXT :: FuntypeGetTextureImageEXT+glGetTextureImageEXT = unsafePerformIO $ readIORef glrefGetTextureImageEXT+{-# INLINE glGetTextureImageEXT #-}+type FuntypeGetTextureParameterfvEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTextureParameterfvEXT :: FunPtr FuntypeGetTextureParameterfvEXT -> FuntypeGetTextureParameterfvEXT+glrefGetTextureParameterfvEXT :: IORef FuntypeGetTextureParameterfvEXT+glrefGetTextureParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTextureParameterfvEXT #-}+glGetTextureParameterfvEXT :: FuntypeGetTextureParameterfvEXT+glGetTextureParameterfvEXT = unsafePerformIO $ readIORef glrefGetTextureParameterfvEXT+{-# INLINE glGetTextureParameterfvEXT #-}+type FuntypeGetTextureParameterivEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTextureParameterivEXT :: FunPtr FuntypeGetTextureParameterivEXT -> FuntypeGetTextureParameterivEXT+glrefGetTextureParameterivEXT :: IORef FuntypeGetTextureParameterivEXT+glrefGetTextureParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTextureParameterivEXT #-}+glGetTextureParameterivEXT :: FuntypeGetTextureParameterivEXT+glGetTextureParameterivEXT = unsafePerformIO $ readIORef glrefGetTextureParameterivEXT+{-# INLINE glGetTextureParameterivEXT #-}+type FuntypeGetTextureLevelParameterfvEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTextureLevelParameterfvEXT :: FunPtr FuntypeGetTextureLevelParameterfvEXT -> FuntypeGetTextureLevelParameterfvEXT+glrefGetTextureLevelParameterfvEXT :: IORef FuntypeGetTextureLevelParameterfvEXT+glrefGetTextureLevelParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTextureLevelParameterfvEXT #-}+glGetTextureLevelParameterfvEXT :: FuntypeGetTextureLevelParameterfvEXT+glGetTextureLevelParameterfvEXT = unsafePerformIO $ readIORef glrefGetTextureLevelParameterfvEXT+{-# INLINE glGetTextureLevelParameterfvEXT #-}+type FuntypeGetTextureLevelParameterivEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTextureLevelParameterivEXT :: FunPtr FuntypeGetTextureLevelParameterivEXT -> FuntypeGetTextureLevelParameterivEXT+glrefGetTextureLevelParameterivEXT :: IORef FuntypeGetTextureLevelParameterivEXT+glrefGetTextureLevelParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTextureLevelParameterivEXT #-}+glGetTextureLevelParameterivEXT :: FuntypeGetTextureLevelParameterivEXT+glGetTextureLevelParameterivEXT = unsafePerformIO $ readIORef glrefGetTextureLevelParameterivEXT+{-# INLINE glGetTextureLevelParameterivEXT #-}+type FuntypeTextureImage3DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureImage3DEXT :: FunPtr FuntypeTextureImage3DEXT -> FuntypeTextureImage3DEXT+glrefTextureImage3DEXT :: IORef FuntypeTextureImage3DEXT+glrefTextureImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureImage3DEXT #-}+glTextureImage3DEXT :: FuntypeTextureImage3DEXT+glTextureImage3DEXT = unsafePerformIO $ readIORef glrefTextureImage3DEXT+{-# INLINE glTextureImage3DEXT #-}+type FuntypeTextureSubImage3DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureSubImage3DEXT :: FunPtr FuntypeTextureSubImage3DEXT -> FuntypeTextureSubImage3DEXT+glrefTextureSubImage3DEXT :: IORef FuntypeTextureSubImage3DEXT+glrefTextureSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureSubImage3DEXT #-}+glTextureSubImage3DEXT :: FuntypeTextureSubImage3DEXT+glTextureSubImage3DEXT = unsafePerformIO $ readIORef glrefTextureSubImage3DEXT+{-# INLINE glTextureSubImage3DEXT #-}+type FuntypeCopyTextureSubImage3DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyTextureSubImage3DEXT :: FunPtr FuntypeCopyTextureSubImage3DEXT -> FuntypeCopyTextureSubImage3DEXT+glrefCopyTextureSubImage3DEXT :: IORef FuntypeCopyTextureSubImage3DEXT+glrefCopyTextureSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyTextureSubImage3DEXT #-}+glCopyTextureSubImage3DEXT :: FuntypeCopyTextureSubImage3DEXT+glCopyTextureSubImage3DEXT = unsafePerformIO $ readIORef glrefCopyTextureSubImage3DEXT+{-# INLINE glCopyTextureSubImage3DEXT #-}+type FuntypeBindMultiTextureEXT =+ GLenum ->+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindMultiTextureEXT :: FunPtr FuntypeBindMultiTextureEXT -> FuntypeBindMultiTextureEXT+glrefBindMultiTextureEXT :: IORef FuntypeBindMultiTextureEXT+glrefBindMultiTextureEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindMultiTextureEXT #-}+glBindMultiTextureEXT :: FuntypeBindMultiTextureEXT+glBindMultiTextureEXT = unsafePerformIO $ readIORef glrefBindMultiTextureEXT+{-# INLINE glBindMultiTextureEXT #-}+type FuntypeMultiTexCoordPointerEXT =+ GLenum ->+ GLint ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexCoordPointerEXT :: FunPtr FuntypeMultiTexCoordPointerEXT -> FuntypeMultiTexCoordPointerEXT+glrefMultiTexCoordPointerEXT :: IORef FuntypeMultiTexCoordPointerEXT+glrefMultiTexCoordPointerEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexCoordPointerEXT #-}+glMultiTexCoordPointerEXT :: FuntypeMultiTexCoordPointerEXT+glMultiTexCoordPointerEXT = unsafePerformIO $ readIORef glrefMultiTexCoordPointerEXT+{-# INLINE glMultiTexCoordPointerEXT #-}+type FuntypeMultiTexEnvfEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexEnvfEXT :: FunPtr FuntypeMultiTexEnvfEXT -> FuntypeMultiTexEnvfEXT+glrefMultiTexEnvfEXT :: IORef FuntypeMultiTexEnvfEXT+glrefMultiTexEnvfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexEnvfEXT #-}+glMultiTexEnvfEXT :: FuntypeMultiTexEnvfEXT+glMultiTexEnvfEXT = unsafePerformIO $ readIORef glrefMultiTexEnvfEXT+{-# INLINE glMultiTexEnvfEXT #-}+type FuntypeMultiTexEnvfvEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexEnvfvEXT :: FunPtr FuntypeMultiTexEnvfvEXT -> FuntypeMultiTexEnvfvEXT+glrefMultiTexEnvfvEXT :: IORef FuntypeMultiTexEnvfvEXT+glrefMultiTexEnvfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexEnvfvEXT #-}+glMultiTexEnvfvEXT :: FuntypeMultiTexEnvfvEXT+glMultiTexEnvfvEXT = unsafePerformIO $ readIORef glrefMultiTexEnvfvEXT+{-# INLINE glMultiTexEnvfvEXT #-}+type FuntypeMultiTexEnviEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexEnviEXT :: FunPtr FuntypeMultiTexEnviEXT -> FuntypeMultiTexEnviEXT+glrefMultiTexEnviEXT :: IORef FuntypeMultiTexEnviEXT+glrefMultiTexEnviEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexEnviEXT #-}+glMultiTexEnviEXT :: FuntypeMultiTexEnviEXT+glMultiTexEnviEXT = unsafePerformIO $ readIORef glrefMultiTexEnviEXT+{-# INLINE glMultiTexEnviEXT #-}+type FuntypeMultiTexEnvivEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexEnvivEXT :: FunPtr FuntypeMultiTexEnvivEXT -> FuntypeMultiTexEnvivEXT+glrefMultiTexEnvivEXT :: IORef FuntypeMultiTexEnvivEXT+glrefMultiTexEnvivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexEnvivEXT #-}+glMultiTexEnvivEXT :: FuntypeMultiTexEnvivEXT+glMultiTexEnvivEXT = unsafePerformIO $ readIORef glrefMultiTexEnvivEXT+{-# INLINE glMultiTexEnvivEXT #-}+type FuntypeMultiTexGendEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexGendEXT :: FunPtr FuntypeMultiTexGendEXT -> FuntypeMultiTexGendEXT+glrefMultiTexGendEXT :: IORef FuntypeMultiTexGendEXT+glrefMultiTexGendEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexGendEXT #-}+glMultiTexGendEXT :: FuntypeMultiTexGendEXT+glMultiTexGendEXT = unsafePerformIO $ readIORef glrefMultiTexGendEXT+{-# INLINE glMultiTexGendEXT #-}+type FuntypeMultiTexGendvEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexGendvEXT :: FunPtr FuntypeMultiTexGendvEXT -> FuntypeMultiTexGendvEXT+glrefMultiTexGendvEXT :: IORef FuntypeMultiTexGendvEXT+glrefMultiTexGendvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexGendvEXT #-}+glMultiTexGendvEXT :: FuntypeMultiTexGendvEXT+glMultiTexGendvEXT = unsafePerformIO $ readIORef glrefMultiTexGendvEXT+{-# INLINE glMultiTexGendvEXT #-}+type FuntypeMultiTexGenfEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexGenfEXT :: FunPtr FuntypeMultiTexGenfEXT -> FuntypeMultiTexGenfEXT+glrefMultiTexGenfEXT :: IORef FuntypeMultiTexGenfEXT+glrefMultiTexGenfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexGenfEXT #-}+glMultiTexGenfEXT :: FuntypeMultiTexGenfEXT+glMultiTexGenfEXT = unsafePerformIO $ readIORef glrefMultiTexGenfEXT+{-# INLINE glMultiTexGenfEXT #-}+type FuntypeMultiTexGenfvEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexGenfvEXT :: FunPtr FuntypeMultiTexGenfvEXT -> FuntypeMultiTexGenfvEXT+glrefMultiTexGenfvEXT :: IORef FuntypeMultiTexGenfvEXT+glrefMultiTexGenfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexGenfvEXT #-}+glMultiTexGenfvEXT :: FuntypeMultiTexGenfvEXT+glMultiTexGenfvEXT = unsafePerformIO $ readIORef glrefMultiTexGenfvEXT+{-# INLINE glMultiTexGenfvEXT #-}+type FuntypeMultiTexGeniEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexGeniEXT :: FunPtr FuntypeMultiTexGeniEXT -> FuntypeMultiTexGeniEXT+glrefMultiTexGeniEXT :: IORef FuntypeMultiTexGeniEXT+glrefMultiTexGeniEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexGeniEXT #-}+glMultiTexGeniEXT :: FuntypeMultiTexGeniEXT+glMultiTexGeniEXT = unsafePerformIO $ readIORef glrefMultiTexGeniEXT+{-# INLINE glMultiTexGeniEXT #-}+type FuntypeMultiTexGenivEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexGenivEXT :: FunPtr FuntypeMultiTexGenivEXT -> FuntypeMultiTexGenivEXT+glrefMultiTexGenivEXT :: IORef FuntypeMultiTexGenivEXT+glrefMultiTexGenivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexGenivEXT #-}+glMultiTexGenivEXT :: FuntypeMultiTexGenivEXT+glMultiTexGenivEXT = unsafePerformIO $ readIORef glrefMultiTexGenivEXT+{-# INLINE glMultiTexGenivEXT #-}+type FuntypeGetMultiTexEnvfvEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexEnvfvEXT :: FunPtr FuntypeGetMultiTexEnvfvEXT -> FuntypeGetMultiTexEnvfvEXT+glrefGetMultiTexEnvfvEXT :: IORef FuntypeGetMultiTexEnvfvEXT+glrefGetMultiTexEnvfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexEnvfvEXT #-}+glGetMultiTexEnvfvEXT :: FuntypeGetMultiTexEnvfvEXT+glGetMultiTexEnvfvEXT = unsafePerformIO $ readIORef glrefGetMultiTexEnvfvEXT+{-# INLINE glGetMultiTexEnvfvEXT #-}+type FuntypeGetMultiTexEnvivEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexEnvivEXT :: FunPtr FuntypeGetMultiTexEnvivEXT -> FuntypeGetMultiTexEnvivEXT+glrefGetMultiTexEnvivEXT :: IORef FuntypeGetMultiTexEnvivEXT+glrefGetMultiTexEnvivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexEnvivEXT #-}+glGetMultiTexEnvivEXT :: FuntypeGetMultiTexEnvivEXT+glGetMultiTexEnvivEXT = unsafePerformIO $ readIORef glrefGetMultiTexEnvivEXT+{-# INLINE glGetMultiTexEnvivEXT #-}+type FuntypeGetMultiTexGendvEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexGendvEXT :: FunPtr FuntypeGetMultiTexGendvEXT -> FuntypeGetMultiTexGendvEXT+glrefGetMultiTexGendvEXT :: IORef FuntypeGetMultiTexGendvEXT+glrefGetMultiTexGendvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexGendvEXT #-}+glGetMultiTexGendvEXT :: FuntypeGetMultiTexGendvEXT+glGetMultiTexGendvEXT = unsafePerformIO $ readIORef glrefGetMultiTexGendvEXT+{-# INLINE glGetMultiTexGendvEXT #-}+type FuntypeGetMultiTexGenfvEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexGenfvEXT :: FunPtr FuntypeGetMultiTexGenfvEXT -> FuntypeGetMultiTexGenfvEXT+glrefGetMultiTexGenfvEXT :: IORef FuntypeGetMultiTexGenfvEXT+glrefGetMultiTexGenfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexGenfvEXT #-}+glGetMultiTexGenfvEXT :: FuntypeGetMultiTexGenfvEXT+glGetMultiTexGenfvEXT = unsafePerformIO $ readIORef glrefGetMultiTexGenfvEXT+{-# INLINE glGetMultiTexGenfvEXT #-}+type FuntypeGetMultiTexGenivEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexGenivEXT :: FunPtr FuntypeGetMultiTexGenivEXT -> FuntypeGetMultiTexGenivEXT+glrefGetMultiTexGenivEXT :: IORef FuntypeGetMultiTexGenivEXT+glrefGetMultiTexGenivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexGenivEXT #-}+glGetMultiTexGenivEXT :: FuntypeGetMultiTexGenivEXT+glGetMultiTexGenivEXT = unsafePerformIO $ readIORef glrefGetMultiTexGenivEXT+{-# INLINE glGetMultiTexGenivEXT #-}+type FuntypeMultiTexParameteriEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexParameteriEXT :: FunPtr FuntypeMultiTexParameteriEXT -> FuntypeMultiTexParameteriEXT+glrefMultiTexParameteriEXT :: IORef FuntypeMultiTexParameteriEXT+glrefMultiTexParameteriEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexParameteriEXT #-}+glMultiTexParameteriEXT :: FuntypeMultiTexParameteriEXT+glMultiTexParameteriEXT = unsafePerformIO $ readIORef glrefMultiTexParameteriEXT+{-# INLINE glMultiTexParameteriEXT #-}+type FuntypeMultiTexParameterivEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexParameterivEXT :: FunPtr FuntypeMultiTexParameterivEXT -> FuntypeMultiTexParameterivEXT+glrefMultiTexParameterivEXT :: IORef FuntypeMultiTexParameterivEXT+glrefMultiTexParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexParameterivEXT #-}+glMultiTexParameterivEXT :: FuntypeMultiTexParameterivEXT+glMultiTexParameterivEXT = unsafePerformIO $ readIORef glrefMultiTexParameterivEXT+{-# INLINE glMultiTexParameterivEXT #-}+type FuntypeMultiTexParameterfEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexParameterfEXT :: FunPtr FuntypeMultiTexParameterfEXT -> FuntypeMultiTexParameterfEXT+glrefMultiTexParameterfEXT :: IORef FuntypeMultiTexParameterfEXT+glrefMultiTexParameterfEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexParameterfEXT #-}+glMultiTexParameterfEXT :: FuntypeMultiTexParameterfEXT+glMultiTexParameterfEXT = unsafePerformIO $ readIORef glrefMultiTexParameterfEXT+{-# INLINE glMultiTexParameterfEXT #-}+type FuntypeMultiTexParameterfvEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexParameterfvEXT :: FunPtr FuntypeMultiTexParameterfvEXT -> FuntypeMultiTexParameterfvEXT+glrefMultiTexParameterfvEXT :: IORef FuntypeMultiTexParameterfvEXT+glrefMultiTexParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexParameterfvEXT #-}+glMultiTexParameterfvEXT :: FuntypeMultiTexParameterfvEXT+glMultiTexParameterfvEXT = unsafePerformIO $ readIORef glrefMultiTexParameterfvEXT+{-# INLINE glMultiTexParameterfvEXT #-}+type FuntypeMultiTexImage1DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexImage1DEXT :: FunPtr FuntypeMultiTexImage1DEXT -> FuntypeMultiTexImage1DEXT+glrefMultiTexImage1DEXT :: IORef FuntypeMultiTexImage1DEXT+glrefMultiTexImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexImage1DEXT #-}+glMultiTexImage1DEXT :: FuntypeMultiTexImage1DEXT+glMultiTexImage1DEXT = unsafePerformIO $ readIORef glrefMultiTexImage1DEXT+{-# INLINE glMultiTexImage1DEXT #-}+type FuntypeMultiTexImage2DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexImage2DEXT :: FunPtr FuntypeMultiTexImage2DEXT -> FuntypeMultiTexImage2DEXT+glrefMultiTexImage2DEXT :: IORef FuntypeMultiTexImage2DEXT+glrefMultiTexImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexImage2DEXT #-}+glMultiTexImage2DEXT :: FuntypeMultiTexImage2DEXT+glMultiTexImage2DEXT = unsafePerformIO $ readIORef glrefMultiTexImage2DEXT+{-# INLINE glMultiTexImage2DEXT #-}+type FuntypeMultiTexSubImage1DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexSubImage1DEXT :: FunPtr FuntypeMultiTexSubImage1DEXT -> FuntypeMultiTexSubImage1DEXT+glrefMultiTexSubImage1DEXT :: IORef FuntypeMultiTexSubImage1DEXT+glrefMultiTexSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexSubImage1DEXT #-}+glMultiTexSubImage1DEXT :: FuntypeMultiTexSubImage1DEXT+glMultiTexSubImage1DEXT = unsafePerformIO $ readIORef glrefMultiTexSubImage1DEXT+{-# INLINE glMultiTexSubImage1DEXT #-}+type FuntypeMultiTexSubImage2DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexSubImage2DEXT :: FunPtr FuntypeMultiTexSubImage2DEXT -> FuntypeMultiTexSubImage2DEXT+glrefMultiTexSubImage2DEXT :: IORef FuntypeMultiTexSubImage2DEXT+glrefMultiTexSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexSubImage2DEXT #-}+glMultiTexSubImage2DEXT :: FuntypeMultiTexSubImage2DEXT+glMultiTexSubImage2DEXT = unsafePerformIO $ readIORef glrefMultiTexSubImage2DEXT+{-# INLINE glMultiTexSubImage2DEXT #-}+type FuntypeCopyMultiTexImage1DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyMultiTexImage1DEXT :: FunPtr FuntypeCopyMultiTexImage1DEXT -> FuntypeCopyMultiTexImage1DEXT+glrefCopyMultiTexImage1DEXT :: IORef FuntypeCopyMultiTexImage1DEXT+glrefCopyMultiTexImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyMultiTexImage1DEXT #-}+glCopyMultiTexImage1DEXT :: FuntypeCopyMultiTexImage1DEXT+glCopyMultiTexImage1DEXT = unsafePerformIO $ readIORef glrefCopyMultiTexImage1DEXT+{-# INLINE glCopyMultiTexImage1DEXT #-}+type FuntypeCopyMultiTexImage2DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyMultiTexImage2DEXT :: FunPtr FuntypeCopyMultiTexImage2DEXT -> FuntypeCopyMultiTexImage2DEXT+glrefCopyMultiTexImage2DEXT :: IORef FuntypeCopyMultiTexImage2DEXT+glrefCopyMultiTexImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyMultiTexImage2DEXT #-}+glCopyMultiTexImage2DEXT :: FuntypeCopyMultiTexImage2DEXT+glCopyMultiTexImage2DEXT = unsafePerformIO $ readIORef glrefCopyMultiTexImage2DEXT+{-# INLINE glCopyMultiTexImage2DEXT #-}+type FuntypeCopyMultiTexSubImage1DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyMultiTexSubImage1DEXT :: FunPtr FuntypeCopyMultiTexSubImage1DEXT -> FuntypeCopyMultiTexSubImage1DEXT+glrefCopyMultiTexSubImage1DEXT :: IORef FuntypeCopyMultiTexSubImage1DEXT+glrefCopyMultiTexSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyMultiTexSubImage1DEXT #-}+glCopyMultiTexSubImage1DEXT :: FuntypeCopyMultiTexSubImage1DEXT+glCopyMultiTexSubImage1DEXT = unsafePerformIO $ readIORef glrefCopyMultiTexSubImage1DEXT+{-# INLINE glCopyMultiTexSubImage1DEXT #-}+type FuntypeCopyMultiTexSubImage2DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyMultiTexSubImage2DEXT :: FunPtr FuntypeCopyMultiTexSubImage2DEXT -> FuntypeCopyMultiTexSubImage2DEXT+glrefCopyMultiTexSubImage2DEXT :: IORef FuntypeCopyMultiTexSubImage2DEXT+glrefCopyMultiTexSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyMultiTexSubImage2DEXT #-}+glCopyMultiTexSubImage2DEXT :: FuntypeCopyMultiTexSubImage2DEXT+glCopyMultiTexSubImage2DEXT = unsafePerformIO $ readIORef glrefCopyMultiTexSubImage2DEXT+{-# INLINE glCopyMultiTexSubImage2DEXT #-}+type FuntypeGetMultiTexImageEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexImageEXT :: FunPtr FuntypeGetMultiTexImageEXT -> FuntypeGetMultiTexImageEXT+glrefGetMultiTexImageEXT :: IORef FuntypeGetMultiTexImageEXT+glrefGetMultiTexImageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexImageEXT #-}+glGetMultiTexImageEXT :: FuntypeGetMultiTexImageEXT+glGetMultiTexImageEXT = unsafePerformIO $ readIORef glrefGetMultiTexImageEXT+{-# INLINE glGetMultiTexImageEXT #-}+type FuntypeGetMultiTexParameterfvEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexParameterfvEXT :: FunPtr FuntypeGetMultiTexParameterfvEXT -> FuntypeGetMultiTexParameterfvEXT+glrefGetMultiTexParameterfvEXT :: IORef FuntypeGetMultiTexParameterfvEXT+glrefGetMultiTexParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexParameterfvEXT #-}+glGetMultiTexParameterfvEXT :: FuntypeGetMultiTexParameterfvEXT+glGetMultiTexParameterfvEXT = unsafePerformIO $ readIORef glrefGetMultiTexParameterfvEXT+{-# INLINE glGetMultiTexParameterfvEXT #-}+type FuntypeGetMultiTexParameterivEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexParameterivEXT :: FunPtr FuntypeGetMultiTexParameterivEXT -> FuntypeGetMultiTexParameterivEXT+glrefGetMultiTexParameterivEXT :: IORef FuntypeGetMultiTexParameterivEXT+glrefGetMultiTexParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexParameterivEXT #-}+glGetMultiTexParameterivEXT :: FuntypeGetMultiTexParameterivEXT+glGetMultiTexParameterivEXT = unsafePerformIO $ readIORef glrefGetMultiTexParameterivEXT+{-# INLINE glGetMultiTexParameterivEXT #-}+type FuntypeGetMultiTexLevelParameterfvEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexLevelParameterfvEXT :: FunPtr FuntypeGetMultiTexLevelParameterfvEXT -> FuntypeGetMultiTexLevelParameterfvEXT+glrefGetMultiTexLevelParameterfvEXT :: IORef FuntypeGetMultiTexLevelParameterfvEXT+glrefGetMultiTexLevelParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexLevelParameterfvEXT #-}+glGetMultiTexLevelParameterfvEXT :: FuntypeGetMultiTexLevelParameterfvEXT+glGetMultiTexLevelParameterfvEXT = unsafePerformIO $ readIORef glrefGetMultiTexLevelParameterfvEXT+{-# INLINE glGetMultiTexLevelParameterfvEXT #-}+type FuntypeGetMultiTexLevelParameterivEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexLevelParameterivEXT :: FunPtr FuntypeGetMultiTexLevelParameterivEXT -> FuntypeGetMultiTexLevelParameterivEXT+glrefGetMultiTexLevelParameterivEXT :: IORef FuntypeGetMultiTexLevelParameterivEXT+glrefGetMultiTexLevelParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexLevelParameterivEXT #-}+glGetMultiTexLevelParameterivEXT :: FuntypeGetMultiTexLevelParameterivEXT+glGetMultiTexLevelParameterivEXT = unsafePerformIO $ readIORef glrefGetMultiTexLevelParameterivEXT+{-# INLINE glGetMultiTexLevelParameterivEXT #-}+type FuntypeMultiTexImage3DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexImage3DEXT :: FunPtr FuntypeMultiTexImage3DEXT -> FuntypeMultiTexImage3DEXT+glrefMultiTexImage3DEXT :: IORef FuntypeMultiTexImage3DEXT+glrefMultiTexImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexImage3DEXT #-}+glMultiTexImage3DEXT :: FuntypeMultiTexImage3DEXT+glMultiTexImage3DEXT = unsafePerformIO $ readIORef glrefMultiTexImage3DEXT+{-# INLINE glMultiTexImage3DEXT #-}+type FuntypeMultiTexSubImage3DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexSubImage3DEXT :: FunPtr FuntypeMultiTexSubImage3DEXT -> FuntypeMultiTexSubImage3DEXT+glrefMultiTexSubImage3DEXT :: IORef FuntypeMultiTexSubImage3DEXT+glrefMultiTexSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexSubImage3DEXT #-}+glMultiTexSubImage3DEXT :: FuntypeMultiTexSubImage3DEXT+glMultiTexSubImage3DEXT = unsafePerformIO $ readIORef glrefMultiTexSubImage3DEXT+{-# INLINE glMultiTexSubImage3DEXT #-}+type FuntypeCopyMultiTexSubImage3DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCopyMultiTexSubImage3DEXT :: FunPtr FuntypeCopyMultiTexSubImage3DEXT -> FuntypeCopyMultiTexSubImage3DEXT+glrefCopyMultiTexSubImage3DEXT :: IORef FuntypeCopyMultiTexSubImage3DEXT+glrefCopyMultiTexSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCopyMultiTexSubImage3DEXT #-}+glCopyMultiTexSubImage3DEXT :: FuntypeCopyMultiTexSubImage3DEXT+glCopyMultiTexSubImage3DEXT = unsafePerformIO $ readIORef glrefCopyMultiTexSubImage3DEXT+{-# INLINE glCopyMultiTexSubImage3DEXT #-}+type FuntypeEnableClientStateIndexedEXT =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynEnableClientStateIndexedEXT :: FunPtr FuntypeEnableClientStateIndexedEXT -> FuntypeEnableClientStateIndexedEXT+glrefEnableClientStateIndexedEXT :: IORef FuntypeEnableClientStateIndexedEXT+glrefEnableClientStateIndexedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefEnableClientStateIndexedEXT #-}+glEnableClientStateIndexedEXT :: FuntypeEnableClientStateIndexedEXT+glEnableClientStateIndexedEXT = unsafePerformIO $ readIORef glrefEnableClientStateIndexedEXT+{-# INLINE glEnableClientStateIndexedEXT #-}+type FuntypeDisableClientStateIndexedEXT =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDisableClientStateIndexedEXT :: FunPtr FuntypeDisableClientStateIndexedEXT -> FuntypeDisableClientStateIndexedEXT+glrefDisableClientStateIndexedEXT :: IORef FuntypeDisableClientStateIndexedEXT+glrefDisableClientStateIndexedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDisableClientStateIndexedEXT #-}+glDisableClientStateIndexedEXT :: FuntypeDisableClientStateIndexedEXT+glDisableClientStateIndexedEXT = unsafePerformIO $ readIORef glrefDisableClientStateIndexedEXT+{-# INLINE glDisableClientStateIndexedEXT #-}+type FuntypeGetFloatIndexedvEXT =+ GLenum ->+ GLuint ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetFloatIndexedvEXT :: FunPtr FuntypeGetFloatIndexedvEXT -> FuntypeGetFloatIndexedvEXT+glrefGetFloatIndexedvEXT :: IORef FuntypeGetFloatIndexedvEXT+glrefGetFloatIndexedvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetFloatIndexedvEXT #-}+glGetFloatIndexedvEXT :: FuntypeGetFloatIndexedvEXT+glGetFloatIndexedvEXT = unsafePerformIO $ readIORef glrefGetFloatIndexedvEXT+{-# INLINE glGetFloatIndexedvEXT #-}+type FuntypeGetDoubleIndexedvEXT =+ GLenum ->+ GLuint ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetDoubleIndexedvEXT :: FunPtr FuntypeGetDoubleIndexedvEXT -> FuntypeGetDoubleIndexedvEXT+glrefGetDoubleIndexedvEXT :: IORef FuntypeGetDoubleIndexedvEXT+glrefGetDoubleIndexedvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetDoubleIndexedvEXT #-}+glGetDoubleIndexedvEXT :: FuntypeGetDoubleIndexedvEXT+glGetDoubleIndexedvEXT = unsafePerformIO $ readIORef glrefGetDoubleIndexedvEXT+{-# INLINE glGetDoubleIndexedvEXT #-}+type FuntypeGetPointerIndexedvEXT =+ GLenum ->+ GLuint ->+ Ptr (Ptr ()) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetPointerIndexedvEXT :: FunPtr FuntypeGetPointerIndexedvEXT -> FuntypeGetPointerIndexedvEXT+glrefGetPointerIndexedvEXT :: IORef FuntypeGetPointerIndexedvEXT+glrefGetPointerIndexedvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetPointerIndexedvEXT #-}+glGetPointerIndexedvEXT :: FuntypeGetPointerIndexedvEXT+glGetPointerIndexedvEXT = unsafePerformIO $ readIORef glrefGetPointerIndexedvEXT+{-# INLINE glGetPointerIndexedvEXT #-}+type FuntypeEnableIndexedEXT =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynEnableIndexedEXT :: FunPtr FuntypeEnableIndexedEXT -> FuntypeEnableIndexedEXT+glrefEnableIndexedEXT :: IORef FuntypeEnableIndexedEXT+glrefEnableIndexedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefEnableIndexedEXT #-}+glEnableIndexedEXT :: FuntypeEnableIndexedEXT+glEnableIndexedEXT = unsafePerformIO $ readIORef glrefEnableIndexedEXT+{-# INLINE glEnableIndexedEXT #-}+type FuntypeDisableIndexedEXT =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDisableIndexedEXT :: FunPtr FuntypeDisableIndexedEXT -> FuntypeDisableIndexedEXT+glrefDisableIndexedEXT :: IORef FuntypeDisableIndexedEXT+glrefDisableIndexedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDisableIndexedEXT #-}+glDisableIndexedEXT :: FuntypeDisableIndexedEXT+glDisableIndexedEXT = unsafePerformIO $ readIORef glrefDisableIndexedEXT+{-# INLINE glDisableIndexedEXT #-}+type FuntypeIsEnabledIndexedEXT =+ GLenum ->+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsEnabledIndexedEXT :: FunPtr FuntypeIsEnabledIndexedEXT -> FuntypeIsEnabledIndexedEXT+glrefIsEnabledIndexedEXT :: IORef FuntypeIsEnabledIndexedEXT+glrefIsEnabledIndexedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsEnabledIndexedEXT #-}+glIsEnabledIndexedEXT :: FuntypeIsEnabledIndexedEXT+glIsEnabledIndexedEXT = unsafePerformIO $ readIORef glrefIsEnabledIndexedEXT+{-# INLINE glIsEnabledIndexedEXT #-}+type FuntypeGetIntegerIndexedvEXT =+ GLenum ->+ GLuint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetIntegerIndexedvEXT :: FunPtr FuntypeGetIntegerIndexedvEXT -> FuntypeGetIntegerIndexedvEXT+glrefGetIntegerIndexedvEXT :: IORef FuntypeGetIntegerIndexedvEXT+glrefGetIntegerIndexedvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetIntegerIndexedvEXT #-}+glGetIntegerIndexedvEXT :: FuntypeGetIntegerIndexedvEXT+glGetIntegerIndexedvEXT = unsafePerformIO $ readIORef glrefGetIntegerIndexedvEXT+{-# INLINE glGetIntegerIndexedvEXT #-}+type FuntypeGetBooleanIndexedvEXT =+ GLenum ->+ GLuint ->+ Ptr (GLboolean) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetBooleanIndexedvEXT :: FunPtr FuntypeGetBooleanIndexedvEXT -> FuntypeGetBooleanIndexedvEXT+glrefGetBooleanIndexedvEXT :: IORef FuntypeGetBooleanIndexedvEXT+glrefGetBooleanIndexedvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetBooleanIndexedvEXT #-}+glGetBooleanIndexedvEXT :: FuntypeGetBooleanIndexedvEXT+glGetBooleanIndexedvEXT = unsafePerformIO $ readIORef glrefGetBooleanIndexedvEXT+{-# INLINE glGetBooleanIndexedvEXT #-}+type FuntypeCompressedTextureImage3DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTextureImage3DEXT :: FunPtr FuntypeCompressedTextureImage3DEXT -> FuntypeCompressedTextureImage3DEXT+glrefCompressedTextureImage3DEXT :: IORef FuntypeCompressedTextureImage3DEXT+glrefCompressedTextureImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTextureImage3DEXT #-}+glCompressedTextureImage3DEXT :: FuntypeCompressedTextureImage3DEXT+glCompressedTextureImage3DEXT = unsafePerformIO $ readIORef glrefCompressedTextureImage3DEXT+{-# INLINE glCompressedTextureImage3DEXT #-}+type FuntypeCompressedTextureImage2DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTextureImage2DEXT :: FunPtr FuntypeCompressedTextureImage2DEXT -> FuntypeCompressedTextureImage2DEXT+glrefCompressedTextureImage2DEXT :: IORef FuntypeCompressedTextureImage2DEXT+glrefCompressedTextureImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTextureImage2DEXT #-}+glCompressedTextureImage2DEXT :: FuntypeCompressedTextureImage2DEXT+glCompressedTextureImage2DEXT = unsafePerformIO $ readIORef glrefCompressedTextureImage2DEXT+{-# INLINE glCompressedTextureImage2DEXT #-}+type FuntypeCompressedTextureImage1DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLint ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTextureImage1DEXT :: FunPtr FuntypeCompressedTextureImage1DEXT -> FuntypeCompressedTextureImage1DEXT+glrefCompressedTextureImage1DEXT :: IORef FuntypeCompressedTextureImage1DEXT+glrefCompressedTextureImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTextureImage1DEXT #-}+glCompressedTextureImage1DEXT :: FuntypeCompressedTextureImage1DEXT+glCompressedTextureImage1DEXT = unsafePerformIO $ readIORef glrefCompressedTextureImage1DEXT+{-# INLINE glCompressedTextureImage1DEXT #-}+type FuntypeCompressedTextureSubImage3DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTextureSubImage3DEXT :: FunPtr FuntypeCompressedTextureSubImage3DEXT -> FuntypeCompressedTextureSubImage3DEXT+glrefCompressedTextureSubImage3DEXT :: IORef FuntypeCompressedTextureSubImage3DEXT+glrefCompressedTextureSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTextureSubImage3DEXT #-}+glCompressedTextureSubImage3DEXT :: FuntypeCompressedTextureSubImage3DEXT+glCompressedTextureSubImage3DEXT = unsafePerformIO $ readIORef glrefCompressedTextureSubImage3DEXT+{-# INLINE glCompressedTextureSubImage3DEXT #-}+type FuntypeCompressedTextureSubImage2DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTextureSubImage2DEXT :: FunPtr FuntypeCompressedTextureSubImage2DEXT -> FuntypeCompressedTextureSubImage2DEXT+glrefCompressedTextureSubImage2DEXT :: IORef FuntypeCompressedTextureSubImage2DEXT+glrefCompressedTextureSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTextureSubImage2DEXT #-}+glCompressedTextureSubImage2DEXT :: FuntypeCompressedTextureSubImage2DEXT+glCompressedTextureSubImage2DEXT = unsafePerformIO $ readIORef glrefCompressedTextureSubImage2DEXT+{-# INLINE glCompressedTextureSubImage2DEXT #-}+type FuntypeCompressedTextureSubImage1DEXT =+ GLuint ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedTextureSubImage1DEXT :: FunPtr FuntypeCompressedTextureSubImage1DEXT -> FuntypeCompressedTextureSubImage1DEXT+glrefCompressedTextureSubImage1DEXT :: IORef FuntypeCompressedTextureSubImage1DEXT+glrefCompressedTextureSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedTextureSubImage1DEXT #-}+glCompressedTextureSubImage1DEXT :: FuntypeCompressedTextureSubImage1DEXT+glCompressedTextureSubImage1DEXT = unsafePerformIO $ readIORef glrefCompressedTextureSubImage1DEXT+{-# INLINE glCompressedTextureSubImage1DEXT #-}+type FuntypeGetCompressedTextureImageEXT =+ GLuint ->+ GLenum ->+ GLint ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetCompressedTextureImageEXT :: FunPtr FuntypeGetCompressedTextureImageEXT -> FuntypeGetCompressedTextureImageEXT+glrefGetCompressedTextureImageEXT :: IORef FuntypeGetCompressedTextureImageEXT+glrefGetCompressedTextureImageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetCompressedTextureImageEXT #-}+glGetCompressedTextureImageEXT :: FuntypeGetCompressedTextureImageEXT+glGetCompressedTextureImageEXT = unsafePerformIO $ readIORef glrefGetCompressedTextureImageEXT+{-# INLINE glGetCompressedTextureImageEXT #-}+type FuntypeCompressedMultiTexImage3DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedMultiTexImage3DEXT :: FunPtr FuntypeCompressedMultiTexImage3DEXT -> FuntypeCompressedMultiTexImage3DEXT+glrefCompressedMultiTexImage3DEXT :: IORef FuntypeCompressedMultiTexImage3DEXT+glrefCompressedMultiTexImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedMultiTexImage3DEXT #-}+glCompressedMultiTexImage3DEXT :: FuntypeCompressedMultiTexImage3DEXT+glCompressedMultiTexImage3DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexImage3DEXT+{-# INLINE glCompressedMultiTexImage3DEXT #-}+type FuntypeCompressedMultiTexImage2DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLint ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedMultiTexImage2DEXT :: FunPtr FuntypeCompressedMultiTexImage2DEXT -> FuntypeCompressedMultiTexImage2DEXT+glrefCompressedMultiTexImage2DEXT :: IORef FuntypeCompressedMultiTexImage2DEXT+glrefCompressedMultiTexImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedMultiTexImage2DEXT #-}+glCompressedMultiTexImage2DEXT :: FuntypeCompressedMultiTexImage2DEXT+glCompressedMultiTexImage2DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexImage2DEXT+{-# INLINE glCompressedMultiTexImage2DEXT #-}+type FuntypeCompressedMultiTexImage1DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLint ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedMultiTexImage1DEXT :: FunPtr FuntypeCompressedMultiTexImage1DEXT -> FuntypeCompressedMultiTexImage1DEXT+glrefCompressedMultiTexImage1DEXT :: IORef FuntypeCompressedMultiTexImage1DEXT+glrefCompressedMultiTexImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedMultiTexImage1DEXT #-}+glCompressedMultiTexImage1DEXT :: FuntypeCompressedMultiTexImage1DEXT+glCompressedMultiTexImage1DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexImage1DEXT+{-# INLINE glCompressedMultiTexImage1DEXT #-}+type FuntypeCompressedMultiTexSubImage3DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedMultiTexSubImage3DEXT :: FunPtr FuntypeCompressedMultiTexSubImage3DEXT -> FuntypeCompressedMultiTexSubImage3DEXT+glrefCompressedMultiTexSubImage3DEXT :: IORef FuntypeCompressedMultiTexSubImage3DEXT+glrefCompressedMultiTexSubImage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedMultiTexSubImage3DEXT #-}+glCompressedMultiTexSubImage3DEXT :: FuntypeCompressedMultiTexSubImage3DEXT+glCompressedMultiTexSubImage3DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexSubImage3DEXT+{-# INLINE glCompressedMultiTexSubImage3DEXT #-}+type FuntypeCompressedMultiTexSubImage2DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedMultiTexSubImage2DEXT :: FunPtr FuntypeCompressedMultiTexSubImage2DEXT -> FuntypeCompressedMultiTexSubImage2DEXT+glrefCompressedMultiTexSubImage2DEXT :: IORef FuntypeCompressedMultiTexSubImage2DEXT+glrefCompressedMultiTexSubImage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedMultiTexSubImage2DEXT #-}+glCompressedMultiTexSubImage2DEXT :: FuntypeCompressedMultiTexSubImage2DEXT+glCompressedMultiTexSubImage2DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexSubImage2DEXT+{-# INLINE glCompressedMultiTexSubImage2DEXT #-}+type FuntypeCompressedMultiTexSubImage1DEXT =+ GLenum ->+ GLenum ->+ GLint ->+ GLint ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCompressedMultiTexSubImage1DEXT :: FunPtr FuntypeCompressedMultiTexSubImage1DEXT -> FuntypeCompressedMultiTexSubImage1DEXT+glrefCompressedMultiTexSubImage1DEXT :: IORef FuntypeCompressedMultiTexSubImage1DEXT+glrefCompressedMultiTexSubImage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCompressedMultiTexSubImage1DEXT #-}+glCompressedMultiTexSubImage1DEXT :: FuntypeCompressedMultiTexSubImage1DEXT+glCompressedMultiTexSubImage1DEXT = unsafePerformIO $ readIORef glrefCompressedMultiTexSubImage1DEXT+{-# INLINE glCompressedMultiTexSubImage1DEXT #-}+type FuntypeGetCompressedMultiTexImageEXT =+ GLenum ->+ GLenum ->+ GLint ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetCompressedMultiTexImageEXT :: FunPtr FuntypeGetCompressedMultiTexImageEXT -> FuntypeGetCompressedMultiTexImageEXT+glrefGetCompressedMultiTexImageEXT :: IORef FuntypeGetCompressedMultiTexImageEXT+glrefGetCompressedMultiTexImageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetCompressedMultiTexImageEXT #-}+glGetCompressedMultiTexImageEXT :: FuntypeGetCompressedMultiTexImageEXT+glGetCompressedMultiTexImageEXT = unsafePerformIO $ readIORef glrefGetCompressedMultiTexImageEXT+{-# INLINE glGetCompressedMultiTexImageEXT #-}+type FuntypeMatrixLoadTransposefEXT =+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixLoadTransposefEXT :: FunPtr FuntypeMatrixLoadTransposefEXT -> FuntypeMatrixLoadTransposefEXT+glrefMatrixLoadTransposefEXT :: IORef FuntypeMatrixLoadTransposefEXT+glrefMatrixLoadTransposefEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixLoadTransposefEXT #-}+glMatrixLoadTransposefEXT :: FuntypeMatrixLoadTransposefEXT+glMatrixLoadTransposefEXT = unsafePerformIO $ readIORef glrefMatrixLoadTransposefEXT+{-# INLINE glMatrixLoadTransposefEXT #-}+type FuntypeMatrixLoadTransposedEXT =+ GLenum ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixLoadTransposedEXT :: FunPtr FuntypeMatrixLoadTransposedEXT -> FuntypeMatrixLoadTransposedEXT+glrefMatrixLoadTransposedEXT :: IORef FuntypeMatrixLoadTransposedEXT+glrefMatrixLoadTransposedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixLoadTransposedEXT #-}+glMatrixLoadTransposedEXT :: FuntypeMatrixLoadTransposedEXT+glMatrixLoadTransposedEXT = unsafePerformIO $ readIORef glrefMatrixLoadTransposedEXT+{-# INLINE glMatrixLoadTransposedEXT #-}+type FuntypeMatrixMultTransposefEXT =+ GLenum ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixMultTransposefEXT :: FunPtr FuntypeMatrixMultTransposefEXT -> FuntypeMatrixMultTransposefEXT+glrefMatrixMultTransposefEXT :: IORef FuntypeMatrixMultTransposefEXT+glrefMatrixMultTransposefEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixMultTransposefEXT #-}+glMatrixMultTransposefEXT :: FuntypeMatrixMultTransposefEXT+glMatrixMultTransposefEXT = unsafePerformIO $ readIORef glrefMatrixMultTransposefEXT+{-# INLINE glMatrixMultTransposefEXT #-}+type FuntypeMatrixMultTransposedEXT =+ GLenum ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMatrixMultTransposedEXT :: FunPtr FuntypeMatrixMultTransposedEXT -> FuntypeMatrixMultTransposedEXT+glrefMatrixMultTransposedEXT :: IORef FuntypeMatrixMultTransposedEXT+glrefMatrixMultTransposedEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMatrixMultTransposedEXT #-}+glMatrixMultTransposedEXT :: FuntypeMatrixMultTransposedEXT+glMatrixMultTransposedEXT = unsafePerformIO $ readIORef glrefMatrixMultTransposedEXT+{-# INLINE glMatrixMultTransposedEXT #-}+type FuntypeNamedBufferDataEXT =+ GLuint ->+ GLsizeiptr ->+ Ptr () ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedBufferDataEXT :: FunPtr FuntypeNamedBufferDataEXT -> FuntypeNamedBufferDataEXT+glrefNamedBufferDataEXT :: IORef FuntypeNamedBufferDataEXT+glrefNamedBufferDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedBufferDataEXT #-}+glNamedBufferDataEXT :: FuntypeNamedBufferDataEXT+glNamedBufferDataEXT = unsafePerformIO $ readIORef glrefNamedBufferDataEXT+{-# INLINE glNamedBufferDataEXT #-}+type FuntypeNamedBufferSubDataEXT =+ GLuint ->+ GLintptr ->+ GLsizeiptr ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedBufferSubDataEXT :: FunPtr FuntypeNamedBufferSubDataEXT -> FuntypeNamedBufferSubDataEXT+glrefNamedBufferSubDataEXT :: IORef FuntypeNamedBufferSubDataEXT+glrefNamedBufferSubDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedBufferSubDataEXT #-}+glNamedBufferSubDataEXT :: FuntypeNamedBufferSubDataEXT+glNamedBufferSubDataEXT = unsafePerformIO $ readIORef glrefNamedBufferSubDataEXT+{-# INLINE glNamedBufferSubDataEXT #-}+type FuntypeMapNamedBufferEXT =+ GLuint ->+ GLenum ->+ IO ( Ptr () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMapNamedBufferEXT :: FunPtr FuntypeMapNamedBufferEXT -> FuntypeMapNamedBufferEXT+glrefMapNamedBufferEXT :: IORef FuntypeMapNamedBufferEXT+glrefMapNamedBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMapNamedBufferEXT #-}+glMapNamedBufferEXT :: FuntypeMapNamedBufferEXT+glMapNamedBufferEXT = unsafePerformIO $ readIORef glrefMapNamedBufferEXT+{-# INLINE glMapNamedBufferEXT #-}+type FuntypeUnmapNamedBufferEXT =+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUnmapNamedBufferEXT :: FunPtr FuntypeUnmapNamedBufferEXT -> FuntypeUnmapNamedBufferEXT+glrefUnmapNamedBufferEXT :: IORef FuntypeUnmapNamedBufferEXT+glrefUnmapNamedBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUnmapNamedBufferEXT #-}+glUnmapNamedBufferEXT :: FuntypeUnmapNamedBufferEXT+glUnmapNamedBufferEXT = unsafePerformIO $ readIORef glrefUnmapNamedBufferEXT+{-# INLINE glUnmapNamedBufferEXT #-}+type FuntypeGetNamedBufferParameterivEXT =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedBufferParameterivEXT :: FunPtr FuntypeGetNamedBufferParameterivEXT -> FuntypeGetNamedBufferParameterivEXT+glrefGetNamedBufferParameterivEXT :: IORef FuntypeGetNamedBufferParameterivEXT+glrefGetNamedBufferParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedBufferParameterivEXT #-}+glGetNamedBufferParameterivEXT :: FuntypeGetNamedBufferParameterivEXT+glGetNamedBufferParameterivEXT = unsafePerformIO $ readIORef glrefGetNamedBufferParameterivEXT+{-# INLINE glGetNamedBufferParameterivEXT #-}+type FuntypeGetNamedBufferPointervEXT =+ GLuint ->+ GLenum ->+ Ptr (Ptr ()) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedBufferPointervEXT :: FunPtr FuntypeGetNamedBufferPointervEXT -> FuntypeGetNamedBufferPointervEXT+glrefGetNamedBufferPointervEXT :: IORef FuntypeGetNamedBufferPointervEXT+glrefGetNamedBufferPointervEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedBufferPointervEXT #-}+glGetNamedBufferPointervEXT :: FuntypeGetNamedBufferPointervEXT+glGetNamedBufferPointervEXT = unsafePerformIO $ readIORef glrefGetNamedBufferPointervEXT+{-# INLINE glGetNamedBufferPointervEXT #-}+type FuntypeGetNamedBufferSubDataEXT =+ GLuint ->+ GLintptr ->+ GLsizeiptr ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedBufferSubDataEXT :: FunPtr FuntypeGetNamedBufferSubDataEXT -> FuntypeGetNamedBufferSubDataEXT+glrefGetNamedBufferSubDataEXT :: IORef FuntypeGetNamedBufferSubDataEXT+glrefGetNamedBufferSubDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedBufferSubDataEXT #-}+glGetNamedBufferSubDataEXT :: FuntypeGetNamedBufferSubDataEXT+glGetNamedBufferSubDataEXT = unsafePerformIO $ readIORef glrefGetNamedBufferSubDataEXT+{-# INLINE glGetNamedBufferSubDataEXT #-}+type FuntypeProgramUniform1fEXT =+ GLuint ->+ GLint ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1fEXT :: FunPtr FuntypeProgramUniform1fEXT -> FuntypeProgramUniform1fEXT+glrefProgramUniform1fEXT :: IORef FuntypeProgramUniform1fEXT+glrefProgramUniform1fEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1fEXT #-}+glProgramUniform1fEXT :: FuntypeProgramUniform1fEXT+glProgramUniform1fEXT = unsafePerformIO $ readIORef glrefProgramUniform1fEXT+{-# INLINE glProgramUniform1fEXT #-}+type FuntypeProgramUniform2fEXT =+ GLuint ->+ GLint ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2fEXT :: FunPtr FuntypeProgramUniform2fEXT -> FuntypeProgramUniform2fEXT+glrefProgramUniform2fEXT :: IORef FuntypeProgramUniform2fEXT+glrefProgramUniform2fEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2fEXT #-}+glProgramUniform2fEXT :: FuntypeProgramUniform2fEXT+glProgramUniform2fEXT = unsafePerformIO $ readIORef glrefProgramUniform2fEXT+{-# INLINE glProgramUniform2fEXT #-}+type FuntypeProgramUniform3fEXT =+ GLuint ->+ GLint ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3fEXT :: FunPtr FuntypeProgramUniform3fEXT -> FuntypeProgramUniform3fEXT+glrefProgramUniform3fEXT :: IORef FuntypeProgramUniform3fEXT+glrefProgramUniform3fEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3fEXT #-}+glProgramUniform3fEXT :: FuntypeProgramUniform3fEXT+glProgramUniform3fEXT = unsafePerformIO $ readIORef glrefProgramUniform3fEXT+{-# INLINE glProgramUniform3fEXT #-}+type FuntypeProgramUniform4fEXT =+ GLuint ->+ GLint ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4fEXT :: FunPtr FuntypeProgramUniform4fEXT -> FuntypeProgramUniform4fEXT+glrefProgramUniform4fEXT :: IORef FuntypeProgramUniform4fEXT+glrefProgramUniform4fEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4fEXT #-}+glProgramUniform4fEXT :: FuntypeProgramUniform4fEXT+glProgramUniform4fEXT = unsafePerformIO $ readIORef glrefProgramUniform4fEXT+{-# INLINE glProgramUniform4fEXT #-}+type FuntypeProgramUniform1iEXT =+ GLuint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1iEXT :: FunPtr FuntypeProgramUniform1iEXT -> FuntypeProgramUniform1iEXT+glrefProgramUniform1iEXT :: IORef FuntypeProgramUniform1iEXT+glrefProgramUniform1iEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1iEXT #-}+glProgramUniform1iEXT :: FuntypeProgramUniform1iEXT+glProgramUniform1iEXT = unsafePerformIO $ readIORef glrefProgramUniform1iEXT+{-# INLINE glProgramUniform1iEXT #-}+type FuntypeProgramUniform2iEXT =+ GLuint ->+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2iEXT :: FunPtr FuntypeProgramUniform2iEXT -> FuntypeProgramUniform2iEXT+glrefProgramUniform2iEXT :: IORef FuntypeProgramUniform2iEXT+glrefProgramUniform2iEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2iEXT #-}+glProgramUniform2iEXT :: FuntypeProgramUniform2iEXT+glProgramUniform2iEXT = unsafePerformIO $ readIORef glrefProgramUniform2iEXT+{-# INLINE glProgramUniform2iEXT #-}+type FuntypeProgramUniform3iEXT =+ GLuint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3iEXT :: FunPtr FuntypeProgramUniform3iEXT -> FuntypeProgramUniform3iEXT+glrefProgramUniform3iEXT :: IORef FuntypeProgramUniform3iEXT+glrefProgramUniform3iEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3iEXT #-}+glProgramUniform3iEXT :: FuntypeProgramUniform3iEXT+glProgramUniform3iEXT = unsafePerformIO $ readIORef glrefProgramUniform3iEXT+{-# INLINE glProgramUniform3iEXT #-}+type FuntypeProgramUniform4iEXT =+ GLuint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4iEXT :: FunPtr FuntypeProgramUniform4iEXT -> FuntypeProgramUniform4iEXT+glrefProgramUniform4iEXT :: IORef FuntypeProgramUniform4iEXT+glrefProgramUniform4iEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4iEXT #-}+glProgramUniform4iEXT :: FuntypeProgramUniform4iEXT+glProgramUniform4iEXT = unsafePerformIO $ readIORef glrefProgramUniform4iEXT+{-# INLINE glProgramUniform4iEXT #-}+type FuntypeProgramUniform1fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1fvEXT :: FunPtr FuntypeProgramUniform1fvEXT -> FuntypeProgramUniform1fvEXT+glrefProgramUniform1fvEXT :: IORef FuntypeProgramUniform1fvEXT+glrefProgramUniform1fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1fvEXT #-}+glProgramUniform1fvEXT :: FuntypeProgramUniform1fvEXT+glProgramUniform1fvEXT = unsafePerformIO $ readIORef glrefProgramUniform1fvEXT+{-# INLINE glProgramUniform1fvEXT #-}+type FuntypeProgramUniform2fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2fvEXT :: FunPtr FuntypeProgramUniform2fvEXT -> FuntypeProgramUniform2fvEXT+glrefProgramUniform2fvEXT :: IORef FuntypeProgramUniform2fvEXT+glrefProgramUniform2fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2fvEXT #-}+glProgramUniform2fvEXT :: FuntypeProgramUniform2fvEXT+glProgramUniform2fvEXT = unsafePerformIO $ readIORef glrefProgramUniform2fvEXT+{-# INLINE glProgramUniform2fvEXT #-}+type FuntypeProgramUniform3fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3fvEXT :: FunPtr FuntypeProgramUniform3fvEXT -> FuntypeProgramUniform3fvEXT+glrefProgramUniform3fvEXT :: IORef FuntypeProgramUniform3fvEXT+glrefProgramUniform3fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3fvEXT #-}+glProgramUniform3fvEXT :: FuntypeProgramUniform3fvEXT+glProgramUniform3fvEXT = unsafePerformIO $ readIORef glrefProgramUniform3fvEXT+{-# INLINE glProgramUniform3fvEXT #-}+type FuntypeProgramUniform4fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4fvEXT :: FunPtr FuntypeProgramUniform4fvEXT -> FuntypeProgramUniform4fvEXT+glrefProgramUniform4fvEXT :: IORef FuntypeProgramUniform4fvEXT+glrefProgramUniform4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4fvEXT #-}+glProgramUniform4fvEXT :: FuntypeProgramUniform4fvEXT+glProgramUniform4fvEXT = unsafePerformIO $ readIORef glrefProgramUniform4fvEXT+{-# INLINE glProgramUniform4fvEXT #-}+type FuntypeProgramUniform1ivEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1ivEXT :: FunPtr FuntypeProgramUniform1ivEXT -> FuntypeProgramUniform1ivEXT+glrefProgramUniform1ivEXT :: IORef FuntypeProgramUniform1ivEXT+glrefProgramUniform1ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1ivEXT #-}+glProgramUniform1ivEXT :: FuntypeProgramUniform1ivEXT+glProgramUniform1ivEXT = unsafePerformIO $ readIORef glrefProgramUniform1ivEXT+{-# INLINE glProgramUniform1ivEXT #-}+type FuntypeProgramUniform2ivEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2ivEXT :: FunPtr FuntypeProgramUniform2ivEXT -> FuntypeProgramUniform2ivEXT+glrefProgramUniform2ivEXT :: IORef FuntypeProgramUniform2ivEXT+glrefProgramUniform2ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2ivEXT #-}+glProgramUniform2ivEXT :: FuntypeProgramUniform2ivEXT+glProgramUniform2ivEXT = unsafePerformIO $ readIORef glrefProgramUniform2ivEXT+{-# INLINE glProgramUniform2ivEXT #-}+type FuntypeProgramUniform3ivEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3ivEXT :: FunPtr FuntypeProgramUniform3ivEXT -> FuntypeProgramUniform3ivEXT+glrefProgramUniform3ivEXT :: IORef FuntypeProgramUniform3ivEXT+glrefProgramUniform3ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3ivEXT #-}+glProgramUniform3ivEXT :: FuntypeProgramUniform3ivEXT+glProgramUniform3ivEXT = unsafePerformIO $ readIORef glrefProgramUniform3ivEXT+{-# INLINE glProgramUniform3ivEXT #-}+type FuntypeProgramUniform4ivEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4ivEXT :: FunPtr FuntypeProgramUniform4ivEXT -> FuntypeProgramUniform4ivEXT+glrefProgramUniform4ivEXT :: IORef FuntypeProgramUniform4ivEXT+glrefProgramUniform4ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4ivEXT #-}+glProgramUniform4ivEXT :: FuntypeProgramUniform4ivEXT+glProgramUniform4ivEXT = unsafePerformIO $ readIORef glrefProgramUniform4ivEXT+{-# INLINE glProgramUniform4ivEXT #-}+type FuntypeProgramUniformMatrix2fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2fvEXT :: FunPtr FuntypeProgramUniformMatrix2fvEXT -> FuntypeProgramUniformMatrix2fvEXT+glrefProgramUniformMatrix2fvEXT :: IORef FuntypeProgramUniformMatrix2fvEXT+glrefProgramUniformMatrix2fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2fvEXT #-}+glProgramUniformMatrix2fvEXT :: FuntypeProgramUniformMatrix2fvEXT+glProgramUniformMatrix2fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2fvEXT+{-# INLINE glProgramUniformMatrix2fvEXT #-}+type FuntypeProgramUniformMatrix3fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3fvEXT :: FunPtr FuntypeProgramUniformMatrix3fvEXT -> FuntypeProgramUniformMatrix3fvEXT+glrefProgramUniformMatrix3fvEXT :: IORef FuntypeProgramUniformMatrix3fvEXT+glrefProgramUniformMatrix3fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3fvEXT #-}+glProgramUniformMatrix3fvEXT :: FuntypeProgramUniformMatrix3fvEXT+glProgramUniformMatrix3fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3fvEXT+{-# INLINE glProgramUniformMatrix3fvEXT #-}+type FuntypeProgramUniformMatrix4fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4fvEXT :: FunPtr FuntypeProgramUniformMatrix4fvEXT -> FuntypeProgramUniformMatrix4fvEXT+glrefProgramUniformMatrix4fvEXT :: IORef FuntypeProgramUniformMatrix4fvEXT+glrefProgramUniformMatrix4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4fvEXT #-}+glProgramUniformMatrix4fvEXT :: FuntypeProgramUniformMatrix4fvEXT+glProgramUniformMatrix4fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4fvEXT+{-# INLINE glProgramUniformMatrix4fvEXT #-}+type FuntypeProgramUniformMatrix2x3fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2x3fvEXT :: FunPtr FuntypeProgramUniformMatrix2x3fvEXT -> FuntypeProgramUniformMatrix2x3fvEXT+glrefProgramUniformMatrix2x3fvEXT :: IORef FuntypeProgramUniformMatrix2x3fvEXT+glrefProgramUniformMatrix2x3fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2x3fvEXT #-}+glProgramUniformMatrix2x3fvEXT :: FuntypeProgramUniformMatrix2x3fvEXT+glProgramUniformMatrix2x3fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x3fvEXT+{-# INLINE glProgramUniformMatrix2x3fvEXT #-}+type FuntypeProgramUniformMatrix3x2fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3x2fvEXT :: FunPtr FuntypeProgramUniformMatrix3x2fvEXT -> FuntypeProgramUniformMatrix3x2fvEXT+glrefProgramUniformMatrix3x2fvEXT :: IORef FuntypeProgramUniformMatrix3x2fvEXT+glrefProgramUniformMatrix3x2fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3x2fvEXT #-}+glProgramUniformMatrix3x2fvEXT :: FuntypeProgramUniformMatrix3x2fvEXT+glProgramUniformMatrix3x2fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x2fvEXT+{-# INLINE glProgramUniformMatrix3x2fvEXT #-}+type FuntypeProgramUniformMatrix2x4fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2x4fvEXT :: FunPtr FuntypeProgramUniformMatrix2x4fvEXT -> FuntypeProgramUniformMatrix2x4fvEXT+glrefProgramUniformMatrix2x4fvEXT :: IORef FuntypeProgramUniformMatrix2x4fvEXT+glrefProgramUniformMatrix2x4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2x4fvEXT #-}+glProgramUniformMatrix2x4fvEXT :: FuntypeProgramUniformMatrix2x4fvEXT+glProgramUniformMatrix2x4fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x4fvEXT+{-# INLINE glProgramUniformMatrix2x4fvEXT #-}+type FuntypeProgramUniformMatrix4x2fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4x2fvEXT :: FunPtr FuntypeProgramUniformMatrix4x2fvEXT -> FuntypeProgramUniformMatrix4x2fvEXT+glrefProgramUniformMatrix4x2fvEXT :: IORef FuntypeProgramUniformMatrix4x2fvEXT+glrefProgramUniformMatrix4x2fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4x2fvEXT #-}+glProgramUniformMatrix4x2fvEXT :: FuntypeProgramUniformMatrix4x2fvEXT+glProgramUniformMatrix4x2fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x2fvEXT+{-# INLINE glProgramUniformMatrix4x2fvEXT #-}+type FuntypeProgramUniformMatrix3x4fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3x4fvEXT :: FunPtr FuntypeProgramUniformMatrix3x4fvEXT -> FuntypeProgramUniformMatrix3x4fvEXT+glrefProgramUniformMatrix3x4fvEXT :: IORef FuntypeProgramUniformMatrix3x4fvEXT+glrefProgramUniformMatrix3x4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3x4fvEXT #-}+glProgramUniformMatrix3x4fvEXT :: FuntypeProgramUniformMatrix3x4fvEXT+glProgramUniformMatrix3x4fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x4fvEXT+{-# INLINE glProgramUniformMatrix3x4fvEXT #-}+type FuntypeProgramUniformMatrix4x3fvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4x3fvEXT :: FunPtr FuntypeProgramUniformMatrix4x3fvEXT -> FuntypeProgramUniformMatrix4x3fvEXT+glrefProgramUniformMatrix4x3fvEXT :: IORef FuntypeProgramUniformMatrix4x3fvEXT+glrefProgramUniformMatrix4x3fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4x3fvEXT #-}+glProgramUniformMatrix4x3fvEXT :: FuntypeProgramUniformMatrix4x3fvEXT+glProgramUniformMatrix4x3fvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x3fvEXT+{-# INLINE glProgramUniformMatrix4x3fvEXT #-}+type FuntypeTextureBufferEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureBufferEXT :: FunPtr FuntypeTextureBufferEXT -> FuntypeTextureBufferEXT+glrefTextureBufferEXT :: IORef FuntypeTextureBufferEXT+glrefTextureBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureBufferEXT #-}+glTextureBufferEXT :: FuntypeTextureBufferEXT+glTextureBufferEXT = unsafePerformIO $ readIORef glrefTextureBufferEXT+{-# INLINE glTextureBufferEXT #-}+type FuntypeMultiTexBufferEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexBufferEXT :: FunPtr FuntypeMultiTexBufferEXT -> FuntypeMultiTexBufferEXT+glrefMultiTexBufferEXT :: IORef FuntypeMultiTexBufferEXT+glrefMultiTexBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexBufferEXT #-}+glMultiTexBufferEXT :: FuntypeMultiTexBufferEXT+glMultiTexBufferEXT = unsafePerformIO $ readIORef glrefMultiTexBufferEXT+{-# INLINE glMultiTexBufferEXT #-}+type FuntypeTextureParameterIivEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureParameterIivEXT :: FunPtr FuntypeTextureParameterIivEXT -> FuntypeTextureParameterIivEXT+glrefTextureParameterIivEXT :: IORef FuntypeTextureParameterIivEXT+glrefTextureParameterIivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureParameterIivEXT #-}+glTextureParameterIivEXT :: FuntypeTextureParameterIivEXT+glTextureParameterIivEXT = unsafePerformIO $ readIORef glrefTextureParameterIivEXT+{-# INLINE glTextureParameterIivEXT #-}+type FuntypeTextureParameterIuivEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureParameterIuivEXT :: FunPtr FuntypeTextureParameterIuivEXT -> FuntypeTextureParameterIuivEXT+glrefTextureParameterIuivEXT :: IORef FuntypeTextureParameterIuivEXT+glrefTextureParameterIuivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureParameterIuivEXT #-}+glTextureParameterIuivEXT :: FuntypeTextureParameterIuivEXT+glTextureParameterIuivEXT = unsafePerformIO $ readIORef glrefTextureParameterIuivEXT+{-# INLINE glTextureParameterIuivEXT #-}+type FuntypeGetTextureParameterIivEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTextureParameterIivEXT :: FunPtr FuntypeGetTextureParameterIivEXT -> FuntypeGetTextureParameterIivEXT+glrefGetTextureParameterIivEXT :: IORef FuntypeGetTextureParameterIivEXT+glrefGetTextureParameterIivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTextureParameterIivEXT #-}+glGetTextureParameterIivEXT :: FuntypeGetTextureParameterIivEXT+glGetTextureParameterIivEXT = unsafePerformIO $ readIORef glrefGetTextureParameterIivEXT+{-# INLINE glGetTextureParameterIivEXT #-}+type FuntypeGetTextureParameterIuivEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetTextureParameterIuivEXT :: FunPtr FuntypeGetTextureParameterIuivEXT -> FuntypeGetTextureParameterIuivEXT+glrefGetTextureParameterIuivEXT :: IORef FuntypeGetTextureParameterIuivEXT+glrefGetTextureParameterIuivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetTextureParameterIuivEXT #-}+glGetTextureParameterIuivEXT :: FuntypeGetTextureParameterIuivEXT+glGetTextureParameterIuivEXT = unsafePerformIO $ readIORef glrefGetTextureParameterIuivEXT+{-# INLINE glGetTextureParameterIuivEXT #-}+type FuntypeMultiTexParameterIivEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexParameterIivEXT :: FunPtr FuntypeMultiTexParameterIivEXT -> FuntypeMultiTexParameterIivEXT+glrefMultiTexParameterIivEXT :: IORef FuntypeMultiTexParameterIivEXT+glrefMultiTexParameterIivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexParameterIivEXT #-}+glMultiTexParameterIivEXT :: FuntypeMultiTexParameterIivEXT+glMultiTexParameterIivEXT = unsafePerformIO $ readIORef glrefMultiTexParameterIivEXT+{-# INLINE glMultiTexParameterIivEXT #-}+type FuntypeMultiTexParameterIuivEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexParameterIuivEXT :: FunPtr FuntypeMultiTexParameterIuivEXT -> FuntypeMultiTexParameterIuivEXT+glrefMultiTexParameterIuivEXT :: IORef FuntypeMultiTexParameterIuivEXT+glrefMultiTexParameterIuivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexParameterIuivEXT #-}+glMultiTexParameterIuivEXT :: FuntypeMultiTexParameterIuivEXT+glMultiTexParameterIuivEXT = unsafePerformIO $ readIORef glrefMultiTexParameterIuivEXT+{-# INLINE glMultiTexParameterIuivEXT #-}+type FuntypeGetMultiTexParameterIivEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexParameterIivEXT :: FunPtr FuntypeGetMultiTexParameterIivEXT -> FuntypeGetMultiTexParameterIivEXT+glrefGetMultiTexParameterIivEXT :: IORef FuntypeGetMultiTexParameterIivEXT+glrefGetMultiTexParameterIivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexParameterIivEXT #-}+glGetMultiTexParameterIivEXT :: FuntypeGetMultiTexParameterIivEXT+glGetMultiTexParameterIivEXT = unsafePerformIO $ readIORef glrefGetMultiTexParameterIivEXT+{-# INLINE glGetMultiTexParameterIivEXT #-}+type FuntypeGetMultiTexParameterIuivEXT =+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetMultiTexParameterIuivEXT :: FunPtr FuntypeGetMultiTexParameterIuivEXT -> FuntypeGetMultiTexParameterIuivEXT+glrefGetMultiTexParameterIuivEXT :: IORef FuntypeGetMultiTexParameterIuivEXT+glrefGetMultiTexParameterIuivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetMultiTexParameterIuivEXT #-}+glGetMultiTexParameterIuivEXT :: FuntypeGetMultiTexParameterIuivEXT+glGetMultiTexParameterIuivEXT = unsafePerformIO $ readIORef glrefGetMultiTexParameterIuivEXT+{-# INLINE glGetMultiTexParameterIuivEXT #-}+type FuntypeProgramUniform1uiEXT =+ GLuint ->+ GLint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1uiEXT :: FunPtr FuntypeProgramUniform1uiEXT -> FuntypeProgramUniform1uiEXT+glrefProgramUniform1uiEXT :: IORef FuntypeProgramUniform1uiEXT+glrefProgramUniform1uiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1uiEXT #-}+glProgramUniform1uiEXT :: FuntypeProgramUniform1uiEXT+glProgramUniform1uiEXT = unsafePerformIO $ readIORef glrefProgramUniform1uiEXT+{-# INLINE glProgramUniform1uiEXT #-}+type FuntypeProgramUniform2uiEXT =+ GLuint ->+ GLint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2uiEXT :: FunPtr FuntypeProgramUniform2uiEXT -> FuntypeProgramUniform2uiEXT+glrefProgramUniform2uiEXT :: IORef FuntypeProgramUniform2uiEXT+glrefProgramUniform2uiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2uiEXT #-}+glProgramUniform2uiEXT :: FuntypeProgramUniform2uiEXT+glProgramUniform2uiEXT = unsafePerformIO $ readIORef glrefProgramUniform2uiEXT+{-# INLINE glProgramUniform2uiEXT #-}+type FuntypeProgramUniform3uiEXT =+ GLuint ->+ GLint ->+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3uiEXT :: FunPtr FuntypeProgramUniform3uiEXT -> FuntypeProgramUniform3uiEXT+glrefProgramUniform3uiEXT :: IORef FuntypeProgramUniform3uiEXT+glrefProgramUniform3uiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3uiEXT #-}+glProgramUniform3uiEXT :: FuntypeProgramUniform3uiEXT+glProgramUniform3uiEXT = unsafePerformIO $ readIORef glrefProgramUniform3uiEXT+{-# INLINE glProgramUniform3uiEXT #-}+type FuntypeProgramUniform4uiEXT =+ GLuint ->+ GLint ->+ GLuint ->+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4uiEXT :: FunPtr FuntypeProgramUniform4uiEXT -> FuntypeProgramUniform4uiEXT+glrefProgramUniform4uiEXT :: IORef FuntypeProgramUniform4uiEXT+glrefProgramUniform4uiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4uiEXT #-}+glProgramUniform4uiEXT :: FuntypeProgramUniform4uiEXT+glProgramUniform4uiEXT = unsafePerformIO $ readIORef glrefProgramUniform4uiEXT+{-# INLINE glProgramUniform4uiEXT #-}+type FuntypeProgramUniform1uivEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1uivEXT :: FunPtr FuntypeProgramUniform1uivEXT -> FuntypeProgramUniform1uivEXT+glrefProgramUniform1uivEXT :: IORef FuntypeProgramUniform1uivEXT+glrefProgramUniform1uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1uivEXT #-}+glProgramUniform1uivEXT :: FuntypeProgramUniform1uivEXT+glProgramUniform1uivEXT = unsafePerformIO $ readIORef glrefProgramUniform1uivEXT+{-# INLINE glProgramUniform1uivEXT #-}+type FuntypeProgramUniform2uivEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2uivEXT :: FunPtr FuntypeProgramUniform2uivEXT -> FuntypeProgramUniform2uivEXT+glrefProgramUniform2uivEXT :: IORef FuntypeProgramUniform2uivEXT+glrefProgramUniform2uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2uivEXT #-}+glProgramUniform2uivEXT :: FuntypeProgramUniform2uivEXT+glProgramUniform2uivEXT = unsafePerformIO $ readIORef glrefProgramUniform2uivEXT+{-# INLINE glProgramUniform2uivEXT #-}+type FuntypeProgramUniform3uivEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3uivEXT :: FunPtr FuntypeProgramUniform3uivEXT -> FuntypeProgramUniform3uivEXT+glrefProgramUniform3uivEXT :: IORef FuntypeProgramUniform3uivEXT+glrefProgramUniform3uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3uivEXT #-}+glProgramUniform3uivEXT :: FuntypeProgramUniform3uivEXT+glProgramUniform3uivEXT = unsafePerformIO $ readIORef glrefProgramUniform3uivEXT+{-# INLINE glProgramUniform3uivEXT #-}+type FuntypeProgramUniform4uivEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4uivEXT :: FunPtr FuntypeProgramUniform4uivEXT -> FuntypeProgramUniform4uivEXT+glrefProgramUniform4uivEXT :: IORef FuntypeProgramUniform4uivEXT+glrefProgramUniform4uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4uivEXT #-}+glProgramUniform4uivEXT :: FuntypeProgramUniform4uivEXT+glProgramUniform4uivEXT = unsafePerformIO $ readIORef glrefProgramUniform4uivEXT+{-# INLINE glProgramUniform4uivEXT #-}+type FuntypeNamedProgramLocalParameters4fvEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramLocalParameters4fvEXT :: FunPtr FuntypeNamedProgramLocalParameters4fvEXT -> FuntypeNamedProgramLocalParameters4fvEXT+glrefNamedProgramLocalParameters4fvEXT :: IORef FuntypeNamedProgramLocalParameters4fvEXT+glrefNamedProgramLocalParameters4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramLocalParameters4fvEXT #-}+glNamedProgramLocalParameters4fvEXT :: FuntypeNamedProgramLocalParameters4fvEXT+glNamedProgramLocalParameters4fvEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameters4fvEXT+{-# INLINE glNamedProgramLocalParameters4fvEXT #-}+type FuntypeNamedProgramLocalParameterI4iEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramLocalParameterI4iEXT :: FunPtr FuntypeNamedProgramLocalParameterI4iEXT -> FuntypeNamedProgramLocalParameterI4iEXT+glrefNamedProgramLocalParameterI4iEXT :: IORef FuntypeNamedProgramLocalParameterI4iEXT+glrefNamedProgramLocalParameterI4iEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramLocalParameterI4iEXT #-}+glNamedProgramLocalParameterI4iEXT :: FuntypeNamedProgramLocalParameterI4iEXT+glNamedProgramLocalParameterI4iEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameterI4iEXT+{-# INLINE glNamedProgramLocalParameterI4iEXT #-}+type FuntypeNamedProgramLocalParameterI4ivEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramLocalParameterI4ivEXT :: FunPtr FuntypeNamedProgramLocalParameterI4ivEXT -> FuntypeNamedProgramLocalParameterI4ivEXT+glrefNamedProgramLocalParameterI4ivEXT :: IORef FuntypeNamedProgramLocalParameterI4ivEXT+glrefNamedProgramLocalParameterI4ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramLocalParameterI4ivEXT #-}+glNamedProgramLocalParameterI4ivEXT :: FuntypeNamedProgramLocalParameterI4ivEXT+glNamedProgramLocalParameterI4ivEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameterI4ivEXT+{-# INLINE glNamedProgramLocalParameterI4ivEXT #-}+type FuntypeNamedProgramLocalParametersI4ivEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramLocalParametersI4ivEXT :: FunPtr FuntypeNamedProgramLocalParametersI4ivEXT -> FuntypeNamedProgramLocalParametersI4ivEXT+glrefNamedProgramLocalParametersI4ivEXT :: IORef FuntypeNamedProgramLocalParametersI4ivEXT+glrefNamedProgramLocalParametersI4ivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramLocalParametersI4ivEXT #-}+glNamedProgramLocalParametersI4ivEXT :: FuntypeNamedProgramLocalParametersI4ivEXT+glNamedProgramLocalParametersI4ivEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParametersI4ivEXT+{-# INLINE glNamedProgramLocalParametersI4ivEXT #-}+type FuntypeNamedProgramLocalParameterI4uiEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ GLuint ->+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramLocalParameterI4uiEXT :: FunPtr FuntypeNamedProgramLocalParameterI4uiEXT -> FuntypeNamedProgramLocalParameterI4uiEXT+glrefNamedProgramLocalParameterI4uiEXT :: IORef FuntypeNamedProgramLocalParameterI4uiEXT+glrefNamedProgramLocalParameterI4uiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramLocalParameterI4uiEXT #-}+glNamedProgramLocalParameterI4uiEXT :: FuntypeNamedProgramLocalParameterI4uiEXT+glNamedProgramLocalParameterI4uiEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameterI4uiEXT+{-# INLINE glNamedProgramLocalParameterI4uiEXT #-}+type FuntypeNamedProgramLocalParameterI4uivEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramLocalParameterI4uivEXT :: FunPtr FuntypeNamedProgramLocalParameterI4uivEXT -> FuntypeNamedProgramLocalParameterI4uivEXT+glrefNamedProgramLocalParameterI4uivEXT :: IORef FuntypeNamedProgramLocalParameterI4uivEXT+glrefNamedProgramLocalParameterI4uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramLocalParameterI4uivEXT #-}+glNamedProgramLocalParameterI4uivEXT :: FuntypeNamedProgramLocalParameterI4uivEXT+glNamedProgramLocalParameterI4uivEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameterI4uivEXT+{-# INLINE glNamedProgramLocalParameterI4uivEXT #-}+type FuntypeNamedProgramLocalParametersI4uivEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramLocalParametersI4uivEXT :: FunPtr FuntypeNamedProgramLocalParametersI4uivEXT -> FuntypeNamedProgramLocalParametersI4uivEXT+glrefNamedProgramLocalParametersI4uivEXT :: IORef FuntypeNamedProgramLocalParametersI4uivEXT+glrefNamedProgramLocalParametersI4uivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramLocalParametersI4uivEXT #-}+glNamedProgramLocalParametersI4uivEXT :: FuntypeNamedProgramLocalParametersI4uivEXT+glNamedProgramLocalParametersI4uivEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParametersI4uivEXT+{-# INLINE glNamedProgramLocalParametersI4uivEXT #-}+type FuntypeGetNamedProgramLocalParameterIivEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedProgramLocalParameterIivEXT :: FunPtr FuntypeGetNamedProgramLocalParameterIivEXT -> FuntypeGetNamedProgramLocalParameterIivEXT+glrefGetNamedProgramLocalParameterIivEXT :: IORef FuntypeGetNamedProgramLocalParameterIivEXT+glrefGetNamedProgramLocalParameterIivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedProgramLocalParameterIivEXT #-}+glGetNamedProgramLocalParameterIivEXT :: FuntypeGetNamedProgramLocalParameterIivEXT+glGetNamedProgramLocalParameterIivEXT = unsafePerformIO $ readIORef glrefGetNamedProgramLocalParameterIivEXT+{-# INLINE glGetNamedProgramLocalParameterIivEXT #-}+type FuntypeGetNamedProgramLocalParameterIuivEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedProgramLocalParameterIuivEXT :: FunPtr FuntypeGetNamedProgramLocalParameterIuivEXT -> FuntypeGetNamedProgramLocalParameterIuivEXT+glrefGetNamedProgramLocalParameterIuivEXT :: IORef FuntypeGetNamedProgramLocalParameterIuivEXT+glrefGetNamedProgramLocalParameterIuivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedProgramLocalParameterIuivEXT #-}+glGetNamedProgramLocalParameterIuivEXT :: FuntypeGetNamedProgramLocalParameterIuivEXT+glGetNamedProgramLocalParameterIuivEXT = unsafePerformIO $ readIORef glrefGetNamedProgramLocalParameterIuivEXT+{-# INLINE glGetNamedProgramLocalParameterIuivEXT #-}+type FuntypeEnableClientStateiEXT =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynEnableClientStateiEXT :: FunPtr FuntypeEnableClientStateiEXT -> FuntypeEnableClientStateiEXT+glrefEnableClientStateiEXT :: IORef FuntypeEnableClientStateiEXT+glrefEnableClientStateiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefEnableClientStateiEXT #-}+glEnableClientStateiEXT :: FuntypeEnableClientStateiEXT+glEnableClientStateiEXT = unsafePerformIO $ readIORef glrefEnableClientStateiEXT+{-# INLINE glEnableClientStateiEXT #-}+type FuntypeDisableClientStateiEXT =+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDisableClientStateiEXT :: FunPtr FuntypeDisableClientStateiEXT -> FuntypeDisableClientStateiEXT+glrefDisableClientStateiEXT :: IORef FuntypeDisableClientStateiEXT+glrefDisableClientStateiEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDisableClientStateiEXT #-}+glDisableClientStateiEXT :: FuntypeDisableClientStateiEXT+glDisableClientStateiEXT = unsafePerformIO $ readIORef glrefDisableClientStateiEXT+{-# INLINE glDisableClientStateiEXT #-}+type FuntypeGetFloati_vEXT =+ GLenum ->+ GLuint ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetFloati_vEXT :: FunPtr FuntypeGetFloati_vEXT -> FuntypeGetFloati_vEXT+glrefGetFloati_vEXT :: IORef FuntypeGetFloati_vEXT+glrefGetFloati_vEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetFloati_vEXT #-}+glGetFloati_vEXT :: FuntypeGetFloati_vEXT+glGetFloati_vEXT = unsafePerformIO $ readIORef glrefGetFloati_vEXT+{-# INLINE glGetFloati_vEXT #-}+type FuntypeGetDoublei_vEXT =+ GLenum ->+ GLuint ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetDoublei_vEXT :: FunPtr FuntypeGetDoublei_vEXT -> FuntypeGetDoublei_vEXT+glrefGetDoublei_vEXT :: IORef FuntypeGetDoublei_vEXT+glrefGetDoublei_vEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetDoublei_vEXT #-}+glGetDoublei_vEXT :: FuntypeGetDoublei_vEXT+glGetDoublei_vEXT = unsafePerformIO $ readIORef glrefGetDoublei_vEXT+{-# INLINE glGetDoublei_vEXT #-}+type FuntypeGetPointeri_vEXT =+ GLenum ->+ GLuint ->+ Ptr (Ptr ()) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetPointeri_vEXT :: FunPtr FuntypeGetPointeri_vEXT -> FuntypeGetPointeri_vEXT+glrefGetPointeri_vEXT :: IORef FuntypeGetPointeri_vEXT+glrefGetPointeri_vEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetPointeri_vEXT #-}+glGetPointeri_vEXT :: FuntypeGetPointeri_vEXT+glGetPointeri_vEXT = unsafePerformIO $ readIORef glrefGetPointeri_vEXT+{-# INLINE glGetPointeri_vEXT #-}+type FuntypeNamedProgramStringEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ GLsizei ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramStringEXT :: FunPtr FuntypeNamedProgramStringEXT -> FuntypeNamedProgramStringEXT+glrefNamedProgramStringEXT :: IORef FuntypeNamedProgramStringEXT+glrefNamedProgramStringEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramStringEXT #-}+glNamedProgramStringEXT :: FuntypeNamedProgramStringEXT+glNamedProgramStringEXT = unsafePerformIO $ readIORef glrefNamedProgramStringEXT+{-# INLINE glNamedProgramStringEXT #-}+type FuntypeNamedProgramLocalParameter4dEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramLocalParameter4dEXT :: FunPtr FuntypeNamedProgramLocalParameter4dEXT -> FuntypeNamedProgramLocalParameter4dEXT+glrefNamedProgramLocalParameter4dEXT :: IORef FuntypeNamedProgramLocalParameter4dEXT+glrefNamedProgramLocalParameter4dEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramLocalParameter4dEXT #-}+glNamedProgramLocalParameter4dEXT :: FuntypeNamedProgramLocalParameter4dEXT+glNamedProgramLocalParameter4dEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameter4dEXT+{-# INLINE glNamedProgramLocalParameter4dEXT #-}+type FuntypeNamedProgramLocalParameter4dvEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramLocalParameter4dvEXT :: FunPtr FuntypeNamedProgramLocalParameter4dvEXT -> FuntypeNamedProgramLocalParameter4dvEXT+glrefNamedProgramLocalParameter4dvEXT :: IORef FuntypeNamedProgramLocalParameter4dvEXT+glrefNamedProgramLocalParameter4dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramLocalParameter4dvEXT #-}+glNamedProgramLocalParameter4dvEXT :: FuntypeNamedProgramLocalParameter4dvEXT+glNamedProgramLocalParameter4dvEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameter4dvEXT+{-# INLINE glNamedProgramLocalParameter4dvEXT #-}+type FuntypeNamedProgramLocalParameter4fEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramLocalParameter4fEXT :: FunPtr FuntypeNamedProgramLocalParameter4fEXT -> FuntypeNamedProgramLocalParameter4fEXT+glrefNamedProgramLocalParameter4fEXT :: IORef FuntypeNamedProgramLocalParameter4fEXT+glrefNamedProgramLocalParameter4fEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramLocalParameter4fEXT #-}+glNamedProgramLocalParameter4fEXT :: FuntypeNamedProgramLocalParameter4fEXT+glNamedProgramLocalParameter4fEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameter4fEXT+{-# INLINE glNamedProgramLocalParameter4fEXT #-}+type FuntypeNamedProgramLocalParameter4fvEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedProgramLocalParameter4fvEXT :: FunPtr FuntypeNamedProgramLocalParameter4fvEXT -> FuntypeNamedProgramLocalParameter4fvEXT+glrefNamedProgramLocalParameter4fvEXT :: IORef FuntypeNamedProgramLocalParameter4fvEXT+glrefNamedProgramLocalParameter4fvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedProgramLocalParameter4fvEXT #-}+glNamedProgramLocalParameter4fvEXT :: FuntypeNamedProgramLocalParameter4fvEXT+glNamedProgramLocalParameter4fvEXT = unsafePerformIO $ readIORef glrefNamedProgramLocalParameter4fvEXT+{-# INLINE glNamedProgramLocalParameter4fvEXT #-}+type FuntypeGetNamedProgramLocalParameterdvEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedProgramLocalParameterdvEXT :: FunPtr FuntypeGetNamedProgramLocalParameterdvEXT -> FuntypeGetNamedProgramLocalParameterdvEXT+glrefGetNamedProgramLocalParameterdvEXT :: IORef FuntypeGetNamedProgramLocalParameterdvEXT+glrefGetNamedProgramLocalParameterdvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedProgramLocalParameterdvEXT #-}+glGetNamedProgramLocalParameterdvEXT :: FuntypeGetNamedProgramLocalParameterdvEXT+glGetNamedProgramLocalParameterdvEXT = unsafePerformIO $ readIORef glrefGetNamedProgramLocalParameterdvEXT+{-# INLINE glGetNamedProgramLocalParameterdvEXT #-}+type FuntypeGetNamedProgramLocalParameterfvEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedProgramLocalParameterfvEXT :: FunPtr FuntypeGetNamedProgramLocalParameterfvEXT -> FuntypeGetNamedProgramLocalParameterfvEXT+glrefGetNamedProgramLocalParameterfvEXT :: IORef FuntypeGetNamedProgramLocalParameterfvEXT+glrefGetNamedProgramLocalParameterfvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedProgramLocalParameterfvEXT #-}+glGetNamedProgramLocalParameterfvEXT :: FuntypeGetNamedProgramLocalParameterfvEXT+glGetNamedProgramLocalParameterfvEXT = unsafePerformIO $ readIORef glrefGetNamedProgramLocalParameterfvEXT+{-# INLINE glGetNamedProgramLocalParameterfvEXT #-}+type FuntypeGetNamedProgramivEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedProgramivEXT :: FunPtr FuntypeGetNamedProgramivEXT -> FuntypeGetNamedProgramivEXT+glrefGetNamedProgramivEXT :: IORef FuntypeGetNamedProgramivEXT+glrefGetNamedProgramivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedProgramivEXT #-}+glGetNamedProgramivEXT :: FuntypeGetNamedProgramivEXT+glGetNamedProgramivEXT = unsafePerformIO $ readIORef glrefGetNamedProgramivEXT+{-# INLINE glGetNamedProgramivEXT #-}+type FuntypeGetNamedProgramStringEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedProgramStringEXT :: FunPtr FuntypeGetNamedProgramStringEXT -> FuntypeGetNamedProgramStringEXT+glrefGetNamedProgramStringEXT :: IORef FuntypeGetNamedProgramStringEXT+glrefGetNamedProgramStringEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedProgramStringEXT #-}+glGetNamedProgramStringEXT :: FuntypeGetNamedProgramStringEXT+glGetNamedProgramStringEXT = unsafePerformIO $ readIORef glrefGetNamedProgramStringEXT+{-# INLINE glGetNamedProgramStringEXT #-}+type FuntypeNamedRenderbufferStorageEXT =+ GLuint ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedRenderbufferStorageEXT :: FunPtr FuntypeNamedRenderbufferStorageEXT -> FuntypeNamedRenderbufferStorageEXT+glrefNamedRenderbufferStorageEXT :: IORef FuntypeNamedRenderbufferStorageEXT+glrefNamedRenderbufferStorageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedRenderbufferStorageEXT #-}+glNamedRenderbufferStorageEXT :: FuntypeNamedRenderbufferStorageEXT+glNamedRenderbufferStorageEXT = unsafePerformIO $ readIORef glrefNamedRenderbufferStorageEXT+{-# INLINE glNamedRenderbufferStorageEXT #-}+type FuntypeGetNamedRenderbufferParameterivEXT =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedRenderbufferParameterivEXT :: FunPtr FuntypeGetNamedRenderbufferParameterivEXT -> FuntypeGetNamedRenderbufferParameterivEXT+glrefGetNamedRenderbufferParameterivEXT :: IORef FuntypeGetNamedRenderbufferParameterivEXT+glrefGetNamedRenderbufferParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedRenderbufferParameterivEXT #-}+glGetNamedRenderbufferParameterivEXT :: FuntypeGetNamedRenderbufferParameterivEXT+glGetNamedRenderbufferParameterivEXT = unsafePerformIO $ readIORef glrefGetNamedRenderbufferParameterivEXT+{-# INLINE glGetNamedRenderbufferParameterivEXT #-}+type FuntypeNamedRenderbufferStorageMultisampleEXT =+ GLuint ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedRenderbufferStorageMultisampleEXT :: FunPtr FuntypeNamedRenderbufferStorageMultisampleEXT -> FuntypeNamedRenderbufferStorageMultisampleEXT+glrefNamedRenderbufferStorageMultisampleEXT :: IORef FuntypeNamedRenderbufferStorageMultisampleEXT+glrefNamedRenderbufferStorageMultisampleEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedRenderbufferStorageMultisampleEXT #-}+glNamedRenderbufferStorageMultisampleEXT :: FuntypeNamedRenderbufferStorageMultisampleEXT+glNamedRenderbufferStorageMultisampleEXT = unsafePerformIO $ readIORef glrefNamedRenderbufferStorageMultisampleEXT+{-# INLINE glNamedRenderbufferStorageMultisampleEXT #-}+type FuntypeNamedRenderbufferStorageMultisampleCoverageEXT =+ GLuint ->+ GLsizei ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedRenderbufferStorageMultisampleCoverageEXT :: FunPtr FuntypeNamedRenderbufferStorageMultisampleCoverageEXT -> FuntypeNamedRenderbufferStorageMultisampleCoverageEXT+glrefNamedRenderbufferStorageMultisampleCoverageEXT :: IORef FuntypeNamedRenderbufferStorageMultisampleCoverageEXT+glrefNamedRenderbufferStorageMultisampleCoverageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedRenderbufferStorageMultisampleCoverageEXT #-}+glNamedRenderbufferStorageMultisampleCoverageEXT :: FuntypeNamedRenderbufferStorageMultisampleCoverageEXT+glNamedRenderbufferStorageMultisampleCoverageEXT = unsafePerformIO $ readIORef glrefNamedRenderbufferStorageMultisampleCoverageEXT+{-# INLINE glNamedRenderbufferStorageMultisampleCoverageEXT #-}+type FuntypeCheckNamedFramebufferStatusEXT =+ GLuint ->+ GLenum ->+ IO ( GLenum )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCheckNamedFramebufferStatusEXT :: FunPtr FuntypeCheckNamedFramebufferStatusEXT -> FuntypeCheckNamedFramebufferStatusEXT+glrefCheckNamedFramebufferStatusEXT :: IORef FuntypeCheckNamedFramebufferStatusEXT+glrefCheckNamedFramebufferStatusEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCheckNamedFramebufferStatusEXT #-}+glCheckNamedFramebufferStatusEXT :: FuntypeCheckNamedFramebufferStatusEXT+glCheckNamedFramebufferStatusEXT = unsafePerformIO $ readIORef glrefCheckNamedFramebufferStatusEXT+{-# INLINE glCheckNamedFramebufferStatusEXT #-}+type FuntypeNamedFramebufferTexture1DEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ GLuint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedFramebufferTexture1DEXT :: FunPtr FuntypeNamedFramebufferTexture1DEXT -> FuntypeNamedFramebufferTexture1DEXT+glrefNamedFramebufferTexture1DEXT :: IORef FuntypeNamedFramebufferTexture1DEXT+glrefNamedFramebufferTexture1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedFramebufferTexture1DEXT #-}+glNamedFramebufferTexture1DEXT :: FuntypeNamedFramebufferTexture1DEXT+glNamedFramebufferTexture1DEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTexture1DEXT+{-# INLINE glNamedFramebufferTexture1DEXT #-}+type FuntypeNamedFramebufferTexture2DEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ GLuint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedFramebufferTexture2DEXT :: FunPtr FuntypeNamedFramebufferTexture2DEXT -> FuntypeNamedFramebufferTexture2DEXT+glrefNamedFramebufferTexture2DEXT :: IORef FuntypeNamedFramebufferTexture2DEXT+glrefNamedFramebufferTexture2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedFramebufferTexture2DEXT #-}+glNamedFramebufferTexture2DEXT :: FuntypeNamedFramebufferTexture2DEXT+glNamedFramebufferTexture2DEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTexture2DEXT+{-# INLINE glNamedFramebufferTexture2DEXT #-}+type FuntypeNamedFramebufferTexture3DEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ GLuint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedFramebufferTexture3DEXT :: FunPtr FuntypeNamedFramebufferTexture3DEXT -> FuntypeNamedFramebufferTexture3DEXT+glrefNamedFramebufferTexture3DEXT :: IORef FuntypeNamedFramebufferTexture3DEXT+glrefNamedFramebufferTexture3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedFramebufferTexture3DEXT #-}+glNamedFramebufferTexture3DEXT :: FuntypeNamedFramebufferTexture3DEXT+glNamedFramebufferTexture3DEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTexture3DEXT+{-# INLINE glNamedFramebufferTexture3DEXT #-}+type FuntypeNamedFramebufferRenderbufferEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedFramebufferRenderbufferEXT :: FunPtr FuntypeNamedFramebufferRenderbufferEXT -> FuntypeNamedFramebufferRenderbufferEXT+glrefNamedFramebufferRenderbufferEXT :: IORef FuntypeNamedFramebufferRenderbufferEXT+glrefNamedFramebufferRenderbufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedFramebufferRenderbufferEXT #-}+glNamedFramebufferRenderbufferEXT :: FuntypeNamedFramebufferRenderbufferEXT+glNamedFramebufferRenderbufferEXT = unsafePerformIO $ readIORef glrefNamedFramebufferRenderbufferEXT+{-# INLINE glNamedFramebufferRenderbufferEXT #-}+type FuntypeGetNamedFramebufferAttachmentParameterivEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedFramebufferAttachmentParameterivEXT :: FunPtr FuntypeGetNamedFramebufferAttachmentParameterivEXT -> FuntypeGetNamedFramebufferAttachmentParameterivEXT+glrefGetNamedFramebufferAttachmentParameterivEXT :: IORef FuntypeGetNamedFramebufferAttachmentParameterivEXT+glrefGetNamedFramebufferAttachmentParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedFramebufferAttachmentParameterivEXT #-}+glGetNamedFramebufferAttachmentParameterivEXT :: FuntypeGetNamedFramebufferAttachmentParameterivEXT+glGetNamedFramebufferAttachmentParameterivEXT = unsafePerformIO $ readIORef glrefGetNamedFramebufferAttachmentParameterivEXT+{-# INLINE glGetNamedFramebufferAttachmentParameterivEXT #-}+type FuntypeGenerateTextureMipmapEXT =+ GLuint ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGenerateTextureMipmapEXT :: FunPtr FuntypeGenerateTextureMipmapEXT -> FuntypeGenerateTextureMipmapEXT+glrefGenerateTextureMipmapEXT :: IORef FuntypeGenerateTextureMipmapEXT+glrefGenerateTextureMipmapEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGenerateTextureMipmapEXT #-}+glGenerateTextureMipmapEXT :: FuntypeGenerateTextureMipmapEXT+glGenerateTextureMipmapEXT = unsafePerformIO $ readIORef glrefGenerateTextureMipmapEXT+{-# INLINE glGenerateTextureMipmapEXT #-}+type FuntypeGenerateMultiTexMipmapEXT =+ GLenum ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGenerateMultiTexMipmapEXT :: FunPtr FuntypeGenerateMultiTexMipmapEXT -> FuntypeGenerateMultiTexMipmapEXT+glrefGenerateMultiTexMipmapEXT :: IORef FuntypeGenerateMultiTexMipmapEXT+glrefGenerateMultiTexMipmapEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGenerateMultiTexMipmapEXT #-}+glGenerateMultiTexMipmapEXT :: FuntypeGenerateMultiTexMipmapEXT+glGenerateMultiTexMipmapEXT = unsafePerformIO $ readIORef glrefGenerateMultiTexMipmapEXT+{-# INLINE glGenerateMultiTexMipmapEXT #-}+type FuntypeFramebufferDrawBufferEXT =+ GLuint ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFramebufferDrawBufferEXT :: FunPtr FuntypeFramebufferDrawBufferEXT -> FuntypeFramebufferDrawBufferEXT+glrefFramebufferDrawBufferEXT :: IORef FuntypeFramebufferDrawBufferEXT+glrefFramebufferDrawBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFramebufferDrawBufferEXT #-}+glFramebufferDrawBufferEXT :: FuntypeFramebufferDrawBufferEXT+glFramebufferDrawBufferEXT = unsafePerformIO $ readIORef glrefFramebufferDrawBufferEXT+{-# INLINE glFramebufferDrawBufferEXT #-}+type FuntypeFramebufferDrawBuffersEXT =+ GLuint ->+ GLsizei ->+ Ptr (GLenum) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFramebufferDrawBuffersEXT :: FunPtr FuntypeFramebufferDrawBuffersEXT -> FuntypeFramebufferDrawBuffersEXT+glrefFramebufferDrawBuffersEXT :: IORef FuntypeFramebufferDrawBuffersEXT+glrefFramebufferDrawBuffersEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFramebufferDrawBuffersEXT #-}+glFramebufferDrawBuffersEXT :: FuntypeFramebufferDrawBuffersEXT+glFramebufferDrawBuffersEXT = unsafePerformIO $ readIORef glrefFramebufferDrawBuffersEXT+{-# INLINE glFramebufferDrawBuffersEXT #-}+type FuntypeFramebufferReadBufferEXT =+ GLuint ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFramebufferReadBufferEXT :: FunPtr FuntypeFramebufferReadBufferEXT -> FuntypeFramebufferReadBufferEXT+glrefFramebufferReadBufferEXT :: IORef FuntypeFramebufferReadBufferEXT+glrefFramebufferReadBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFramebufferReadBufferEXT #-}+glFramebufferReadBufferEXT :: FuntypeFramebufferReadBufferEXT+glFramebufferReadBufferEXT = unsafePerformIO $ readIORef glrefFramebufferReadBufferEXT+{-# INLINE glFramebufferReadBufferEXT #-}+type FuntypeGetFramebufferParameterivEXT =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetFramebufferParameterivEXT :: FunPtr FuntypeGetFramebufferParameterivEXT -> FuntypeGetFramebufferParameterivEXT+glrefGetFramebufferParameterivEXT :: IORef FuntypeGetFramebufferParameterivEXT+glrefGetFramebufferParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetFramebufferParameterivEXT #-}+glGetFramebufferParameterivEXT :: FuntypeGetFramebufferParameterivEXT+glGetFramebufferParameterivEXT = unsafePerformIO $ readIORef glrefGetFramebufferParameterivEXT+{-# INLINE glGetFramebufferParameterivEXT #-}+type FuntypeNamedCopyBufferSubDataEXT =+ GLuint ->+ GLuint ->+ GLintptr ->+ GLintptr ->+ GLsizeiptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedCopyBufferSubDataEXT :: FunPtr FuntypeNamedCopyBufferSubDataEXT -> FuntypeNamedCopyBufferSubDataEXT+glrefNamedCopyBufferSubDataEXT :: IORef FuntypeNamedCopyBufferSubDataEXT+glrefNamedCopyBufferSubDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedCopyBufferSubDataEXT #-}+glNamedCopyBufferSubDataEXT :: FuntypeNamedCopyBufferSubDataEXT+glNamedCopyBufferSubDataEXT = unsafePerformIO $ readIORef glrefNamedCopyBufferSubDataEXT+{-# INLINE glNamedCopyBufferSubDataEXT #-}+type FuntypeNamedFramebufferTextureEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedFramebufferTextureEXT :: FunPtr FuntypeNamedFramebufferTextureEXT -> FuntypeNamedFramebufferTextureEXT+glrefNamedFramebufferTextureEXT :: IORef FuntypeNamedFramebufferTextureEXT+glrefNamedFramebufferTextureEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedFramebufferTextureEXT #-}+glNamedFramebufferTextureEXT :: FuntypeNamedFramebufferTextureEXT+glNamedFramebufferTextureEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTextureEXT+{-# INLINE glNamedFramebufferTextureEXT #-}+type FuntypeNamedFramebufferTextureLayerEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedFramebufferTextureLayerEXT :: FunPtr FuntypeNamedFramebufferTextureLayerEXT -> FuntypeNamedFramebufferTextureLayerEXT+glrefNamedFramebufferTextureLayerEXT :: IORef FuntypeNamedFramebufferTextureLayerEXT+glrefNamedFramebufferTextureLayerEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedFramebufferTextureLayerEXT #-}+glNamedFramebufferTextureLayerEXT :: FuntypeNamedFramebufferTextureLayerEXT+glNamedFramebufferTextureLayerEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTextureLayerEXT+{-# INLINE glNamedFramebufferTextureLayerEXT #-}+type FuntypeNamedFramebufferTextureFaceEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ GLint ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedFramebufferTextureFaceEXT :: FunPtr FuntypeNamedFramebufferTextureFaceEXT -> FuntypeNamedFramebufferTextureFaceEXT+glrefNamedFramebufferTextureFaceEXT :: IORef FuntypeNamedFramebufferTextureFaceEXT+glrefNamedFramebufferTextureFaceEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedFramebufferTextureFaceEXT #-}+glNamedFramebufferTextureFaceEXT :: FuntypeNamedFramebufferTextureFaceEXT+glNamedFramebufferTextureFaceEXT = unsafePerformIO $ readIORef glrefNamedFramebufferTextureFaceEXT+{-# INLINE glNamedFramebufferTextureFaceEXT #-}+type FuntypeTextureRenderbufferEXT =+ GLuint ->+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureRenderbufferEXT :: FunPtr FuntypeTextureRenderbufferEXT -> FuntypeTextureRenderbufferEXT+glrefTextureRenderbufferEXT :: IORef FuntypeTextureRenderbufferEXT+glrefTextureRenderbufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureRenderbufferEXT #-}+glTextureRenderbufferEXT :: FuntypeTextureRenderbufferEXT+glTextureRenderbufferEXT = unsafePerformIO $ readIORef glrefTextureRenderbufferEXT+{-# INLINE glTextureRenderbufferEXT #-}+type FuntypeMultiTexRenderbufferEXT =+ GLenum ->+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMultiTexRenderbufferEXT :: FunPtr FuntypeMultiTexRenderbufferEXT -> FuntypeMultiTexRenderbufferEXT+glrefMultiTexRenderbufferEXT :: IORef FuntypeMultiTexRenderbufferEXT+glrefMultiTexRenderbufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMultiTexRenderbufferEXT #-}+glMultiTexRenderbufferEXT :: FuntypeMultiTexRenderbufferEXT+glMultiTexRenderbufferEXT = unsafePerformIO $ readIORef glrefMultiTexRenderbufferEXT+{-# INLINE glMultiTexRenderbufferEXT #-}+type FuntypeVertexArrayVertexOffsetEXT =+ GLuint ->+ GLuint ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayVertexOffsetEXT :: FunPtr FuntypeVertexArrayVertexOffsetEXT -> FuntypeVertexArrayVertexOffsetEXT+glrefVertexArrayVertexOffsetEXT :: IORef FuntypeVertexArrayVertexOffsetEXT+glrefVertexArrayVertexOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayVertexOffsetEXT #-}+glVertexArrayVertexOffsetEXT :: FuntypeVertexArrayVertexOffsetEXT+glVertexArrayVertexOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexOffsetEXT+{-# INLINE glVertexArrayVertexOffsetEXT #-}+type FuntypeVertexArrayColorOffsetEXT =+ GLuint ->+ GLuint ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayColorOffsetEXT :: FunPtr FuntypeVertexArrayColorOffsetEXT -> FuntypeVertexArrayColorOffsetEXT+glrefVertexArrayColorOffsetEXT :: IORef FuntypeVertexArrayColorOffsetEXT+glrefVertexArrayColorOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayColorOffsetEXT #-}+glVertexArrayColorOffsetEXT :: FuntypeVertexArrayColorOffsetEXT+glVertexArrayColorOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayColorOffsetEXT+{-# INLINE glVertexArrayColorOffsetEXT #-}+type FuntypeVertexArrayEdgeFlagOffsetEXT =+ GLuint ->+ GLuint ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayEdgeFlagOffsetEXT :: FunPtr FuntypeVertexArrayEdgeFlagOffsetEXT -> FuntypeVertexArrayEdgeFlagOffsetEXT+glrefVertexArrayEdgeFlagOffsetEXT :: IORef FuntypeVertexArrayEdgeFlagOffsetEXT+glrefVertexArrayEdgeFlagOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayEdgeFlagOffsetEXT #-}+glVertexArrayEdgeFlagOffsetEXT :: FuntypeVertexArrayEdgeFlagOffsetEXT+glVertexArrayEdgeFlagOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayEdgeFlagOffsetEXT+{-# INLINE glVertexArrayEdgeFlagOffsetEXT #-}+type FuntypeVertexArrayIndexOffsetEXT =+ GLuint ->+ GLuint ->+ GLenum ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayIndexOffsetEXT :: FunPtr FuntypeVertexArrayIndexOffsetEXT -> FuntypeVertexArrayIndexOffsetEXT+glrefVertexArrayIndexOffsetEXT :: IORef FuntypeVertexArrayIndexOffsetEXT+glrefVertexArrayIndexOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayIndexOffsetEXT #-}+glVertexArrayIndexOffsetEXT :: FuntypeVertexArrayIndexOffsetEXT+glVertexArrayIndexOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayIndexOffsetEXT+{-# INLINE glVertexArrayIndexOffsetEXT #-}+type FuntypeVertexArrayNormalOffsetEXT =+ GLuint ->+ GLuint ->+ GLenum ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayNormalOffsetEXT :: FunPtr FuntypeVertexArrayNormalOffsetEXT -> FuntypeVertexArrayNormalOffsetEXT+glrefVertexArrayNormalOffsetEXT :: IORef FuntypeVertexArrayNormalOffsetEXT+glrefVertexArrayNormalOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayNormalOffsetEXT #-}+glVertexArrayNormalOffsetEXT :: FuntypeVertexArrayNormalOffsetEXT+glVertexArrayNormalOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayNormalOffsetEXT+{-# INLINE glVertexArrayNormalOffsetEXT #-}+type FuntypeVertexArrayTexCoordOffsetEXT =+ GLuint ->+ GLuint ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayTexCoordOffsetEXT :: FunPtr FuntypeVertexArrayTexCoordOffsetEXT -> FuntypeVertexArrayTexCoordOffsetEXT+glrefVertexArrayTexCoordOffsetEXT :: IORef FuntypeVertexArrayTexCoordOffsetEXT+glrefVertexArrayTexCoordOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayTexCoordOffsetEXT #-}+glVertexArrayTexCoordOffsetEXT :: FuntypeVertexArrayTexCoordOffsetEXT+glVertexArrayTexCoordOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayTexCoordOffsetEXT+{-# INLINE glVertexArrayTexCoordOffsetEXT #-}+type FuntypeVertexArrayMultiTexCoordOffsetEXT =+ GLuint ->+ GLuint ->+ GLenum ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayMultiTexCoordOffsetEXT :: FunPtr FuntypeVertexArrayMultiTexCoordOffsetEXT -> FuntypeVertexArrayMultiTexCoordOffsetEXT+glrefVertexArrayMultiTexCoordOffsetEXT :: IORef FuntypeVertexArrayMultiTexCoordOffsetEXT+glrefVertexArrayMultiTexCoordOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayMultiTexCoordOffsetEXT #-}+glVertexArrayMultiTexCoordOffsetEXT :: FuntypeVertexArrayMultiTexCoordOffsetEXT+glVertexArrayMultiTexCoordOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayMultiTexCoordOffsetEXT+{-# INLINE glVertexArrayMultiTexCoordOffsetEXT #-}+type FuntypeVertexArrayFogCoordOffsetEXT =+ GLuint ->+ GLuint ->+ GLenum ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayFogCoordOffsetEXT :: FunPtr FuntypeVertexArrayFogCoordOffsetEXT -> FuntypeVertexArrayFogCoordOffsetEXT+glrefVertexArrayFogCoordOffsetEXT :: IORef FuntypeVertexArrayFogCoordOffsetEXT+glrefVertexArrayFogCoordOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayFogCoordOffsetEXT #-}+glVertexArrayFogCoordOffsetEXT :: FuntypeVertexArrayFogCoordOffsetEXT+glVertexArrayFogCoordOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayFogCoordOffsetEXT+{-# INLINE glVertexArrayFogCoordOffsetEXT #-}+type FuntypeVertexArraySecondaryColorOffsetEXT =+ GLuint ->+ GLuint ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArraySecondaryColorOffsetEXT :: FunPtr FuntypeVertexArraySecondaryColorOffsetEXT -> FuntypeVertexArraySecondaryColorOffsetEXT+glrefVertexArraySecondaryColorOffsetEXT :: IORef FuntypeVertexArraySecondaryColorOffsetEXT+glrefVertexArraySecondaryColorOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArraySecondaryColorOffsetEXT #-}+glVertexArraySecondaryColorOffsetEXT :: FuntypeVertexArraySecondaryColorOffsetEXT+glVertexArraySecondaryColorOffsetEXT = unsafePerformIO $ readIORef glrefVertexArraySecondaryColorOffsetEXT+{-# INLINE glVertexArraySecondaryColorOffsetEXT #-}+type FuntypeVertexArrayVertexAttribOffsetEXT =+ GLuint ->+ GLuint ->+ GLuint ->+ GLint ->+ GLenum ->+ GLboolean ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayVertexAttribOffsetEXT :: FunPtr FuntypeVertexArrayVertexAttribOffsetEXT -> FuntypeVertexArrayVertexAttribOffsetEXT+glrefVertexArrayVertexAttribOffsetEXT :: IORef FuntypeVertexArrayVertexAttribOffsetEXT+glrefVertexArrayVertexAttribOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayVertexAttribOffsetEXT #-}+glVertexArrayVertexAttribOffsetEXT :: FuntypeVertexArrayVertexAttribOffsetEXT+glVertexArrayVertexAttribOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribOffsetEXT+{-# INLINE glVertexArrayVertexAttribOffsetEXT #-}+type FuntypeVertexArrayVertexAttribIOffsetEXT =+ GLuint ->+ GLuint ->+ GLuint ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayVertexAttribIOffsetEXT :: FunPtr FuntypeVertexArrayVertexAttribIOffsetEXT -> FuntypeVertexArrayVertexAttribIOffsetEXT+glrefVertexArrayVertexAttribIOffsetEXT :: IORef FuntypeVertexArrayVertexAttribIOffsetEXT+glrefVertexArrayVertexAttribIOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayVertexAttribIOffsetEXT #-}+glVertexArrayVertexAttribIOffsetEXT :: FuntypeVertexArrayVertexAttribIOffsetEXT+glVertexArrayVertexAttribIOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribIOffsetEXT+{-# INLINE glVertexArrayVertexAttribIOffsetEXT #-}+type FuntypeEnableVertexArrayEXT =+ GLuint ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynEnableVertexArrayEXT :: FunPtr FuntypeEnableVertexArrayEXT -> FuntypeEnableVertexArrayEXT+glrefEnableVertexArrayEXT :: IORef FuntypeEnableVertexArrayEXT+glrefEnableVertexArrayEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefEnableVertexArrayEXT #-}+glEnableVertexArrayEXT :: FuntypeEnableVertexArrayEXT+glEnableVertexArrayEXT = unsafePerformIO $ readIORef glrefEnableVertexArrayEXT+{-# INLINE glEnableVertexArrayEXT #-}+type FuntypeDisableVertexArrayEXT =+ GLuint ->+ GLenum ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDisableVertexArrayEXT :: FunPtr FuntypeDisableVertexArrayEXT -> FuntypeDisableVertexArrayEXT+glrefDisableVertexArrayEXT :: IORef FuntypeDisableVertexArrayEXT+glrefDisableVertexArrayEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDisableVertexArrayEXT #-}+glDisableVertexArrayEXT :: FuntypeDisableVertexArrayEXT+glDisableVertexArrayEXT = unsafePerformIO $ readIORef glrefDisableVertexArrayEXT+{-# INLINE glDisableVertexArrayEXT #-}+type FuntypeEnableVertexArrayAttribEXT =+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynEnableVertexArrayAttribEXT :: FunPtr FuntypeEnableVertexArrayAttribEXT -> FuntypeEnableVertexArrayAttribEXT+glrefEnableVertexArrayAttribEXT :: IORef FuntypeEnableVertexArrayAttribEXT+glrefEnableVertexArrayAttribEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefEnableVertexArrayAttribEXT #-}+glEnableVertexArrayAttribEXT :: FuntypeEnableVertexArrayAttribEXT+glEnableVertexArrayAttribEXT = unsafePerformIO $ readIORef glrefEnableVertexArrayAttribEXT+{-# INLINE glEnableVertexArrayAttribEXT #-}+type FuntypeDisableVertexArrayAttribEXT =+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDisableVertexArrayAttribEXT :: FunPtr FuntypeDisableVertexArrayAttribEXT -> FuntypeDisableVertexArrayAttribEXT+glrefDisableVertexArrayAttribEXT :: IORef FuntypeDisableVertexArrayAttribEXT+glrefDisableVertexArrayAttribEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDisableVertexArrayAttribEXT #-}+glDisableVertexArrayAttribEXT :: FuntypeDisableVertexArrayAttribEXT+glDisableVertexArrayAttribEXT = unsafePerformIO $ readIORef glrefDisableVertexArrayAttribEXT+{-# INLINE glDisableVertexArrayAttribEXT #-}+type FuntypeGetVertexArrayIntegervEXT =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetVertexArrayIntegervEXT :: FunPtr FuntypeGetVertexArrayIntegervEXT -> FuntypeGetVertexArrayIntegervEXT+glrefGetVertexArrayIntegervEXT :: IORef FuntypeGetVertexArrayIntegervEXT+glrefGetVertexArrayIntegervEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetVertexArrayIntegervEXT #-}+glGetVertexArrayIntegervEXT :: FuntypeGetVertexArrayIntegervEXT+glGetVertexArrayIntegervEXT = unsafePerformIO $ readIORef glrefGetVertexArrayIntegervEXT+{-# INLINE glGetVertexArrayIntegervEXT #-}+type FuntypeGetVertexArrayPointervEXT =+ GLuint ->+ GLenum ->+ Ptr (Ptr ()) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetVertexArrayPointervEXT :: FunPtr FuntypeGetVertexArrayPointervEXT -> FuntypeGetVertexArrayPointervEXT+glrefGetVertexArrayPointervEXT :: IORef FuntypeGetVertexArrayPointervEXT+glrefGetVertexArrayPointervEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetVertexArrayPointervEXT #-}+glGetVertexArrayPointervEXT :: FuntypeGetVertexArrayPointervEXT+glGetVertexArrayPointervEXT = unsafePerformIO $ readIORef glrefGetVertexArrayPointervEXT+{-# INLINE glGetVertexArrayPointervEXT #-}+type FuntypeGetVertexArrayIntegeri_vEXT =+ GLuint ->+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetVertexArrayIntegeri_vEXT :: FunPtr FuntypeGetVertexArrayIntegeri_vEXT -> FuntypeGetVertexArrayIntegeri_vEXT+glrefGetVertexArrayIntegeri_vEXT :: IORef FuntypeGetVertexArrayIntegeri_vEXT+glrefGetVertexArrayIntegeri_vEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetVertexArrayIntegeri_vEXT #-}+glGetVertexArrayIntegeri_vEXT :: FuntypeGetVertexArrayIntegeri_vEXT+glGetVertexArrayIntegeri_vEXT = unsafePerformIO $ readIORef glrefGetVertexArrayIntegeri_vEXT+{-# INLINE glGetVertexArrayIntegeri_vEXT #-}+type FuntypeGetVertexArrayPointeri_vEXT =+ GLuint ->+ GLuint ->+ GLenum ->+ Ptr (Ptr ()) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetVertexArrayPointeri_vEXT :: FunPtr FuntypeGetVertexArrayPointeri_vEXT -> FuntypeGetVertexArrayPointeri_vEXT+glrefGetVertexArrayPointeri_vEXT :: IORef FuntypeGetVertexArrayPointeri_vEXT+glrefGetVertexArrayPointeri_vEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetVertexArrayPointeri_vEXT #-}+glGetVertexArrayPointeri_vEXT :: FuntypeGetVertexArrayPointeri_vEXT+glGetVertexArrayPointeri_vEXT = unsafePerformIO $ readIORef glrefGetVertexArrayPointeri_vEXT+{-# INLINE glGetVertexArrayPointeri_vEXT #-}+type FuntypeMapNamedBufferRangeEXT =+ GLuint ->+ GLintptr ->+ GLsizeiptr ->+ GLbitfield ->+ IO ( Ptr () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynMapNamedBufferRangeEXT :: FunPtr FuntypeMapNamedBufferRangeEXT -> FuntypeMapNamedBufferRangeEXT+glrefMapNamedBufferRangeEXT :: IORef FuntypeMapNamedBufferRangeEXT+glrefMapNamedBufferRangeEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefMapNamedBufferRangeEXT #-}+glMapNamedBufferRangeEXT :: FuntypeMapNamedBufferRangeEXT+glMapNamedBufferRangeEXT = unsafePerformIO $ readIORef glrefMapNamedBufferRangeEXT+{-# INLINE glMapNamedBufferRangeEXT #-}+type FuntypeFlushMappedNamedBufferRangeEXT =+ GLuint ->+ GLintptr ->+ GLsizeiptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynFlushMappedNamedBufferRangeEXT :: FunPtr FuntypeFlushMappedNamedBufferRangeEXT -> FuntypeFlushMappedNamedBufferRangeEXT+glrefFlushMappedNamedBufferRangeEXT :: IORef FuntypeFlushMappedNamedBufferRangeEXT+glrefFlushMappedNamedBufferRangeEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefFlushMappedNamedBufferRangeEXT #-}+glFlushMappedNamedBufferRangeEXT :: FuntypeFlushMappedNamedBufferRangeEXT+glFlushMappedNamedBufferRangeEXT = unsafePerformIO $ readIORef glrefFlushMappedNamedBufferRangeEXT+{-# INLINE glFlushMappedNamedBufferRangeEXT #-}+type FuntypeNamedBufferStorageEXT =+ GLuint ->+ GLsizeiptr ->+ Ptr () ->+ GLbitfield ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedBufferStorageEXT :: FunPtr FuntypeNamedBufferStorageEXT -> FuntypeNamedBufferStorageEXT+glrefNamedBufferStorageEXT :: IORef FuntypeNamedBufferStorageEXT+glrefNamedBufferStorageEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedBufferStorageEXT #-}+glNamedBufferStorageEXT :: FuntypeNamedBufferStorageEXT+glNamedBufferStorageEXT = unsafePerformIO $ readIORef glrefNamedBufferStorageEXT+{-# INLINE glNamedBufferStorageEXT #-}+type FuntypeClearNamedBufferDataEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClearNamedBufferDataEXT :: FunPtr FuntypeClearNamedBufferDataEXT -> FuntypeClearNamedBufferDataEXT+glrefClearNamedBufferDataEXT :: IORef FuntypeClearNamedBufferDataEXT+glrefClearNamedBufferDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClearNamedBufferDataEXT #-}+glClearNamedBufferDataEXT :: FuntypeClearNamedBufferDataEXT+glClearNamedBufferDataEXT = unsafePerformIO $ readIORef glrefClearNamedBufferDataEXT+{-# INLINE glClearNamedBufferDataEXT #-}+type FuntypeClearNamedBufferSubDataEXT =+ GLuint ->+ GLenum ->+ GLsizeiptr ->+ GLsizeiptr ->+ GLenum ->+ GLenum ->+ Ptr () ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynClearNamedBufferSubDataEXT :: FunPtr FuntypeClearNamedBufferSubDataEXT -> FuntypeClearNamedBufferSubDataEXT+glrefClearNamedBufferSubDataEXT :: IORef FuntypeClearNamedBufferSubDataEXT+glrefClearNamedBufferSubDataEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefClearNamedBufferSubDataEXT #-}+glClearNamedBufferSubDataEXT :: FuntypeClearNamedBufferSubDataEXT+glClearNamedBufferSubDataEXT = unsafePerformIO $ readIORef glrefClearNamedBufferSubDataEXT+{-# INLINE glClearNamedBufferSubDataEXT #-}+type FuntypeNamedFramebufferParameteriEXT =+ GLuint ->+ GLenum ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynNamedFramebufferParameteriEXT :: FunPtr FuntypeNamedFramebufferParameteriEXT -> FuntypeNamedFramebufferParameteriEXT+glrefNamedFramebufferParameteriEXT :: IORef FuntypeNamedFramebufferParameteriEXT+glrefNamedFramebufferParameteriEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefNamedFramebufferParameteriEXT #-}+glNamedFramebufferParameteriEXT :: FuntypeNamedFramebufferParameteriEXT+glNamedFramebufferParameteriEXT = unsafePerformIO $ readIORef glrefNamedFramebufferParameteriEXT+{-# INLINE glNamedFramebufferParameteriEXT #-}+type FuntypeGetNamedFramebufferParameterivEXT =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetNamedFramebufferParameterivEXT :: FunPtr FuntypeGetNamedFramebufferParameterivEXT -> FuntypeGetNamedFramebufferParameterivEXT+glrefGetNamedFramebufferParameterivEXT :: IORef FuntypeGetNamedFramebufferParameterivEXT+glrefGetNamedFramebufferParameterivEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetNamedFramebufferParameterivEXT #-}+glGetNamedFramebufferParameterivEXT :: FuntypeGetNamedFramebufferParameterivEXT+glGetNamedFramebufferParameterivEXT = unsafePerformIO $ readIORef glrefGetNamedFramebufferParameterivEXT+{-# INLINE glGetNamedFramebufferParameterivEXT #-}+type FuntypeProgramUniform1dEXT =+ GLuint ->+ GLint ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1dEXT :: FunPtr FuntypeProgramUniform1dEXT -> FuntypeProgramUniform1dEXT+glrefProgramUniform1dEXT :: IORef FuntypeProgramUniform1dEXT+glrefProgramUniform1dEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1dEXT #-}+glProgramUniform1dEXT :: FuntypeProgramUniform1dEXT+glProgramUniform1dEXT = unsafePerformIO $ readIORef glrefProgramUniform1dEXT+{-# INLINE glProgramUniform1dEXT #-}+type FuntypeProgramUniform2dEXT =+ GLuint ->+ GLint ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2dEXT :: FunPtr FuntypeProgramUniform2dEXT -> FuntypeProgramUniform2dEXT+glrefProgramUniform2dEXT :: IORef FuntypeProgramUniform2dEXT+glrefProgramUniform2dEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2dEXT #-}+glProgramUniform2dEXT :: FuntypeProgramUniform2dEXT+glProgramUniform2dEXT = unsafePerformIO $ readIORef glrefProgramUniform2dEXT+{-# INLINE glProgramUniform2dEXT #-}+type FuntypeProgramUniform3dEXT =+ GLuint ->+ GLint ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3dEXT :: FunPtr FuntypeProgramUniform3dEXT -> FuntypeProgramUniform3dEXT+glrefProgramUniform3dEXT :: IORef FuntypeProgramUniform3dEXT+glrefProgramUniform3dEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3dEXT #-}+glProgramUniform3dEXT :: FuntypeProgramUniform3dEXT+glProgramUniform3dEXT = unsafePerformIO $ readIORef glrefProgramUniform3dEXT+{-# INLINE glProgramUniform3dEXT #-}+type FuntypeProgramUniform4dEXT =+ GLuint ->+ GLint ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4dEXT :: FunPtr FuntypeProgramUniform4dEXT -> FuntypeProgramUniform4dEXT+glrefProgramUniform4dEXT :: IORef FuntypeProgramUniform4dEXT+glrefProgramUniform4dEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4dEXT #-}+glProgramUniform4dEXT :: FuntypeProgramUniform4dEXT+glProgramUniform4dEXT = unsafePerformIO $ readIORef glrefProgramUniform4dEXT+{-# INLINE glProgramUniform4dEXT #-}+type FuntypeProgramUniform1dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1dvEXT :: FunPtr FuntypeProgramUniform1dvEXT -> FuntypeProgramUniform1dvEXT+glrefProgramUniform1dvEXT :: IORef FuntypeProgramUniform1dvEXT+glrefProgramUniform1dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1dvEXT #-}+glProgramUniform1dvEXT :: FuntypeProgramUniform1dvEXT+glProgramUniform1dvEXT = unsafePerformIO $ readIORef glrefProgramUniform1dvEXT+{-# INLINE glProgramUniform1dvEXT #-}+type FuntypeProgramUniform2dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2dvEXT :: FunPtr FuntypeProgramUniform2dvEXT -> FuntypeProgramUniform2dvEXT+glrefProgramUniform2dvEXT :: IORef FuntypeProgramUniform2dvEXT+glrefProgramUniform2dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2dvEXT #-}+glProgramUniform2dvEXT :: FuntypeProgramUniform2dvEXT+glProgramUniform2dvEXT = unsafePerformIO $ readIORef glrefProgramUniform2dvEXT+{-# INLINE glProgramUniform2dvEXT #-}+type FuntypeProgramUniform3dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3dvEXT :: FunPtr FuntypeProgramUniform3dvEXT -> FuntypeProgramUniform3dvEXT+glrefProgramUniform3dvEXT :: IORef FuntypeProgramUniform3dvEXT+glrefProgramUniform3dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3dvEXT #-}+glProgramUniform3dvEXT :: FuntypeProgramUniform3dvEXT+glProgramUniform3dvEXT = unsafePerformIO $ readIORef glrefProgramUniform3dvEXT+{-# INLINE glProgramUniform3dvEXT #-}+type FuntypeProgramUniform4dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4dvEXT :: FunPtr FuntypeProgramUniform4dvEXT -> FuntypeProgramUniform4dvEXT+glrefProgramUniform4dvEXT :: IORef FuntypeProgramUniform4dvEXT+glrefProgramUniform4dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4dvEXT #-}+glProgramUniform4dvEXT :: FuntypeProgramUniform4dvEXT+glProgramUniform4dvEXT = unsafePerformIO $ readIORef glrefProgramUniform4dvEXT+{-# INLINE glProgramUniform4dvEXT #-}+type FuntypeProgramUniformMatrix2dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2dvEXT :: FunPtr FuntypeProgramUniformMatrix2dvEXT -> FuntypeProgramUniformMatrix2dvEXT+glrefProgramUniformMatrix2dvEXT :: IORef FuntypeProgramUniformMatrix2dvEXT+glrefProgramUniformMatrix2dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2dvEXT #-}+glProgramUniformMatrix2dvEXT :: FuntypeProgramUniformMatrix2dvEXT+glProgramUniformMatrix2dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2dvEXT+{-# INLINE glProgramUniformMatrix2dvEXT #-}+type FuntypeProgramUniformMatrix3dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3dvEXT :: FunPtr FuntypeProgramUniformMatrix3dvEXT -> FuntypeProgramUniformMatrix3dvEXT+glrefProgramUniformMatrix3dvEXT :: IORef FuntypeProgramUniformMatrix3dvEXT+glrefProgramUniformMatrix3dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3dvEXT #-}+glProgramUniformMatrix3dvEXT :: FuntypeProgramUniformMatrix3dvEXT+glProgramUniformMatrix3dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3dvEXT+{-# INLINE glProgramUniformMatrix3dvEXT #-}+type FuntypeProgramUniformMatrix4dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4dvEXT :: FunPtr FuntypeProgramUniformMatrix4dvEXT -> FuntypeProgramUniformMatrix4dvEXT+glrefProgramUniformMatrix4dvEXT :: IORef FuntypeProgramUniformMatrix4dvEXT+glrefProgramUniformMatrix4dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4dvEXT #-}+glProgramUniformMatrix4dvEXT :: FuntypeProgramUniformMatrix4dvEXT+glProgramUniformMatrix4dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4dvEXT+{-# INLINE glProgramUniformMatrix4dvEXT #-}+type FuntypeProgramUniformMatrix2x3dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2x3dvEXT :: FunPtr FuntypeProgramUniformMatrix2x3dvEXT -> FuntypeProgramUniformMatrix2x3dvEXT+glrefProgramUniformMatrix2x3dvEXT :: IORef FuntypeProgramUniformMatrix2x3dvEXT+glrefProgramUniformMatrix2x3dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2x3dvEXT #-}+glProgramUniformMatrix2x3dvEXT :: FuntypeProgramUniformMatrix2x3dvEXT+glProgramUniformMatrix2x3dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x3dvEXT+{-# INLINE glProgramUniformMatrix2x3dvEXT #-}+type FuntypeProgramUniformMatrix2x4dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2x4dvEXT :: FunPtr FuntypeProgramUniformMatrix2x4dvEXT -> FuntypeProgramUniformMatrix2x4dvEXT+glrefProgramUniformMatrix2x4dvEXT :: IORef FuntypeProgramUniformMatrix2x4dvEXT+glrefProgramUniformMatrix2x4dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2x4dvEXT #-}+glProgramUniformMatrix2x4dvEXT :: FuntypeProgramUniformMatrix2x4dvEXT+glProgramUniformMatrix2x4dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x4dvEXT+{-# INLINE glProgramUniformMatrix2x4dvEXT #-}+type FuntypeProgramUniformMatrix3x2dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3x2dvEXT :: FunPtr FuntypeProgramUniformMatrix3x2dvEXT -> FuntypeProgramUniformMatrix3x2dvEXT+glrefProgramUniformMatrix3x2dvEXT :: IORef FuntypeProgramUniformMatrix3x2dvEXT+glrefProgramUniformMatrix3x2dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3x2dvEXT #-}+glProgramUniformMatrix3x2dvEXT :: FuntypeProgramUniformMatrix3x2dvEXT+glProgramUniformMatrix3x2dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x2dvEXT+{-# INLINE glProgramUniformMatrix3x2dvEXT #-}+type FuntypeProgramUniformMatrix3x4dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3x4dvEXT :: FunPtr FuntypeProgramUniformMatrix3x4dvEXT -> FuntypeProgramUniformMatrix3x4dvEXT+glrefProgramUniformMatrix3x4dvEXT :: IORef FuntypeProgramUniformMatrix3x4dvEXT+glrefProgramUniformMatrix3x4dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3x4dvEXT #-}+glProgramUniformMatrix3x4dvEXT :: FuntypeProgramUniformMatrix3x4dvEXT+glProgramUniformMatrix3x4dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x4dvEXT+{-# INLINE glProgramUniformMatrix3x4dvEXT #-}+type FuntypeProgramUniformMatrix4x2dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4x2dvEXT :: FunPtr FuntypeProgramUniformMatrix4x2dvEXT -> FuntypeProgramUniformMatrix4x2dvEXT+glrefProgramUniformMatrix4x2dvEXT :: IORef FuntypeProgramUniformMatrix4x2dvEXT+glrefProgramUniformMatrix4x2dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4x2dvEXT #-}+glProgramUniformMatrix4x2dvEXT :: FuntypeProgramUniformMatrix4x2dvEXT+glProgramUniformMatrix4x2dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x2dvEXT+{-# INLINE glProgramUniformMatrix4x2dvEXT #-}+type FuntypeProgramUniformMatrix4x3dvEXT =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4x3dvEXT :: FunPtr FuntypeProgramUniformMatrix4x3dvEXT -> FuntypeProgramUniformMatrix4x3dvEXT+glrefProgramUniformMatrix4x3dvEXT :: IORef FuntypeProgramUniformMatrix4x3dvEXT+glrefProgramUniformMatrix4x3dvEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4x3dvEXT #-}+glProgramUniformMatrix4x3dvEXT :: FuntypeProgramUniformMatrix4x3dvEXT+glProgramUniformMatrix4x3dvEXT = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x3dvEXT+{-# INLINE glProgramUniformMatrix4x3dvEXT #-}+type FuntypeTextureBufferRangeEXT =+ GLuint ->+ GLenum ->+ GLenum ->+ GLuint ->+ GLintptr ->+ GLsizeiptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureBufferRangeEXT :: FunPtr FuntypeTextureBufferRangeEXT -> FuntypeTextureBufferRangeEXT+glrefTextureBufferRangeEXT :: IORef FuntypeTextureBufferRangeEXT+glrefTextureBufferRangeEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureBufferRangeEXT #-}+glTextureBufferRangeEXT :: FuntypeTextureBufferRangeEXT+glTextureBufferRangeEXT = unsafePerformIO $ readIORef glrefTextureBufferRangeEXT+{-# INLINE glTextureBufferRangeEXT #-}+type FuntypeTextureStorage1DEXT =+ GLuint ->+ GLenum ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureStorage1DEXT :: FunPtr FuntypeTextureStorage1DEXT -> FuntypeTextureStorage1DEXT+glrefTextureStorage1DEXT :: IORef FuntypeTextureStorage1DEXT+glrefTextureStorage1DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureStorage1DEXT #-}+glTextureStorage1DEXT :: FuntypeTextureStorage1DEXT+glTextureStorage1DEXT = unsafePerformIO $ readIORef glrefTextureStorage1DEXT+{-# INLINE glTextureStorage1DEXT #-}+type FuntypeTextureStorage2DEXT =+ GLuint ->+ GLenum ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureStorage2DEXT :: FunPtr FuntypeTextureStorage2DEXT -> FuntypeTextureStorage2DEXT+glrefTextureStorage2DEXT :: IORef FuntypeTextureStorage2DEXT+glrefTextureStorage2DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureStorage2DEXT #-}+glTextureStorage2DEXT :: FuntypeTextureStorage2DEXT+glTextureStorage2DEXT = unsafePerformIO $ readIORef glrefTextureStorage2DEXT+{-# INLINE glTextureStorage2DEXT #-}+type FuntypeTextureStorage3DEXT =+ GLuint ->+ GLenum ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureStorage3DEXT :: FunPtr FuntypeTextureStorage3DEXT -> FuntypeTextureStorage3DEXT+glrefTextureStorage3DEXT :: IORef FuntypeTextureStorage3DEXT+glrefTextureStorage3DEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureStorage3DEXT #-}+glTextureStorage3DEXT :: FuntypeTextureStorage3DEXT+glTextureStorage3DEXT = unsafePerformIO $ readIORef glrefTextureStorage3DEXT+{-# INLINE glTextureStorage3DEXT #-}+type FuntypeTextureStorage2DMultisampleEXT =+ GLuint ->+ GLenum ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLboolean ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureStorage2DMultisampleEXT :: FunPtr FuntypeTextureStorage2DMultisampleEXT -> FuntypeTextureStorage2DMultisampleEXT+glrefTextureStorage2DMultisampleEXT :: IORef FuntypeTextureStorage2DMultisampleEXT+glrefTextureStorage2DMultisampleEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureStorage2DMultisampleEXT #-}+glTextureStorage2DMultisampleEXT :: FuntypeTextureStorage2DMultisampleEXT+glTextureStorage2DMultisampleEXT = unsafePerformIO $ readIORef glrefTextureStorage2DMultisampleEXT+{-# INLINE glTextureStorage2DMultisampleEXT #-}+type FuntypeTextureStorage3DMultisampleEXT =+ GLuint ->+ GLenum ->+ GLsizei ->+ GLenum ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLboolean ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTextureStorage3DMultisampleEXT :: FunPtr FuntypeTextureStorage3DMultisampleEXT -> FuntypeTextureStorage3DMultisampleEXT+glrefTextureStorage3DMultisampleEXT :: IORef FuntypeTextureStorage3DMultisampleEXT+glrefTextureStorage3DMultisampleEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTextureStorage3DMultisampleEXT #-}+glTextureStorage3DMultisampleEXT :: FuntypeTextureStorage3DMultisampleEXT+glTextureStorage3DMultisampleEXT = unsafePerformIO $ readIORef glrefTextureStorage3DMultisampleEXT+{-# INLINE glTextureStorage3DMultisampleEXT #-}+type FuntypeVertexArrayBindVertexBufferEXT =+ GLuint ->+ GLuint ->+ GLuint ->+ GLintptr ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayBindVertexBufferEXT :: FunPtr FuntypeVertexArrayBindVertexBufferEXT -> FuntypeVertexArrayBindVertexBufferEXT+glrefVertexArrayBindVertexBufferEXT :: IORef FuntypeVertexArrayBindVertexBufferEXT+glrefVertexArrayBindVertexBufferEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayBindVertexBufferEXT #-}+glVertexArrayBindVertexBufferEXT :: FuntypeVertexArrayBindVertexBufferEXT+glVertexArrayBindVertexBufferEXT = unsafePerformIO $ readIORef glrefVertexArrayBindVertexBufferEXT+{-# INLINE glVertexArrayBindVertexBufferEXT #-}+type FuntypeVertexArrayVertexAttribFormatEXT =+ GLuint ->+ GLuint ->+ GLint ->+ GLenum ->+ GLboolean ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayVertexAttribFormatEXT :: FunPtr FuntypeVertexArrayVertexAttribFormatEXT -> FuntypeVertexArrayVertexAttribFormatEXT+glrefVertexArrayVertexAttribFormatEXT :: IORef FuntypeVertexArrayVertexAttribFormatEXT+glrefVertexArrayVertexAttribFormatEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayVertexAttribFormatEXT #-}+glVertexArrayVertexAttribFormatEXT :: FuntypeVertexArrayVertexAttribFormatEXT+glVertexArrayVertexAttribFormatEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribFormatEXT+{-# INLINE glVertexArrayVertexAttribFormatEXT #-}+type FuntypeVertexArrayVertexAttribIFormatEXT =+ GLuint ->+ GLuint ->+ GLint ->+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayVertexAttribIFormatEXT :: FunPtr FuntypeVertexArrayVertexAttribIFormatEXT -> FuntypeVertexArrayVertexAttribIFormatEXT+glrefVertexArrayVertexAttribIFormatEXT :: IORef FuntypeVertexArrayVertexAttribIFormatEXT+glrefVertexArrayVertexAttribIFormatEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayVertexAttribIFormatEXT #-}+glVertexArrayVertexAttribIFormatEXT :: FuntypeVertexArrayVertexAttribIFormatEXT+glVertexArrayVertexAttribIFormatEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribIFormatEXT+{-# INLINE glVertexArrayVertexAttribIFormatEXT #-}+type FuntypeVertexArrayVertexAttribLFormatEXT =+ GLuint ->+ GLuint ->+ GLint ->+ GLenum ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayVertexAttribLFormatEXT :: FunPtr FuntypeVertexArrayVertexAttribLFormatEXT -> FuntypeVertexArrayVertexAttribLFormatEXT+glrefVertexArrayVertexAttribLFormatEXT :: IORef FuntypeVertexArrayVertexAttribLFormatEXT+glrefVertexArrayVertexAttribLFormatEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayVertexAttribLFormatEXT #-}+glVertexArrayVertexAttribLFormatEXT :: FuntypeVertexArrayVertexAttribLFormatEXT+glVertexArrayVertexAttribLFormatEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribLFormatEXT+{-# INLINE glVertexArrayVertexAttribLFormatEXT #-}+type FuntypeVertexArrayVertexAttribBindingEXT =+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayVertexAttribBindingEXT :: FunPtr FuntypeVertexArrayVertexAttribBindingEXT -> FuntypeVertexArrayVertexAttribBindingEXT+glrefVertexArrayVertexAttribBindingEXT :: IORef FuntypeVertexArrayVertexAttribBindingEXT+glrefVertexArrayVertexAttribBindingEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayVertexAttribBindingEXT #-}+glVertexArrayVertexAttribBindingEXT :: FuntypeVertexArrayVertexAttribBindingEXT+glVertexArrayVertexAttribBindingEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribBindingEXT+{-# INLINE glVertexArrayVertexAttribBindingEXT #-}+type FuntypeVertexArrayVertexBindingDivisorEXT =+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayVertexBindingDivisorEXT :: FunPtr FuntypeVertexArrayVertexBindingDivisorEXT -> FuntypeVertexArrayVertexBindingDivisorEXT+glrefVertexArrayVertexBindingDivisorEXT :: IORef FuntypeVertexArrayVertexBindingDivisorEXT+glrefVertexArrayVertexBindingDivisorEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayVertexBindingDivisorEXT #-}+glVertexArrayVertexBindingDivisorEXT :: FuntypeVertexArrayVertexBindingDivisorEXT+glVertexArrayVertexBindingDivisorEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexBindingDivisorEXT+{-# INLINE glVertexArrayVertexBindingDivisorEXT #-}+type FuntypeVertexArrayVertexAttribLOffsetEXT =+ GLuint ->+ GLuint ->+ GLuint ->+ GLint ->+ GLenum ->+ GLsizei ->+ GLintptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayVertexAttribLOffsetEXT :: FunPtr FuntypeVertexArrayVertexAttribLOffsetEXT -> FuntypeVertexArrayVertexAttribLOffsetEXT+glrefVertexArrayVertexAttribLOffsetEXT :: IORef FuntypeVertexArrayVertexAttribLOffsetEXT+glrefVertexArrayVertexAttribLOffsetEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayVertexAttribLOffsetEXT #-}+glVertexArrayVertexAttribLOffsetEXT :: FuntypeVertexArrayVertexAttribLOffsetEXT+glVertexArrayVertexAttribLOffsetEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribLOffsetEXT+{-# INLINE glVertexArrayVertexAttribLOffsetEXT #-}+type FuntypeTexturePageCommitmentEXT =+ GLuint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ GLboolean ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynTexturePageCommitmentEXT :: FunPtr FuntypeTexturePageCommitmentEXT -> FuntypeTexturePageCommitmentEXT+glrefTexturePageCommitmentEXT :: IORef FuntypeTexturePageCommitmentEXT+glrefTexturePageCommitmentEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefTexturePageCommitmentEXT #-}+glTexturePageCommitmentEXT :: FuntypeTexturePageCommitmentEXT+glTexturePageCommitmentEXT = unsafePerformIO $ readIORef glrefTexturePageCommitmentEXT+{-# INLINE glTexturePageCommitmentEXT #-}+type FuntypeVertexArrayVertexAttribDivisorEXT =+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynVertexArrayVertexAttribDivisorEXT :: FunPtr FuntypeVertexArrayVertexAttribDivisorEXT -> FuntypeVertexArrayVertexAttribDivisorEXT+glrefVertexArrayVertexAttribDivisorEXT :: IORef FuntypeVertexArrayVertexAttribDivisorEXT+glrefVertexArrayVertexAttribDivisorEXT = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefVertexArrayVertexAttribDivisorEXT #-}+glVertexArrayVertexAttribDivisorEXT :: FuntypeVertexArrayVertexAttribDivisorEXT+glVertexArrayVertexAttribDivisorEXT = unsafePerformIO $ readIORef glrefVertexArrayVertexAttribDivisorEXT+{-# INLINE glVertexArrayVertexAttribDivisorEXT #-}++-- GL_ARB_buffer_storage++type FuntypeBufferStorage =+ GLenum ->+ GLsizeiptr ->+ Ptr () ->+ GLbitfield ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBufferStorage :: FunPtr FuntypeBufferStorage -> FuntypeBufferStorage+glrefBufferStorage :: IORef FuntypeBufferStorage+glrefBufferStorage = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBufferStorage #-}+glBufferStorage :: FuntypeBufferStorage+glBufferStorage = unsafePerformIO $ readIORef glrefBufferStorage+{-# INLINE glBufferStorage #-}++-- GL_ARB_separate_shader_objects++type FuntypeUseProgramStages =+ GLuint ->+ GLbitfield ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynUseProgramStages :: FunPtr FuntypeUseProgramStages -> FuntypeUseProgramStages+glrefUseProgramStages :: IORef FuntypeUseProgramStages+glrefUseProgramStages = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefUseProgramStages #-}+glUseProgramStages :: FuntypeUseProgramStages+glUseProgramStages = unsafePerformIO $ readIORef glrefUseProgramStages+{-# INLINE glUseProgramStages #-}+type FuntypeActiveShaderProgram =+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynActiveShaderProgram :: FunPtr FuntypeActiveShaderProgram -> FuntypeActiveShaderProgram+glrefActiveShaderProgram :: IORef FuntypeActiveShaderProgram+glrefActiveShaderProgram = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefActiveShaderProgram #-}+glActiveShaderProgram :: FuntypeActiveShaderProgram+glActiveShaderProgram = unsafePerformIO $ readIORef glrefActiveShaderProgram+{-# INLINE glActiveShaderProgram #-}+type FuntypeCreateShaderProgramv =+ GLenum ->+ GLsizei ->+ Ptr (Ptr (GLchar)) ->+ IO ( GLuint )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynCreateShaderProgramv :: FunPtr FuntypeCreateShaderProgramv -> FuntypeCreateShaderProgramv+glrefCreateShaderProgramv :: IORef FuntypeCreateShaderProgramv+glrefCreateShaderProgramv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefCreateShaderProgramv #-}+glCreateShaderProgramv :: FuntypeCreateShaderProgramv+glCreateShaderProgramv = unsafePerformIO $ readIORef glrefCreateShaderProgramv+{-# INLINE glCreateShaderProgramv #-}+type FuntypeBindProgramPipeline =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynBindProgramPipeline :: FunPtr FuntypeBindProgramPipeline -> FuntypeBindProgramPipeline+glrefBindProgramPipeline :: IORef FuntypeBindProgramPipeline+glrefBindProgramPipeline = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefBindProgramPipeline #-}+glBindProgramPipeline :: FuntypeBindProgramPipeline+glBindProgramPipeline = unsafePerformIO $ readIORef glrefBindProgramPipeline+{-# INLINE glBindProgramPipeline #-}+type FuntypeDeleteProgramPipelines =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynDeleteProgramPipelines :: FunPtr FuntypeDeleteProgramPipelines -> FuntypeDeleteProgramPipelines+glrefDeleteProgramPipelines :: IORef FuntypeDeleteProgramPipelines+glrefDeleteProgramPipelines = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefDeleteProgramPipelines #-}+glDeleteProgramPipelines :: FuntypeDeleteProgramPipelines+glDeleteProgramPipelines = unsafePerformIO $ readIORef glrefDeleteProgramPipelines+{-# INLINE glDeleteProgramPipelines #-}+type FuntypeGenProgramPipelines =+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGenProgramPipelines :: FunPtr FuntypeGenProgramPipelines -> FuntypeGenProgramPipelines+glrefGenProgramPipelines :: IORef FuntypeGenProgramPipelines+glrefGenProgramPipelines = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGenProgramPipelines #-}+glGenProgramPipelines :: FuntypeGenProgramPipelines+glGenProgramPipelines = unsafePerformIO $ readIORef glrefGenProgramPipelines+{-# INLINE glGenProgramPipelines #-}+type FuntypeIsProgramPipeline =+ GLuint ->+ IO ( GLboolean )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynIsProgramPipeline :: FunPtr FuntypeIsProgramPipeline -> FuntypeIsProgramPipeline+glrefIsProgramPipeline :: IORef FuntypeIsProgramPipeline+glrefIsProgramPipeline = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefIsProgramPipeline #-}+glIsProgramPipeline :: FuntypeIsProgramPipeline+glIsProgramPipeline = unsafePerformIO $ readIORef glrefIsProgramPipeline+{-# INLINE glIsProgramPipeline #-}+type FuntypeGetProgramPipelineiv =+ GLuint ->+ GLenum ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetProgramPipelineiv :: FunPtr FuntypeGetProgramPipelineiv -> FuntypeGetProgramPipelineiv+glrefGetProgramPipelineiv :: IORef FuntypeGetProgramPipelineiv+glrefGetProgramPipelineiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetProgramPipelineiv #-}+glGetProgramPipelineiv :: FuntypeGetProgramPipelineiv+glGetProgramPipelineiv = unsafePerformIO $ readIORef glrefGetProgramPipelineiv+{-# INLINE glGetProgramPipelineiv #-}+type FuntypeProgramUniform1i =+ GLuint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1i :: FunPtr FuntypeProgramUniform1i -> FuntypeProgramUniform1i+glrefProgramUniform1i :: IORef FuntypeProgramUniform1i+glrefProgramUniform1i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1i #-}+glProgramUniform1i :: FuntypeProgramUniform1i+glProgramUniform1i = unsafePerformIO $ readIORef glrefProgramUniform1i+{-# INLINE glProgramUniform1i #-}+type FuntypeProgramUniform1iv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1iv :: FunPtr FuntypeProgramUniform1iv -> FuntypeProgramUniform1iv+glrefProgramUniform1iv :: IORef FuntypeProgramUniform1iv+glrefProgramUniform1iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1iv #-}+glProgramUniform1iv :: FuntypeProgramUniform1iv+glProgramUniform1iv = unsafePerformIO $ readIORef glrefProgramUniform1iv+{-# INLINE glProgramUniform1iv #-}+type FuntypeProgramUniform1f =+ GLuint ->+ GLint ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1f :: FunPtr FuntypeProgramUniform1f -> FuntypeProgramUniform1f+glrefProgramUniform1f :: IORef FuntypeProgramUniform1f+glrefProgramUniform1f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1f #-}+glProgramUniform1f :: FuntypeProgramUniform1f+glProgramUniform1f = unsafePerformIO $ readIORef glrefProgramUniform1f+{-# INLINE glProgramUniform1f #-}+type FuntypeProgramUniform1fv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1fv :: FunPtr FuntypeProgramUniform1fv -> FuntypeProgramUniform1fv+glrefProgramUniform1fv :: IORef FuntypeProgramUniform1fv+glrefProgramUniform1fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1fv #-}+glProgramUniform1fv :: FuntypeProgramUniform1fv+glProgramUniform1fv = unsafePerformIO $ readIORef glrefProgramUniform1fv+{-# INLINE glProgramUniform1fv #-}+type FuntypeProgramUniform1d =+ GLuint ->+ GLint ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1d :: FunPtr FuntypeProgramUniform1d -> FuntypeProgramUniform1d+glrefProgramUniform1d :: IORef FuntypeProgramUniform1d+glrefProgramUniform1d = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1d #-}+glProgramUniform1d :: FuntypeProgramUniform1d+glProgramUniform1d = unsafePerformIO $ readIORef glrefProgramUniform1d+{-# INLINE glProgramUniform1d #-}+type FuntypeProgramUniform1dv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1dv :: FunPtr FuntypeProgramUniform1dv -> FuntypeProgramUniform1dv+glrefProgramUniform1dv :: IORef FuntypeProgramUniform1dv+glrefProgramUniform1dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1dv #-}+glProgramUniform1dv :: FuntypeProgramUniform1dv+glProgramUniform1dv = unsafePerformIO $ readIORef glrefProgramUniform1dv+{-# INLINE glProgramUniform1dv #-}+type FuntypeProgramUniform1ui =+ GLuint ->+ GLint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1ui :: FunPtr FuntypeProgramUniform1ui -> FuntypeProgramUniform1ui+glrefProgramUniform1ui :: IORef FuntypeProgramUniform1ui+glrefProgramUniform1ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1ui #-}+glProgramUniform1ui :: FuntypeProgramUniform1ui+glProgramUniform1ui = unsafePerformIO $ readIORef glrefProgramUniform1ui+{-# INLINE glProgramUniform1ui #-}+type FuntypeProgramUniform1uiv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform1uiv :: FunPtr FuntypeProgramUniform1uiv -> FuntypeProgramUniform1uiv+glrefProgramUniform1uiv :: IORef FuntypeProgramUniform1uiv+glrefProgramUniform1uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform1uiv #-}+glProgramUniform1uiv :: FuntypeProgramUniform1uiv+glProgramUniform1uiv = unsafePerformIO $ readIORef glrefProgramUniform1uiv+{-# INLINE glProgramUniform1uiv #-}+type FuntypeProgramUniform2i =+ GLuint ->+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2i :: FunPtr FuntypeProgramUniform2i -> FuntypeProgramUniform2i+glrefProgramUniform2i :: IORef FuntypeProgramUniform2i+glrefProgramUniform2i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2i #-}+glProgramUniform2i :: FuntypeProgramUniform2i+glProgramUniform2i = unsafePerformIO $ readIORef glrefProgramUniform2i+{-# INLINE glProgramUniform2i #-}+type FuntypeProgramUniform2iv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2iv :: FunPtr FuntypeProgramUniform2iv -> FuntypeProgramUniform2iv+glrefProgramUniform2iv :: IORef FuntypeProgramUniform2iv+glrefProgramUniform2iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2iv #-}+glProgramUniform2iv :: FuntypeProgramUniform2iv+glProgramUniform2iv = unsafePerformIO $ readIORef glrefProgramUniform2iv+{-# INLINE glProgramUniform2iv #-}+type FuntypeProgramUniform2f =+ GLuint ->+ GLint ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2f :: FunPtr FuntypeProgramUniform2f -> FuntypeProgramUniform2f+glrefProgramUniform2f :: IORef FuntypeProgramUniform2f+glrefProgramUniform2f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2f #-}+glProgramUniform2f :: FuntypeProgramUniform2f+glProgramUniform2f = unsafePerformIO $ readIORef glrefProgramUniform2f+{-# INLINE glProgramUniform2f #-}+type FuntypeProgramUniform2fv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2fv :: FunPtr FuntypeProgramUniform2fv -> FuntypeProgramUniform2fv+glrefProgramUniform2fv :: IORef FuntypeProgramUniform2fv+glrefProgramUniform2fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2fv #-}+glProgramUniform2fv :: FuntypeProgramUniform2fv+glProgramUniform2fv = unsafePerformIO $ readIORef glrefProgramUniform2fv+{-# INLINE glProgramUniform2fv #-}+type FuntypeProgramUniform2d =+ GLuint ->+ GLint ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2d :: FunPtr FuntypeProgramUniform2d -> FuntypeProgramUniform2d+glrefProgramUniform2d :: IORef FuntypeProgramUniform2d+glrefProgramUniform2d = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2d #-}+glProgramUniform2d :: FuntypeProgramUniform2d+glProgramUniform2d = unsafePerformIO $ readIORef glrefProgramUniform2d+{-# INLINE glProgramUniform2d #-}+type FuntypeProgramUniform2dv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2dv :: FunPtr FuntypeProgramUniform2dv -> FuntypeProgramUniform2dv+glrefProgramUniform2dv :: IORef FuntypeProgramUniform2dv+glrefProgramUniform2dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2dv #-}+glProgramUniform2dv :: FuntypeProgramUniform2dv+glProgramUniform2dv = unsafePerformIO $ readIORef glrefProgramUniform2dv+{-# INLINE glProgramUniform2dv #-}+type FuntypeProgramUniform2ui =+ GLuint ->+ GLint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2ui :: FunPtr FuntypeProgramUniform2ui -> FuntypeProgramUniform2ui+glrefProgramUniform2ui :: IORef FuntypeProgramUniform2ui+glrefProgramUniform2ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2ui #-}+glProgramUniform2ui :: FuntypeProgramUniform2ui+glProgramUniform2ui = unsafePerformIO $ readIORef glrefProgramUniform2ui+{-# INLINE glProgramUniform2ui #-}+type FuntypeProgramUniform2uiv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform2uiv :: FunPtr FuntypeProgramUniform2uiv -> FuntypeProgramUniform2uiv+glrefProgramUniform2uiv :: IORef FuntypeProgramUniform2uiv+glrefProgramUniform2uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform2uiv #-}+glProgramUniform2uiv :: FuntypeProgramUniform2uiv+glProgramUniform2uiv = unsafePerformIO $ readIORef glrefProgramUniform2uiv+{-# INLINE glProgramUniform2uiv #-}+type FuntypeProgramUniform3i =+ GLuint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3i :: FunPtr FuntypeProgramUniform3i -> FuntypeProgramUniform3i+glrefProgramUniform3i :: IORef FuntypeProgramUniform3i+glrefProgramUniform3i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3i #-}+glProgramUniform3i :: FuntypeProgramUniform3i+glProgramUniform3i = unsafePerformIO $ readIORef glrefProgramUniform3i+{-# INLINE glProgramUniform3i #-}+type FuntypeProgramUniform3iv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3iv :: FunPtr FuntypeProgramUniform3iv -> FuntypeProgramUniform3iv+glrefProgramUniform3iv :: IORef FuntypeProgramUniform3iv+glrefProgramUniform3iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3iv #-}+glProgramUniform3iv :: FuntypeProgramUniform3iv+glProgramUniform3iv = unsafePerformIO $ readIORef glrefProgramUniform3iv+{-# INLINE glProgramUniform3iv #-}+type FuntypeProgramUniform3f =+ GLuint ->+ GLint ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3f :: FunPtr FuntypeProgramUniform3f -> FuntypeProgramUniform3f+glrefProgramUniform3f :: IORef FuntypeProgramUniform3f+glrefProgramUniform3f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3f #-}+glProgramUniform3f :: FuntypeProgramUniform3f+glProgramUniform3f = unsafePerformIO $ readIORef glrefProgramUniform3f+{-# INLINE glProgramUniform3f #-}+type FuntypeProgramUniform3fv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3fv :: FunPtr FuntypeProgramUniform3fv -> FuntypeProgramUniform3fv+glrefProgramUniform3fv :: IORef FuntypeProgramUniform3fv+glrefProgramUniform3fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3fv #-}+glProgramUniform3fv :: FuntypeProgramUniform3fv+glProgramUniform3fv = unsafePerformIO $ readIORef glrefProgramUniform3fv+{-# INLINE glProgramUniform3fv #-}+type FuntypeProgramUniform3d =+ GLuint ->+ GLint ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3d :: FunPtr FuntypeProgramUniform3d -> FuntypeProgramUniform3d+glrefProgramUniform3d :: IORef FuntypeProgramUniform3d+glrefProgramUniform3d = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3d #-}+glProgramUniform3d :: FuntypeProgramUniform3d+glProgramUniform3d = unsafePerformIO $ readIORef glrefProgramUniform3d+{-# INLINE glProgramUniform3d #-}+type FuntypeProgramUniform3dv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3dv :: FunPtr FuntypeProgramUniform3dv -> FuntypeProgramUniform3dv+glrefProgramUniform3dv :: IORef FuntypeProgramUniform3dv+glrefProgramUniform3dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3dv #-}+glProgramUniform3dv :: FuntypeProgramUniform3dv+glProgramUniform3dv = unsafePerformIO $ readIORef glrefProgramUniform3dv+{-# INLINE glProgramUniform3dv #-}+type FuntypeProgramUniform3ui =+ GLuint ->+ GLint ->+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3ui :: FunPtr FuntypeProgramUniform3ui -> FuntypeProgramUniform3ui+glrefProgramUniform3ui :: IORef FuntypeProgramUniform3ui+glrefProgramUniform3ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3ui #-}+glProgramUniform3ui :: FuntypeProgramUniform3ui+glProgramUniform3ui = unsafePerformIO $ readIORef glrefProgramUniform3ui+{-# INLINE glProgramUniform3ui #-}+type FuntypeProgramUniform3uiv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform3uiv :: FunPtr FuntypeProgramUniform3uiv -> FuntypeProgramUniform3uiv+glrefProgramUniform3uiv :: IORef FuntypeProgramUniform3uiv+glrefProgramUniform3uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform3uiv #-}+glProgramUniform3uiv :: FuntypeProgramUniform3uiv+glProgramUniform3uiv = unsafePerformIO $ readIORef glrefProgramUniform3uiv+{-# INLINE glProgramUniform3uiv #-}+type FuntypeProgramUniform4i =+ GLuint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4i :: FunPtr FuntypeProgramUniform4i -> FuntypeProgramUniform4i+glrefProgramUniform4i :: IORef FuntypeProgramUniform4i+glrefProgramUniform4i = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4i #-}+glProgramUniform4i :: FuntypeProgramUniform4i+glProgramUniform4i = unsafePerformIO $ readIORef glrefProgramUniform4i+{-# INLINE glProgramUniform4i #-}+type FuntypeProgramUniform4iv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4iv :: FunPtr FuntypeProgramUniform4iv -> FuntypeProgramUniform4iv+glrefProgramUniform4iv :: IORef FuntypeProgramUniform4iv+glrefProgramUniform4iv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4iv #-}+glProgramUniform4iv :: FuntypeProgramUniform4iv+glProgramUniform4iv = unsafePerformIO $ readIORef glrefProgramUniform4iv+{-# INLINE glProgramUniform4iv #-}+type FuntypeProgramUniform4f =+ GLuint ->+ GLint ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ GLfloat ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4f :: FunPtr FuntypeProgramUniform4f -> FuntypeProgramUniform4f+glrefProgramUniform4f :: IORef FuntypeProgramUniform4f+glrefProgramUniform4f = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4f #-}+glProgramUniform4f :: FuntypeProgramUniform4f+glProgramUniform4f = unsafePerformIO $ readIORef glrefProgramUniform4f+{-# INLINE glProgramUniform4f #-}+type FuntypeProgramUniform4fv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4fv :: FunPtr FuntypeProgramUniform4fv -> FuntypeProgramUniform4fv+glrefProgramUniform4fv :: IORef FuntypeProgramUniform4fv+glrefProgramUniform4fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4fv #-}+glProgramUniform4fv :: FuntypeProgramUniform4fv+glProgramUniform4fv = unsafePerformIO $ readIORef glrefProgramUniform4fv+{-# INLINE glProgramUniform4fv #-}+type FuntypeProgramUniform4d =+ GLuint ->+ GLint ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ GLdouble ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4d :: FunPtr FuntypeProgramUniform4d -> FuntypeProgramUniform4d+glrefProgramUniform4d :: IORef FuntypeProgramUniform4d+glrefProgramUniform4d = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4d #-}+glProgramUniform4d :: FuntypeProgramUniform4d+glProgramUniform4d = unsafePerformIO $ readIORef glrefProgramUniform4d+{-# INLINE glProgramUniform4d #-}+type FuntypeProgramUniform4dv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4dv :: FunPtr FuntypeProgramUniform4dv -> FuntypeProgramUniform4dv+glrefProgramUniform4dv :: IORef FuntypeProgramUniform4dv+glrefProgramUniform4dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4dv #-}+glProgramUniform4dv :: FuntypeProgramUniform4dv+glProgramUniform4dv = unsafePerformIO $ readIORef glrefProgramUniform4dv+{-# INLINE glProgramUniform4dv #-}+type FuntypeProgramUniform4ui =+ GLuint ->+ GLint ->+ GLuint ->+ GLuint ->+ GLuint ->+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4ui :: FunPtr FuntypeProgramUniform4ui -> FuntypeProgramUniform4ui+glrefProgramUniform4ui :: IORef FuntypeProgramUniform4ui+glrefProgramUniform4ui = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4ui #-}+glProgramUniform4ui :: FuntypeProgramUniform4ui+glProgramUniform4ui = unsafePerformIO $ readIORef glrefProgramUniform4ui+{-# INLINE glProgramUniform4ui #-}+type FuntypeProgramUniform4uiv =+ GLuint ->+ GLint ->+ GLsizei ->+ Ptr (GLuint) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniform4uiv :: FunPtr FuntypeProgramUniform4uiv -> FuntypeProgramUniform4uiv+glrefProgramUniform4uiv :: IORef FuntypeProgramUniform4uiv+glrefProgramUniform4uiv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniform4uiv #-}+glProgramUniform4uiv :: FuntypeProgramUniform4uiv+glProgramUniform4uiv = unsafePerformIO $ readIORef glrefProgramUniform4uiv+{-# INLINE glProgramUniform4uiv #-}+type FuntypeProgramUniformMatrix2fv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2fv :: FunPtr FuntypeProgramUniformMatrix2fv -> FuntypeProgramUniformMatrix2fv+glrefProgramUniformMatrix2fv :: IORef FuntypeProgramUniformMatrix2fv+glrefProgramUniformMatrix2fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2fv #-}+glProgramUniformMatrix2fv :: FuntypeProgramUniformMatrix2fv+glProgramUniformMatrix2fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2fv+{-# INLINE glProgramUniformMatrix2fv #-}+type FuntypeProgramUniformMatrix3fv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3fv :: FunPtr FuntypeProgramUniformMatrix3fv -> FuntypeProgramUniformMatrix3fv+glrefProgramUniformMatrix3fv :: IORef FuntypeProgramUniformMatrix3fv+glrefProgramUniformMatrix3fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3fv #-}+glProgramUniformMatrix3fv :: FuntypeProgramUniformMatrix3fv+glProgramUniformMatrix3fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3fv+{-# INLINE glProgramUniformMatrix3fv #-}+type FuntypeProgramUniformMatrix4fv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4fv :: FunPtr FuntypeProgramUniformMatrix4fv -> FuntypeProgramUniformMatrix4fv+glrefProgramUniformMatrix4fv :: IORef FuntypeProgramUniformMatrix4fv+glrefProgramUniformMatrix4fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4fv #-}+glProgramUniformMatrix4fv :: FuntypeProgramUniformMatrix4fv+glProgramUniformMatrix4fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4fv+{-# INLINE glProgramUniformMatrix4fv #-}+type FuntypeProgramUniformMatrix2dv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2dv :: FunPtr FuntypeProgramUniformMatrix2dv -> FuntypeProgramUniformMatrix2dv+glrefProgramUniformMatrix2dv :: IORef FuntypeProgramUniformMatrix2dv+glrefProgramUniformMatrix2dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2dv #-}+glProgramUniformMatrix2dv :: FuntypeProgramUniformMatrix2dv+glProgramUniformMatrix2dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2dv+{-# INLINE glProgramUniformMatrix2dv #-}+type FuntypeProgramUniformMatrix3dv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3dv :: FunPtr FuntypeProgramUniformMatrix3dv -> FuntypeProgramUniformMatrix3dv+glrefProgramUniformMatrix3dv :: IORef FuntypeProgramUniformMatrix3dv+glrefProgramUniformMatrix3dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3dv #-}+glProgramUniformMatrix3dv :: FuntypeProgramUniformMatrix3dv+glProgramUniformMatrix3dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3dv+{-# INLINE glProgramUniformMatrix3dv #-}+type FuntypeProgramUniformMatrix4dv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4dv :: FunPtr FuntypeProgramUniformMatrix4dv -> FuntypeProgramUniformMatrix4dv+glrefProgramUniformMatrix4dv :: IORef FuntypeProgramUniformMatrix4dv+glrefProgramUniformMatrix4dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4dv #-}+glProgramUniformMatrix4dv :: FuntypeProgramUniformMatrix4dv+glProgramUniformMatrix4dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4dv+{-# INLINE glProgramUniformMatrix4dv #-}+type FuntypeProgramUniformMatrix2x3fv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2x3fv :: FunPtr FuntypeProgramUniformMatrix2x3fv -> FuntypeProgramUniformMatrix2x3fv+glrefProgramUniformMatrix2x3fv :: IORef FuntypeProgramUniformMatrix2x3fv+glrefProgramUniformMatrix2x3fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2x3fv #-}+glProgramUniformMatrix2x3fv :: FuntypeProgramUniformMatrix2x3fv+glProgramUniformMatrix2x3fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x3fv+{-# INLINE glProgramUniformMatrix2x3fv #-}+type FuntypeProgramUniformMatrix3x2fv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3x2fv :: FunPtr FuntypeProgramUniformMatrix3x2fv -> FuntypeProgramUniformMatrix3x2fv+glrefProgramUniformMatrix3x2fv :: IORef FuntypeProgramUniformMatrix3x2fv+glrefProgramUniformMatrix3x2fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3x2fv #-}+glProgramUniformMatrix3x2fv :: FuntypeProgramUniformMatrix3x2fv+glProgramUniformMatrix3x2fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x2fv+{-# INLINE glProgramUniformMatrix3x2fv #-}+type FuntypeProgramUniformMatrix2x4fv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2x4fv :: FunPtr FuntypeProgramUniformMatrix2x4fv -> FuntypeProgramUniformMatrix2x4fv+glrefProgramUniformMatrix2x4fv :: IORef FuntypeProgramUniformMatrix2x4fv+glrefProgramUniformMatrix2x4fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2x4fv #-}+glProgramUniformMatrix2x4fv :: FuntypeProgramUniformMatrix2x4fv+glProgramUniformMatrix2x4fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x4fv+{-# INLINE glProgramUniformMatrix2x4fv #-}+type FuntypeProgramUniformMatrix4x2fv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4x2fv :: FunPtr FuntypeProgramUniformMatrix4x2fv -> FuntypeProgramUniformMatrix4x2fv+glrefProgramUniformMatrix4x2fv :: IORef FuntypeProgramUniformMatrix4x2fv+glrefProgramUniformMatrix4x2fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4x2fv #-}+glProgramUniformMatrix4x2fv :: FuntypeProgramUniformMatrix4x2fv+glProgramUniformMatrix4x2fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x2fv+{-# INLINE glProgramUniformMatrix4x2fv #-}+type FuntypeProgramUniformMatrix3x4fv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3x4fv :: FunPtr FuntypeProgramUniformMatrix3x4fv -> FuntypeProgramUniformMatrix3x4fv+glrefProgramUniformMatrix3x4fv :: IORef FuntypeProgramUniformMatrix3x4fv+glrefProgramUniformMatrix3x4fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3x4fv #-}+glProgramUniformMatrix3x4fv :: FuntypeProgramUniformMatrix3x4fv+glProgramUniformMatrix3x4fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x4fv+{-# INLINE glProgramUniformMatrix3x4fv #-}+type FuntypeProgramUniformMatrix4x3fv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLfloat) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4x3fv :: FunPtr FuntypeProgramUniformMatrix4x3fv -> FuntypeProgramUniformMatrix4x3fv+glrefProgramUniformMatrix4x3fv :: IORef FuntypeProgramUniformMatrix4x3fv+glrefProgramUniformMatrix4x3fv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4x3fv #-}+glProgramUniformMatrix4x3fv :: FuntypeProgramUniformMatrix4x3fv+glProgramUniformMatrix4x3fv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x3fv+{-# INLINE glProgramUniformMatrix4x3fv #-}+type FuntypeProgramUniformMatrix2x3dv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2x3dv :: FunPtr FuntypeProgramUniformMatrix2x3dv -> FuntypeProgramUniformMatrix2x3dv+glrefProgramUniformMatrix2x3dv :: IORef FuntypeProgramUniformMatrix2x3dv+glrefProgramUniformMatrix2x3dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2x3dv #-}+glProgramUniformMatrix2x3dv :: FuntypeProgramUniformMatrix2x3dv+glProgramUniformMatrix2x3dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x3dv+{-# INLINE glProgramUniformMatrix2x3dv #-}+type FuntypeProgramUniformMatrix3x2dv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3x2dv :: FunPtr FuntypeProgramUniformMatrix3x2dv -> FuntypeProgramUniformMatrix3x2dv+glrefProgramUniformMatrix3x2dv :: IORef FuntypeProgramUniformMatrix3x2dv+glrefProgramUniformMatrix3x2dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3x2dv #-}+glProgramUniformMatrix3x2dv :: FuntypeProgramUniformMatrix3x2dv+glProgramUniformMatrix3x2dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x2dv+{-# INLINE glProgramUniformMatrix3x2dv #-}+type FuntypeProgramUniformMatrix2x4dv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix2x4dv :: FunPtr FuntypeProgramUniformMatrix2x4dv -> FuntypeProgramUniformMatrix2x4dv+glrefProgramUniformMatrix2x4dv :: IORef FuntypeProgramUniformMatrix2x4dv+glrefProgramUniformMatrix2x4dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix2x4dv #-}+glProgramUniformMatrix2x4dv :: FuntypeProgramUniformMatrix2x4dv+glProgramUniformMatrix2x4dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix2x4dv+{-# INLINE glProgramUniformMatrix2x4dv #-}+type FuntypeProgramUniformMatrix4x2dv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4x2dv :: FunPtr FuntypeProgramUniformMatrix4x2dv -> FuntypeProgramUniformMatrix4x2dv+glrefProgramUniformMatrix4x2dv :: IORef FuntypeProgramUniformMatrix4x2dv+glrefProgramUniformMatrix4x2dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4x2dv #-}+glProgramUniformMatrix4x2dv :: FuntypeProgramUniformMatrix4x2dv+glProgramUniformMatrix4x2dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x2dv+{-# INLINE glProgramUniformMatrix4x2dv #-}+type FuntypeProgramUniformMatrix3x4dv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix3x4dv :: FunPtr FuntypeProgramUniformMatrix3x4dv -> FuntypeProgramUniformMatrix3x4dv+glrefProgramUniformMatrix3x4dv :: IORef FuntypeProgramUniformMatrix3x4dv+glrefProgramUniformMatrix3x4dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix3x4dv #-}+glProgramUniformMatrix3x4dv :: FuntypeProgramUniformMatrix3x4dv+glProgramUniformMatrix3x4dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix3x4dv+{-# INLINE glProgramUniformMatrix3x4dv #-}+type FuntypeProgramUniformMatrix4x3dv =+ GLuint ->+ GLint ->+ GLsizei ->+ GLboolean ->+ Ptr (GLdouble) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynProgramUniformMatrix4x3dv :: FunPtr FuntypeProgramUniformMatrix4x3dv -> FuntypeProgramUniformMatrix4x3dv+glrefProgramUniformMatrix4x3dv :: IORef FuntypeProgramUniformMatrix4x3dv+glrefProgramUniformMatrix4x3dv = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefProgramUniformMatrix4x3dv #-}+glProgramUniformMatrix4x3dv :: FuntypeProgramUniformMatrix4x3dv+glProgramUniformMatrix4x3dv = unsafePerformIO $ readIORef glrefProgramUniformMatrix4x3dv+{-# INLINE glProgramUniformMatrix4x3dv #-}+type FuntypeValidateProgramPipeline =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynValidateProgramPipeline :: FunPtr FuntypeValidateProgramPipeline -> FuntypeValidateProgramPipeline+glrefValidateProgramPipeline :: IORef FuntypeValidateProgramPipeline+glrefValidateProgramPipeline = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefValidateProgramPipeline #-}+glValidateProgramPipeline :: FuntypeValidateProgramPipeline+glValidateProgramPipeline = unsafePerformIO $ readIORef glrefValidateProgramPipeline+{-# INLINE glValidateProgramPipeline #-}+type FuntypeGetProgramPipelineInfoLog =+ GLuint ->+ GLsizei ->+ Ptr (GLsizei) ->+ Ptr (GLchar) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynGetProgramPipelineInfoLog :: FunPtr FuntypeGetProgramPipelineInfoLog -> FuntypeGetProgramPipelineInfoLog+glrefGetProgramPipelineInfoLog :: IORef FuntypeGetProgramPipelineInfoLog+glrefGetProgramPipelineInfoLog = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefGetProgramPipelineInfoLog #-}+glGetProgramPipelineInfoLog :: FuntypeGetProgramPipelineInfoLog+glGetProgramPipelineInfoLog = unsafePerformIO $ readIORef glrefGetProgramPipelineInfoLog+{-# INLINE glGetProgramPipelineInfoLog #-}++-- GL_ATI_meminfo+++-- GL_NVX_gpu_memory_info+++-- GL_ARB_invalidate_subdata++type FuntypeInvalidateTexSubImage =+ GLuint ->+ GLint ->+ GLint ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynInvalidateTexSubImage :: FunPtr FuntypeInvalidateTexSubImage -> FuntypeInvalidateTexSubImage+glrefInvalidateTexSubImage :: IORef FuntypeInvalidateTexSubImage+glrefInvalidateTexSubImage = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefInvalidateTexSubImage #-}+glInvalidateTexSubImage :: FuntypeInvalidateTexSubImage+glInvalidateTexSubImage = unsafePerformIO $ readIORef glrefInvalidateTexSubImage+{-# INLINE glInvalidateTexSubImage #-}+type FuntypeInvalidateTexImage =+ GLuint ->+ GLint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynInvalidateTexImage :: FunPtr FuntypeInvalidateTexImage -> FuntypeInvalidateTexImage+glrefInvalidateTexImage :: IORef FuntypeInvalidateTexImage+glrefInvalidateTexImage = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefInvalidateTexImage #-}+glInvalidateTexImage :: FuntypeInvalidateTexImage+glInvalidateTexImage = unsafePerformIO $ readIORef glrefInvalidateTexImage+{-# INLINE glInvalidateTexImage #-}+type FuntypeInvalidateBufferSubData =+ GLuint ->+ GLintptr ->+ GLsizeiptr ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynInvalidateBufferSubData :: FunPtr FuntypeInvalidateBufferSubData -> FuntypeInvalidateBufferSubData+glrefInvalidateBufferSubData :: IORef FuntypeInvalidateBufferSubData+glrefInvalidateBufferSubData = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefInvalidateBufferSubData #-}+glInvalidateBufferSubData :: FuntypeInvalidateBufferSubData+glInvalidateBufferSubData = unsafePerformIO $ readIORef glrefInvalidateBufferSubData+{-# INLINE glInvalidateBufferSubData #-}+type FuntypeInvalidateBufferData =+ GLuint ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynInvalidateBufferData :: FunPtr FuntypeInvalidateBufferData -> FuntypeInvalidateBufferData+glrefInvalidateBufferData :: IORef FuntypeInvalidateBufferData+glrefInvalidateBufferData = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefInvalidateBufferData #-}+glInvalidateBufferData :: FuntypeInvalidateBufferData+glInvalidateBufferData = unsafePerformIO $ readIORef glrefInvalidateBufferData+{-# INLINE glInvalidateBufferData #-}+type FuntypeInvalidateFramebuffer =+ GLenum ->+ GLsizei ->+ Ptr (GLenum) ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynInvalidateFramebuffer :: FunPtr FuntypeInvalidateFramebuffer -> FuntypeInvalidateFramebuffer+glrefInvalidateFramebuffer :: IORef FuntypeInvalidateFramebuffer+glrefInvalidateFramebuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefInvalidateFramebuffer #-}+glInvalidateFramebuffer :: FuntypeInvalidateFramebuffer+glInvalidateFramebuffer = unsafePerformIO $ readIORef glrefInvalidateFramebuffer+{-# INLINE glInvalidateFramebuffer #-}+type FuntypeInvalidateSubFramebuffer =+ GLenum ->+ GLsizei ->+ Ptr (GLenum) ->+ GLint ->+ GLint ->+ GLsizei ->+ GLsizei ->+ IO ( () )+foreign import ccall APIENTRY unsafe "dynamic"+ gldynInvalidateSubFramebuffer :: FunPtr FuntypeInvalidateSubFramebuffer -> FuntypeInvalidateSubFramebuffer+glrefInvalidateSubFramebuffer :: IORef FuntypeInvalidateSubFramebuffer+glrefInvalidateSubFramebuffer = unsafePerformIO $ newIORef $ error "No function retrieved."+{-# NOINLINE glrefInvalidateSubFramebuffer #-}+glInvalidateSubFramebuffer :: FuntypeInvalidateSubFramebuffer+glInvalidateSubFramebuffer = unsafePerformIO $ readIORef glrefInvalidateSubFramebuffer+{-# INLINE glInvalidateSubFramebuffer #-}++gl_UNSIGNED_INT_10_10_10_2_EXT :: GLenum+gl_UNSIGNED_INT_10_10_10_2_EXT = 0x8036+gl_ACTIVE_RESOURCES :: GLenum+gl_ACTIVE_RESOURCES = 0x92F5+gl_MAX_GEOMETRY_SHADER_INVOCATIONS :: GLenum+gl_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A+gl_RESTART_PATH_NV :: GLenum+gl_RESTART_PATH_NV = 0xF0+gl_MAX_DEEP_3D_TEXTURE_DEPTH_NV :: GLenum+gl_MAX_DEEP_3D_TEXTURE_DEPTH_NV = 0x90D1+gl_PACK_SKIP_IMAGES :: GLenum+gl_PACK_SKIP_IMAGES = 0x806B+gl_IMAGE_CLASS_2_X_16 :: GLenum+gl_IMAGE_CLASS_2_X_16 = 0x82BD+gl_FRAMEBUFFER_COMPLETE :: GLenum+gl_FRAMEBUFFER_COMPLETE = 0x8CD5+gl_HSL_LUMINOSITY_NV :: GLenum+gl_HSL_LUMINOSITY_NV = 0x92B0+gl_IMAGE_BINDING_LAYERED_EXT :: GLenum+gl_IMAGE_BINDING_LAYERED_EXT = 0x8F3C+gl_ZOOM_Y :: GLenum+gl_ZOOM_Y = 0x0D17+gl_TEXTURE_LUMINANCE_TYPE_ARB :: GLenum+gl_TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14+gl_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB :: GLenum+gl_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B+gl_TEXTURE_HEIGHT :: GLenum+gl_TEXTURE_HEIGHT = 0x1001+gl_OUTPUT_TEXTURE_COORD0_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD0_EXT = 0x879D+gl_FLOAT_CLEAR_COLOR_VALUE_NV :: GLenum+gl_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D+gl_LIGHT_MODEL_AMBIENT :: GLenum+gl_LIGHT_MODEL_AMBIENT = 0x0B53+gl_INT16_VEC3_NV :: GLenum+gl_INT16_VEC3_NV = 0x8FE6+gl_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV :: GLenum+gl_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = 0x8C74+gl_MATRIX6_NV :: GLenum+gl_MATRIX6_NV = 0x8636+gl_COMPUTE_PROGRAM_NV :: GLenum+gl_COMPUTE_PROGRAM_NV = 0x90FB+gl_SCALED_RESOLVE_FASTEST_EXT :: GLenum+gl_SCALED_RESOLVE_FASTEST_EXT = 0x90BA+gl_REPLACEMENT_CODE_ARRAY_SUN :: GLenum+gl_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0+gl_TEXTURE_DT_SIZE_NV :: GLenum+gl_TEXTURE_DT_SIZE_NV = 0x871E+gl_NUM_SPARSE_LEVELS_ARB :: GLenum+gl_NUM_SPARSE_LEVELS_ARB = 0x91AA+gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR :: GLenum+gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243+gl_NO_ERROR :: GLenum+gl_NO_ERROR = 0+gl_INTERNALFORMAT_ALPHA_TYPE :: GLenum+gl_INTERNALFORMAT_ALPHA_TYPE = 0x827B+gl_FONT_HEIGHT_BIT_NV :: GLenum+gl_FONT_HEIGHT_BIT_NV = 0x00800000+gl_TANGENT_ARRAY_POINTER_EXT :: GLenum+gl_TANGENT_ARRAY_POINTER_EXT = 0x8442+gl_LOCAL_CONSTANT_VALUE_EXT :: GLenum+gl_LOCAL_CONSTANT_VALUE_EXT = 0x87EC+gl_READ_WRITE :: GLenum+gl_READ_WRITE = 0x88BA+gl_TEXTURE_2D :: GLenum+gl_TEXTURE_2D = 0x0DE1+gl_UNSIGNED_INT_2_10_10_10_REV_EXT :: GLenum+gl_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368+gl_TEXTURE_WRAP_R :: GLenum+gl_TEXTURE_WRAP_R = 0x8072+gl_FLOAT_MAT4x2 :: GLenum+gl_FLOAT_MAT4x2 = 0x8B69+gl_MAX_COMPUTE_WORK_GROUP_SIZE :: GLenum+gl_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF+gl_POLYGON_OFFSET_CLAMP_EXT :: GLenum+gl_POLYGON_OFFSET_CLAMP_EXT = 0x8E1B+gl_SYNC_FLUSH_COMMANDS_BIT :: GLenum+gl_SYNC_FLUSH_COMMANDS_BIT = 0x00000001+gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB :: GLenum+gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809+gl_INT_IMAGE_BUFFER :: GLenum+gl_INT_IMAGE_BUFFER = 0x905C+gl_VERTEX_ATTRIB_ARRAY_TYPE :: GLenum+gl_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625+gl_ONE :: GLenum+gl_ONE = 1+gl_COLOR_CLEAR_UNCLAMPED_VALUE_ATI :: GLenum+gl_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835+gl_TRANSLATE_X_NV :: GLenum+gl_TRANSLATE_X_NV = 0x908E+gl_HI_SCALE_NV :: GLenum+gl_HI_SCALE_NV = 0x870E+gl_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT :: GLenum+gl_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308+gl_HILO_NV :: GLenum+gl_HILO_NV = 0x86F4+gl_TRIANGLES :: GLenum+gl_TRIANGLES = 0x0004+gl_LINEARLIGHT_NV :: GLenum+gl_LINEARLIGHT_NV = 0x92A7+gl_MAX_3D_TEXTURE_SIZE_OES :: GLenum+gl_MAX_3D_TEXTURE_SIZE_OES = 0x8073+gl_ANY_SAMPLES_PASSED_CONSERVATIVE :: GLenum+gl_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A+gl_UNIFORM_BLOCK_BINDING :: GLenum+gl_UNIFORM_BLOCK_BINDING = 0x8A3F+gl_MAX_TESS_CONTROL_INPUT_COMPONENTS :: GLenum+gl_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C+gl_TEXTURE_ALPHA_TYPE_ARB :: GLenum+gl_TEXTURE_ALPHA_TYPE_ARB = 0x8C13+gl_MAX_CONVOLUTION_HEIGHT :: GLenum+gl_MAX_CONVOLUTION_HEIGHT = 0x801B+gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9+gl_DEPTH_BUFFER_BIT5_QCOM :: GLenum+gl_DEPTH_BUFFER_BIT5_QCOM = 0x00002000+gl_PROGRAM_TEX_INDIRECTIONS_ARB :: GLenum+gl_PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807+gl_BLUE :: GLenum+gl_BLUE = 0x1905+gl_RGBA_S3TC :: GLenum+gl_RGBA_S3TC = 0x83A2+gl_DECR :: GLenum+gl_DECR = 0x1E03+gl_MAJOR_VERSION :: GLenum+gl_MAJOR_VERSION = 0x821B+gl_ARRAY_STRIDE :: GLenum+gl_ARRAY_STRIDE = 0x92FE+gl_CONSTANT_COLOR1_NV :: GLenum+gl_CONSTANT_COLOR1_NV = 0x852B+gl_SAMPLES_EXT :: GLenum+gl_SAMPLES_EXT = 0x80A9+gl_MAX_SAMPLES_APPLE :: GLenum+gl_MAX_SAMPLES_APPLE = 0x8D57+gl_COLOR_ARRAY_SIZE :: GLenum+gl_COLOR_ARRAY_SIZE = 0x8081+gl_SAMPLE_ALPHA_TO_MASK_SGIS :: GLenum+gl_SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E+gl_DUP_LAST_CUBIC_CURVE_TO_NV :: GLenum+gl_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4+gl_TEXTURE10 :: GLenum+gl_TEXTURE10 = 0x84CA+gl_R1UI_T2F_C4F_N3F_V3F_SUN :: GLenum+gl_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB+gl_MAX_VARYING_COMPONENTS :: GLenum+gl_MAX_VARYING_COMPONENTS = 0x8B4B+gl_DRAW_BUFFER7_EXT :: GLenum+gl_DRAW_BUFFER7_EXT = 0x882C+gl_MAX_COMBINED_ATOMIC_COUNTERS :: GLenum+gl_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7+gl_PROGRAM_ERROR_STRING_ARB :: GLenum+gl_PROGRAM_ERROR_STRING_ARB = 0x8874+gl_TRACE_ALL_BITS_MESA :: GLenum+gl_TRACE_ALL_BITS_MESA = 0xFFFF+gl_DEPTH_CLAMP_NV :: GLenum+gl_DEPTH_CLAMP_NV = 0x864F+gl_REDUCE :: GLenum+gl_REDUCE = 0x8016+gl_UNSIGNED_SHORT_4_4_4_4 :: GLenum+gl_UNSIGNED_SHORT_4_4_4_4 = 0x8033+gl_SKIP_COMPONENTS1_NV :: GLenum+gl_SKIP_COMPONENTS1_NV = -6+gl_PIXEL_TILE_CACHE_INCREMENT_SGIX :: GLenum+gl_PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F+gl_COLOR_ARRAY :: GLenum+gl_COLOR_ARRAY = 0x8076+gl_STATIC_VERTEX_ARRAY_IBM :: GLenum+gl_STATIC_VERTEX_ARRAY_IBM = 103061+gl_INDEX_BIT_PGI :: GLenum+gl_INDEX_BIT_PGI = 0x00080000+gl_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519+gl_ETC1_SRGB8_NV :: GLenum+gl_ETC1_SRGB8_NV = 0x88EE+gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS :: GLenum+gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81+gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT :: GLenum+gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = 0x00000001+gl_LIGHT_MODEL_COLOR_CONTROL_EXT :: GLenum+gl_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8+gl_PATCH_DEFAULT_OUTER_LEVEL_EXT :: GLenum+gl_PATCH_DEFAULT_OUTER_LEVEL_EXT = 0x8E74+gl_SAMPLER_CUBE_ARB :: GLenum+gl_SAMPLER_CUBE_ARB = 0x8B60+gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT :: GLenum+gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1+gl_STORAGE_PRIVATE_APPLE :: GLenum+gl_STORAGE_PRIVATE_APPLE = 0x85BD+gl_MAP1_TEXTURE_COORD_2 :: GLenum+gl_MAP1_TEXTURE_COORD_2 = 0x0D94+gl_REPLACEMENT_CODE_ARRAY_STRIDE_SUN :: GLenum+gl_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2+gl_VERTEX_ATTRIB_ARRAY8_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY8_NV = 0x8658+gl_LUMINANCE16F_ARB :: GLenum+gl_LUMINANCE16F_ARB = 0x881E+gl_DEPTH_COMPONENT32F_NV :: GLenum+gl_DEPTH_COMPONENT32F_NV = 0x8DAB+gl_MAX_VERTEX_BINDABLE_UNIFORMS_EXT :: GLenum+gl_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2+gl_MATRIX28_ARB :: GLenum+gl_MATRIX28_ARB = 0x88DC+gl_SYNC_FLUSH_COMMANDS_BIT_APPLE :: GLenum+gl_SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x00000001+gl_READ_FRAMEBUFFER_BINDING_ANGLE :: GLenum+gl_READ_FRAMEBUFFER_BINDING_ANGLE = 0x8CAA+gl_FOG_COORDINATE_ARRAY_TYPE :: GLenum+gl_FOG_COORDINATE_ARRAY_TYPE = 0x8454+gl_RGBA32UI_EXT :: GLenum+gl_RGBA32UI_EXT = 0x8D70+gl_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG :: GLenum+gl_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02+gl_2_BYTES_NV :: GLenum+gl_2_BYTES_NV = 0x1407+gl_TEXTURE_HI_SIZE_NV :: GLenum+gl_TEXTURE_HI_SIZE_NV = 0x871B+gl_PACK_SWAP_BYTES :: GLenum+gl_PACK_SWAP_BYTES = 0x0D00+gl_EVAL_FRACTIONAL_TESSELLATION_NV :: GLenum+gl_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5+gl_RG16 :: GLenum+gl_RG16 = 0x822C+gl_SWIZZLE_STR_ATI :: GLenum+gl_SWIZZLE_STR_ATI = 0x8976+gl_CON_6_ATI :: GLenum+gl_CON_6_ATI = 0x8947+gl_PATH_FOG_GEN_MODE_NV :: GLenum+gl_PATH_FOG_GEN_MODE_NV = 0x90AC+gl_SRGB8_ALPHA8_EXT :: GLenum+gl_SRGB8_ALPHA8_EXT = 0x8C43+gl_COMPRESSED_SLUMINANCE_ALPHA_EXT :: GLenum+gl_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B+gl_TEXTURE_COMPARE_FUNC_EXT :: GLenum+gl_TEXTURE_COMPARE_FUNC_EXT = 0x884D+gl_UNIFORM_MATRIX_STRIDE :: GLenum+gl_UNIFORM_MATRIX_STRIDE = 0x8A3D+gl_INVALID_OPERATION :: GLenum+gl_INVALID_OPERATION = 0x0502+gl_DRAW_BUFFER4_ATI :: GLenum+gl_DRAW_BUFFER4_ATI = 0x8829+gl_BYTE :: GLenum+gl_BYTE = 0x1400+gl_SECONDARY_COLOR_ARRAY_POINTER :: GLenum+gl_SECONDARY_COLOR_ARRAY_POINTER = 0x845D+gl_TEXTURE_CUBE_MAP_POSITIVE_X :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515+gl_TEXTURE_2D_ARRAY :: GLenum+gl_TEXTURE_2D_ARRAY = 0x8C1A+gl_OFFSET_TEXTURE_MATRIX_NV :: GLenum+gl_OFFSET_TEXTURE_MATRIX_NV = 0x86E1+gl_FLOAT_MAT2x4 :: GLenum+gl_FLOAT_MAT2x4 = 0x8B66+gl_REG_31_ATI :: GLenum+gl_REG_31_ATI = 0x8940+gl_DEBUG_TYPE_PORTABILITY :: GLenum+gl_DEBUG_TYPE_PORTABILITY = 0x824F+gl_SAMPLER_2D_ARB :: GLenum+gl_SAMPLER_2D_ARB = 0x8B5E+gl_DRAW_BUFFER11 :: GLenum+gl_DRAW_BUFFER11 = 0x8830+gl_MAX_COMPUTE_WORK_GROUP_INVOCATIONS :: GLenum+gl_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB+gl_TEXTURE5_ARB :: GLenum+gl_TEXTURE5_ARB = 0x84C5+gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT :: GLenum+gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = 0x90D7+gl_COLOR_TABLE_SCALE :: GLenum+gl_COLOR_TABLE_SCALE = 0x80D6+gl_POINT_FADE_THRESHOLD_SIZE_SGIS :: GLenum+gl_POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128+gl_MAX_SPARSE_3D_TEXTURE_SIZE_ARB :: GLenum+gl_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = 0x9199+gl_ACCUM_CLEAR_VALUE :: GLenum+gl_ACCUM_CLEAR_VALUE = 0x0B80+gl_OPERAND0_ALPHA_EXT :: GLenum+gl_OPERAND0_ALPHA_EXT = 0x8598+gl_QUERY_NO_WAIT :: GLenum+gl_QUERY_NO_WAIT = 0x8E14+gl_PRIMITIVE_RESTART :: GLenum+gl_PRIMITIVE_RESTART = 0x8F9D+gl_STENCIL_ATTACHMENT_OES :: GLenum+gl_STENCIL_ATTACHMENT_OES = 0x8D20+gl_BUFFER_USAGE :: GLenum+gl_BUFFER_USAGE = 0x8765+gl_COLOR_TABLE_BLUE_SIZE :: GLenum+gl_COLOR_TABLE_BLUE_SIZE = 0x80DC+gl_VERTEX_ARRAY_SIZE_EXT :: GLenum+gl_VERTEX_ARRAY_SIZE_EXT = 0x807A+gl_ALPHA8 :: GLenum+gl_ALPHA8 = 0x803C+gl_PROXY_TEXTURE_2D :: GLenum+gl_PROXY_TEXTURE_2D = 0x8064+gl_HALF_BIT_ATI :: GLenum+gl_HALF_BIT_ATI = 0x00000008+gl_TRANSPOSE_MODELVIEW_MATRIX :: GLenum+gl_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3+gl_DRAW_BUFFER3 :: GLenum+gl_DRAW_BUFFER3 = 0x8828+gl_4PASS_2_SGIS :: GLenum+gl_4PASS_2_SGIS = 0x80A6+gl_MAX_GEOMETRY_OUTPUT_COMPONENTS :: GLenum+gl_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124+gl_SAMPLER_2D_ARRAY_SHADOW_EXT :: GLenum+gl_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4+gl_TEXTURE_FORMAT_QCOM :: GLenum+gl_TEXTURE_FORMAT_QCOM = 0x8BD6+gl_RGB16_SNORM :: GLenum+gl_RGB16_SNORM = 0x8F9A+gl_DRAW_BUFFER8_NV :: GLenum+gl_DRAW_BUFFER8_NV = 0x882D+gl_AUX_BUFFERS :: GLenum+gl_AUX_BUFFERS = 0x0C00+gl_CONVOLUTION_HINT_SGIX :: GLenum+gl_CONVOLUTION_HINT_SGIX = 0x8316+gl_FOG_COLOR :: GLenum+gl_FOG_COLOR = 0x0B66+gl_COLOR_TABLE_RED_SIZE_SGI :: GLenum+gl_COLOR_TABLE_RED_SIZE_SGI = 0x80DA+gl_FUNC_SUBTRACT_OES :: GLenum+gl_FUNC_SUBTRACT_OES = 0x800A+gl_LUMINANCE_ALPHA16F_ARB :: GLenum+gl_LUMINANCE_ALPHA16F_ARB = 0x881F+gl_MODELVIEW10_ARB :: GLenum+gl_MODELVIEW10_ARB = 0x872A+gl_LOGIC_OP :: GLenum+gl_LOGIC_OP = 0x0BF1+gl_PROGRAM_NATIVE_INSTRUCTIONS_ARB :: GLenum+gl_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2+gl_SOURCE0_ALPHA_EXT :: GLenum+gl_SOURCE0_ALPHA_EXT = 0x8588+gl_INDEX_SHIFT :: GLenum+gl_INDEX_SHIFT = 0x0D12+gl_PIXEL_FRAGMENT_RGB_SOURCE_SGIS :: GLenum+gl_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354+gl_RG32F_EXT :: GLenum+gl_RG32F_EXT = 0x8230+gl_GEOMETRY_LINKED_VERTICES_OUT_EXT :: GLenum+gl_GEOMETRY_LINKED_VERTICES_OUT_EXT = 0x8916+gl_STACK_UNDERFLOW_KHR :: GLenum+gl_STACK_UNDERFLOW_KHR = 0x0504+gl_TESS_GEN_POINT_MODE_EXT :: GLenum+gl_TESS_GEN_POINT_MODE_EXT = 0x8E79+gl_BUFFER_ACCESS_ARB :: GLenum+gl_BUFFER_ACCESS_ARB = 0x88BB+gl_DOT_PRODUCT_NV :: GLenum+gl_DOT_PRODUCT_NV = 0x86EC+gl_INVERTED_SCREEN_W_REND :: GLenum+gl_INVERTED_SCREEN_W_REND = 0x8491+gl_REG_11_ATI :: GLenum+gl_REG_11_ATI = 0x892C+gl_MAX_FRAMEZOOM_FACTOR_SGIX :: GLenum+gl_MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D+gl_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD :: GLenum+gl_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD = 0x00000008+gl_MATRIX20_ARB :: GLenum+gl_MATRIX20_ARB = 0x88D4+gl_EVAL_VERTEX_ATTRIB1_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB1_NV = 0x86C7+gl_COLOR_ATTACHMENT10_NV :: GLenum+gl_COLOR_ATTACHMENT10_NV = 0x8CEA+gl_OUTPUT_TEXTURE_COORD28_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9+gl_MAX_TEXTURE_COORDS_ARB :: GLenum+gl_MAX_TEXTURE_COORDS_ARB = 0x8871+gl_COLOR_ARRAY_PARALLEL_POINTERS_INTEL :: GLenum+gl_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7+gl_MAX_COMBINED_SHADER_OUTPUT_RESOURCES :: GLenum+gl_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39+gl_RENDERBUFFER_BLUE_SIZE :: GLenum+gl_RENDERBUFFER_BLUE_SIZE = 0x8D52+gl_MULTISAMPLE_BIT :: GLenum+gl_MULTISAMPLE_BIT = 0x20000000+gl_CURRENT_PROGRAM :: GLenum+gl_CURRENT_PROGRAM = 0x8B8D+gl_AUX_DEPTH_STENCIL_APPLE :: GLenum+gl_AUX_DEPTH_STENCIL_APPLE = 0x8A14+gl_LUMINANCE8_ALPHA8_EXT :: GLenum+gl_LUMINANCE8_ALPHA8_EXT = 0x8045+gl_VIDEO_CAPTURE_SURFACE_ORIGIN_NV :: GLenum+gl_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C+gl_INTERLACE_OML :: GLenum+gl_INTERLACE_OML = 0x8980+gl_REG_27_ATI :: GLenum+gl_REG_27_ATI = 0x893C+gl_UNSIGNED_INT_24_8_OES :: GLenum+gl_UNSIGNED_INT_24_8_OES = 0x84FA+gl_COMBINER_AB_OUTPUT_NV :: GLenum+gl_COMBINER_AB_OUTPUT_NV = 0x854A+gl_CURRENT_RASTER_INDEX :: GLenum+gl_CURRENT_RASTER_INDEX = 0x0B05+gl_SYNC_FENCE_APPLE :: GLenum+gl_SYNC_FENCE_APPLE = 0x9116+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3+gl_MAX_TEXTURE_SIZE :: GLenum+gl_MAX_TEXTURE_SIZE = 0x0D33+gl_TEXTURE24 :: GLenum+gl_TEXTURE24 = 0x84D8+gl_STENCIL_BACK_FUNC :: GLenum+gl_STENCIL_BACK_FUNC = 0x8800+gl_LUMINANCE12 :: GLenum+gl_LUMINANCE12 = 0x8041+gl_PARAMETER_BUFFER_ARB :: GLenum+gl_PARAMETER_BUFFER_ARB = 0x80EE+gl_AUX2 :: GLenum+gl_AUX2 = 0x040B+gl_SLICE_ACCUM_SUN :: GLenum+gl_SLICE_ACCUM_SUN = 0x85CC+gl_COLOR_TABLE_ALPHA_SIZE :: GLenum+gl_COLOR_TABLE_ALPHA_SIZE = 0x80DD+gl_TEXTURE_CUBE_MAP_POSITIVE_X_EXT :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515+gl_DRAW_FRAMEBUFFER_BINDING_ANGLE :: GLenum+gl_DRAW_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER :: GLenum+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9+gl_SUBTRACT :: GLenum+gl_SUBTRACT = 0x84E7+gl_MAX_PROGRAM_IF_DEPTH_NV :: GLenum+gl_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6+gl_T2F_C4F_N3F_V3F :: GLenum+gl_T2F_C4F_N3F_V3F = 0x2A2C+gl_ACTIVE_SUBROUTINE_UNIFORMS :: GLenum+gl_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6+gl_EMBOSS_LIGHT_NV :: GLenum+gl_EMBOSS_LIGHT_NV = 0x855D+gl_POINT_SIZE_RANGE :: GLenum+gl_POINT_SIZE_RANGE = 0x0B12+gl_GEOMETRY_LINKED_OUTPUT_TYPE_EXT :: GLenum+gl_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = 0x8918+gl_CLAMP_TO_BORDER :: GLenum+gl_CLAMP_TO_BORDER = 0x812D+gl_TEXTURE_BUFFER_OFFSET_EXT :: GLenum+gl_TEXTURE_BUFFER_OFFSET_EXT = 0x919D+gl_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV :: GLenum+gl_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV = 0x90FC+gl_COMPRESSED_INTENSITY :: GLenum+gl_COMPRESSED_INTENSITY = 0x84EC+gl_MAX_PROGRAM_OUTPUT_VERTICES_NV :: GLenum+gl_MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = 0x93E6+gl_MAX_PROGRAM_ATTRIBS_ARB :: GLenum+gl_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD+gl_POST_COLOR_MATRIX_GREEN_SCALE_SGI :: GLenum+gl_POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5+gl_TEXTURE_3D_BINDING_EXT :: GLenum+gl_TEXTURE_3D_BINDING_EXT = 0x806A+gl_SHADER_STORAGE_BUFFER_START :: GLenum+gl_SHADER_STORAGE_BUFFER_START = 0x90D4+gl_MAP2_INDEX :: GLenum+gl_MAP2_INDEX = 0x0DB1+gl_CONSTANT_COLOR_EXT :: GLenum+gl_CONSTANT_COLOR_EXT = 0x8001+gl_RG32UI :: GLenum+gl_RG32UI = 0x823C+gl_BGRA :: GLenum+gl_BGRA = 0x80E1+gl_FRAGMENT_DEPTH_EXT :: GLenum+gl_FRAGMENT_DEPTH_EXT = 0x8452+gl_GENERATE_MIPMAP_HINT_SGIS :: GLenum+gl_GENERATE_MIPMAP_HINT_SGIS = 0x8192+gl_DIFFERENCE_NV :: GLenum+gl_DIFFERENCE_NV = 0x929E+gl_UNSIGNED_SHORT_1_15_REV_MESA :: GLenum+gl_UNSIGNED_SHORT_1_15_REV_MESA = 0x8754+gl_PROGRAM_BINARY_RETRIEVABLE_HINT :: GLenum+gl_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257+gl_RGBA32I :: GLenum+gl_RGBA32I = 0x8D82+gl_UNSIGNED_INT_8_8_8_8 :: GLenum+gl_UNSIGNED_INT_8_8_8_8 = 0x8035+gl_DOMAIN :: GLenum+gl_DOMAIN = 0x0A02+gl_COLOR_MATRIX :: GLenum+gl_COLOR_MATRIX = 0x80B1+gl_PROGRAM_NATIVE_ATTRIBS_ARB :: GLenum+gl_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE+gl_OP_ROUND_EXT :: GLenum+gl_OP_ROUND_EXT = 0x8790+gl_VIEW_CLASS_96_BITS :: GLenum+gl_VIEW_CLASS_96_BITS = 0x82C5+gl_TEXTURE_WRAP_R_OES :: GLenum+gl_TEXTURE_WRAP_R_OES = 0x8072+gl_VERTEX_ARRAY_TYPE :: GLenum+gl_VERTEX_ARRAY_TYPE = 0x807B+gl_VIDEO_BUFFER_INTERNAL_FORMAT_NV :: GLenum+gl_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D+gl_PIXEL_MAP_R_TO_R_SIZE :: GLenum+gl_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6+gl_UNSIGNED_NORMALIZED_ARB :: GLenum+gl_UNSIGNED_NORMALIZED_ARB = 0x8C17+gl_UNSIGNED_INT8_VEC3_NV :: GLenum+gl_UNSIGNED_INT8_VEC3_NV = 0x8FEE+gl_COMPRESSED_RGBA8_ETC2_EAC_OES :: GLenum+gl_COMPRESSED_RGBA8_ETC2_EAC_OES = 0x9278+gl_HI_BIAS_NV :: GLenum+gl_HI_BIAS_NV = 0x8714+gl_SECONDARY_COLOR_ARRAY_EXT :: GLenum+gl_SECONDARY_COLOR_ARRAY_EXT = 0x845E+gl_BUFFER_MAP_OFFSET :: GLenum+gl_BUFFER_MAP_OFFSET = 0x9121+gl_LUMINANCE4_ALPHA4_OES :: GLenum+gl_LUMINANCE4_ALPHA4_OES = 0x8043+gl_FORMAT_SUBSAMPLE_244_244_OML :: GLenum+gl_FORMAT_SUBSAMPLE_244_244_OML = 0x8983+gl_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA :: GLenum+gl_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA = 0x8BB2+gl_PLUS_CLAMPED_ALPHA_NV :: GLenum+gl_PLUS_CLAMPED_ALPHA_NV = 0x92B2+gl_COLOR_ATTACHMENT0_NV :: GLenum+gl_COLOR_ATTACHMENT0_NV = 0x8CE0+gl_COMPRESSED_RGB_S3TC_DXT1_EXT :: GLenum+gl_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0+gl_GEOMETRY_OUTPUT_TYPE :: GLenum+gl_GEOMETRY_OUTPUT_TYPE = 0x8918+gl_INTENSITY8_EXT :: GLenum+gl_INTENSITY8_EXT = 0x804B+gl_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517+gl_COMPRESSED_RED_GREEN_RGTC2_EXT :: GLenum+gl_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD+gl_DEBUG_SOURCE_API_KHR :: GLenum+gl_DEBUG_SOURCE_API_KHR = 0x8246+gl_BLEND_PREMULTIPLIED_SRC_NV :: GLenum+gl_BLEND_PREMULTIPLIED_SRC_NV = 0x9280+gl_CLIENT_STORAGE_BIT :: GLenum+gl_CLIENT_STORAGE_BIT = 0x0200+gl_INTENSITY12_EXT :: GLenum+gl_INTENSITY12_EXT = 0x804C+gl_MATRIX_INDEX_ARRAY_STRIDE_OES :: GLenum+gl_MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848+gl_CURRENT_RASTER_SECONDARY_COLOR :: GLenum+gl_CURRENT_RASTER_SECONDARY_COLOR = 0x845F+gl_REPLACE :: GLenum+gl_REPLACE = 0x1E01+gl_LINEAR :: GLenum+gl_LINEAR = 0x2601+gl_COMBINER_INPUT_NV :: GLenum+gl_COMBINER_INPUT_NV = 0x8542+gl_TRANSFORM_FEEDBACK_VARYINGS :: GLenum+gl_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = 0x93E2+gl_IMAGE_BINDING_ACCESS :: GLenum+gl_IMAGE_BINDING_ACCESS = 0x8F3E+gl_NUM_LOOPBACK_COMPONENTS_ATI :: GLenum+gl_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974+gl_ARRAY_ELEMENT_LOCK_COUNT_EXT :: GLenum+gl_ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9+gl_REPLACEMENT_CODE_ARRAY_POINTER_SUN :: GLenum+gl_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3+gl_TEXTURE_4DSIZE_SGIS :: GLenum+gl_TEXTURE_4DSIZE_SGIS = 0x8136+gl_COUNTER_RANGE_AMD :: GLenum+gl_COUNTER_RANGE_AMD = 0x8BC1+gl_RGB8_OES :: GLenum+gl_RGB8_OES = 0x8051+gl_ALPHA16F_EXT :: GLenum+gl_ALPHA16F_EXT = 0x881C+gl_C4F_N3F_V3F :: GLenum+gl_C4F_N3F_V3F = 0x2A26+gl_NEAREST_MIPMAP_LINEAR :: GLenum+gl_NEAREST_MIPMAP_LINEAR = 0x2702+gl_DEBUG_SEVERITY_LOW_KHR :: GLenum+gl_DEBUG_SEVERITY_LOW_KHR = 0x9148+gl_DISCARD_ATI :: GLenum+gl_DISCARD_ATI = 0x8763+gl_LOCAL_CONSTANT_DATATYPE_EXT :: GLenum+gl_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED+gl_MAX_GEOMETRY_INPUT_COMPONENTS_EXT :: GLenum+gl_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = 0x9123+gl_LOWER_LEFT :: GLenum+gl_LOWER_LEFT = 0x8CA1+gl_RENDERBUFFER_HEIGHT_OES :: GLenum+gl_RENDERBUFFER_HEIGHT_OES = 0x8D43+gl_SPRITE_MODE_SGIX :: GLenum+gl_SPRITE_MODE_SGIX = 0x8149+gl_REPLACEMENT_CODE_ARRAY_TYPE_SUN :: GLenum+gl_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1+gl_UNSIGNED_INT8_VEC2_NV :: GLenum+gl_UNSIGNED_INT8_VEC2_NV = 0x8FED+gl_NONE_OES :: GLenum+gl_NONE_OES = 0+gl_POINT_SIZE_MIN_ARB :: GLenum+gl_POINT_SIZE_MIN_ARB = 0x8126+gl_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV :: GLenum+gl_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = 0x8E5D+gl_RENDERBUFFER_DEPTH_SIZE_EXT :: GLenum+gl_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54+gl_BUFFER_MAP_LENGTH :: GLenum+gl_BUFFER_MAP_LENGTH = 0x9120+gl_WRITE_ONLY :: GLenum+gl_WRITE_ONLY = 0x88B9+gl_NEAREST_CLIPMAP_NEAREST_SGIX :: GLenum+gl_NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D+gl_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV :: GLenum+gl_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10+gl_ALREADY_SIGNALED_APPLE :: GLenum+gl_ALREADY_SIGNALED_APPLE = 0x911A+gl_REPLICATE_BORDER :: GLenum+gl_REPLICATE_BORDER = 0x8153+gl_SUBPIXEL_BITS :: GLenum+gl_SUBPIXEL_BITS = 0x0D50+gl_ALPHA_MIN_SGIX :: GLenum+gl_ALPHA_MIN_SGIX = 0x8320+gl_BLUE_BIT_ATI :: GLenum+gl_BLUE_BIT_ATI = 0x00000004+gl_UNSIGNED_INT_IMAGE_2D_EXT :: GLenum+gl_UNSIGNED_INT_IMAGE_2D_EXT = 0x9063+gl_TRANSFORM_FEEDBACK_VARYINGS_EXT :: GLenum+gl_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83+gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT :: GLenum+gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73+gl_PIXEL_COUNTER_BITS_NV :: GLenum+gl_PIXEL_COUNTER_BITS_NV = 0x8864+gl_422_REV_AVERAGE_EXT :: GLenum+gl_422_REV_AVERAGE_EXT = 0x80CF+gl_TEXTURE_RESIDENT_EXT :: GLenum+gl_TEXTURE_RESIDENT_EXT = 0x8067+gl_STENCIL_WRITEMASK :: GLenum+gl_STENCIL_WRITEMASK = 0x0B98+gl_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES :: GLenum+gl_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43+gl_FLOAT_VEC3_ARB :: GLenum+gl_FLOAT_VEC3_ARB = 0x8B51+gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM :: GLenum+gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D+gl_DYNAMIC_STORAGE_BIT :: GLenum+gl_DYNAMIC_STORAGE_BIT = 0x0100+gl_DRAW_FRAMEBUFFER_BINDING_APPLE :: GLenum+gl_DRAW_FRAMEBUFFER_BINDING_APPLE = 0x8CA6+gl_CLIP_PLANE4_IMG :: GLenum+gl_CLIP_PLANE4_IMG = 0x3004+gl_CON_26_ATI :: GLenum+gl_CON_26_ATI = 0x895B+gl_COMPRESSED_SIGNED_R11_EAC_OES :: GLenum+gl_COMPRESSED_SIGNED_R11_EAC_OES = 0x9271+gl_LINES_ADJACENCY_EXT :: GLenum+gl_LINES_ADJACENCY_EXT = 0x000A+gl_AUTO_GENERATE_MIPMAP :: GLenum+gl_AUTO_GENERATE_MIPMAP = 0x8295+gl_OP_EXP_BASE_2_EXT :: GLenum+gl_OP_EXP_BASE_2_EXT = 0x8791+gl_ATTRIB_STACK_DEPTH :: GLenum+gl_ATTRIB_STACK_DEPTH = 0x0BB0+gl_ALPHA32F_EXT :: GLenum+gl_ALPHA32F_EXT = 0x8816+gl_KEEP :: GLenum+gl_KEEP = 0x1E00+gl_TEXTURE_FILTER4_SIZE_SGIS :: GLenum+gl_TEXTURE_FILTER4_SIZE_SGIS = 0x8147+gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT :: GLenum+gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A+gl_INT_VEC3 :: GLenum+gl_INT_VEC3 = 0x8B54+gl_MATRIX_MODE :: GLenum+gl_MATRIX_MODE = 0x0BA0+gl_UNSIGNED_NORMALIZED :: GLenum+gl_UNSIGNED_NORMALIZED = 0x8C17+gl_DEBUG_PRINT_MESA :: GLenum+gl_DEBUG_PRINT_MESA = 0x875A+gl_DST_OUT_NV :: GLenum+gl_DST_OUT_NV = 0x928D+gl_CLEAR_BUFFER :: GLenum+gl_CLEAR_BUFFER = 0x82B4+gl_COMBINER_SCALE_NV :: GLenum+gl_COMBINER_SCALE_NV = 0x8548+gl_WRITE_ONLY_OES :: GLenum+gl_WRITE_ONLY_OES = 0x88B9+gl_422_AVERAGE_EXT :: GLenum+gl_422_AVERAGE_EXT = 0x80CE+gl_COLOR_INDEX12_EXT :: GLenum+gl_COLOR_INDEX12_EXT = 0x80E6+gl_COLOR_BUFFER_BIT0_QCOM :: GLenum+gl_COLOR_BUFFER_BIT0_QCOM = 0x00000001+gl_CAVEAT_SUPPORT :: GLenum+gl_CAVEAT_SUPPORT = 0x82B8+gl_BLUE_INTEGER :: GLenum+gl_BLUE_INTEGER = 0x8D96+gl_IUI_N3F_V2F_EXT :: GLenum+gl_IUI_N3F_V2F_EXT = 0x81AF+gl_VERTEX_DATA_HINT_PGI :: GLenum+gl_VERTEX_DATA_HINT_PGI = 0x1A22A+gl_REG_13_ATI :: GLenum+gl_REG_13_ATI = 0x892E+gl_NEGATIVE_ONE_EXT :: GLenum+gl_NEGATIVE_ONE_EXT = 0x87DF+gl_CON_16_ATI :: GLenum+gl_CON_16_ATI = 0x8951+gl_TEXTURE_EXTERNAL_OES :: GLenum+gl_TEXTURE_EXTERNAL_OES = 0x8D65+gl_SHADER_TYPE :: GLenum+gl_SHADER_TYPE = 0x8B4F+gl_OVERLAY_KHR :: GLenum+gl_OVERLAY_KHR = 0x9296+gl_LUMINANCE6_ALPHA2_EXT :: GLenum+gl_LUMINANCE6_ALPHA2_EXT = 0x8044+gl_COLOR_TABLE_SGI :: GLenum+gl_COLOR_TABLE_SGI = 0x80D0+gl_TEXTURE_STENCIL_SIZE_EXT :: GLenum+gl_TEXTURE_STENCIL_SIZE_EXT = 0x88F1+gl_NEAREST :: GLenum+gl_NEAREST = 0x2600+gl_RGB8I :: GLenum+gl_RGB8I = 0x8D8F+gl_TEXTURE_SPARSE_ARB :: GLenum+gl_TEXTURE_SPARSE_ARB = 0x91A6+gl_MATRIX9_ARB :: GLenum+gl_MATRIX9_ARB = 0x88C9+gl_TEXTURE_TARGET :: GLenum+gl_TEXTURE_TARGET = 0x1006+gl_SECONDARY_COLOR_ARRAY_TYPE_EXT :: GLenum+gl_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B+gl_RENDERER :: GLenum+gl_RENDERER = 0x1F01+gl_TEXTURE_BINDING_BUFFER :: GLenum+gl_TEXTURE_BINDING_BUFFER = 0x8C2C+gl_INT_VEC3_ARB :: GLenum+gl_INT_VEC3_ARB = 0x8B54+gl_MATRIX12_ARB :: GLenum+gl_MATRIX12_ARB = 0x88CC+gl_VERTEX_ATTRIB_ARRAY_ENABLED :: GLenum+gl_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622+gl_RENDERBUFFER_SAMPLES_NV :: GLenum+gl_RENDERBUFFER_SAMPLES_NV = 0x8CAB+gl_COLOR_ATTACHMENT1_EXT :: GLenum+gl_COLOR_ATTACHMENT1_EXT = 0x8CE1+gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211+gl_LINEAR_DETAIL_SGIS :: GLenum+gl_LINEAR_DETAIL_SGIS = 0x8097+gl_CURRENT_RASTER_POSITION_VALID :: GLenum+gl_CURRENT_RASTER_POSITION_VALID = 0x0B08+gl_LINEAR_DETAIL_COLOR_SGIS :: GLenum+gl_LINEAR_DETAIL_COLOR_SGIS = 0x8099+gl_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT :: GLenum+gl_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = 0x8A54+gl_POINT_SIZE_MIN_EXT :: GLenum+gl_POINT_SIZE_MIN_EXT = 0x8126+gl_GPU_DISJOINT_EXT :: GLenum+gl_GPU_DISJOINT_EXT = 0x8FBB+gl_LIGHT_MODEL_COLOR_CONTROL :: GLenum+gl_LIGHT_MODEL_COLOR_CONTROL = 0x81F8+gl_MAX_TESS_PATCH_COMPONENTS :: GLenum+gl_MAX_TESS_PATCH_COMPONENTS = 0x8E84+gl_CURRENT_PALETTE_MATRIX_OES :: GLenum+gl_CURRENT_PALETTE_MATRIX_OES = 0x8843+gl_SAMPLES_SGIS :: GLenum+gl_SAMPLES_SGIS = 0x80A9+gl_FUNC_REVERSE_SUBTRACT_OES :: GLenum+gl_FUNC_REVERSE_SUBTRACT_OES = 0x800B+gl_TEXTURE13_ARB :: GLenum+gl_TEXTURE13_ARB = 0x84CD+gl_SMOOTH_CUBIC_CURVE_TO_NV :: GLenum+gl_SMOOTH_CUBIC_CURVE_TO_NV = 0x10+gl_COMPRESSED_RGBA_ASTC_3x3x3_OES :: GLenum+gl_COMPRESSED_RGBA_ASTC_3x3x3_OES = 0x93C0+gl_MODELVIEW15_ARB :: GLenum+gl_MODELVIEW15_ARB = 0x872F+gl_EYE_PLANE_ABSOLUTE_NV :: GLenum+gl_EYE_PLANE_ABSOLUTE_NV = 0x855C+gl_READ_FRAMEBUFFER_BINDING_NV :: GLenum+gl_READ_FRAMEBUFFER_BINDING_NV = 0x8CAA+gl_RENDERBUFFER_RED_SIZE :: GLenum+gl_RENDERBUFFER_RED_SIZE = 0x8D50+gl_PIXEL_PACK_BUFFER_BINDING_EXT :: GLenum+gl_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED+gl_MAX_RENDERBUFFER_SIZE :: GLenum+gl_MAX_RENDERBUFFER_SIZE = 0x84E8+gl_DOUBLE_MAT4_EXT :: GLenum+gl_DOUBLE_MAT4_EXT = 0x8F48+gl_COMPRESSED_R11_EAC :: GLenum+gl_COMPRESSED_R11_EAC = 0x9270+gl_INT_IMAGE_2D_RECT :: GLenum+gl_INT_IMAGE_2D_RECT = 0x905A+gl_MAD_ATI :: GLenum+gl_MAD_ATI = 0x8968+gl_IMAGE_CLASS_4_X_32 :: GLenum+gl_IMAGE_CLASS_4_X_32 = 0x82B9+gl_VIDEO_COLOR_CONVERSION_OFFSET_NV :: GLenum+gl_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C+gl_BOOL_VEC4 :: GLenum+gl_BOOL_VEC4 = 0x8B59+gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D+gl_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES :: GLenum+gl_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = 0x8E5D+gl_HISTOGRAM_FORMAT_EXT :: GLenum+gl_HISTOGRAM_FORMAT_EXT = 0x8027+gl_UNSIGNED_INT_8_8_8_8_REV_EXT :: GLenum+gl_UNSIGNED_INT_8_8_8_8_REV_EXT = 0x8367+gl_R1UI_C3F_V3F_SUN :: GLenum+gl_R1UI_C3F_V3F_SUN = 0x85C6+gl_SAMPLER_1D_ARRAY_SHADOW_EXT :: GLenum+gl_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3+gl_TEXTURE_BINDING_2D_ARRAY :: GLenum+gl_TEXTURE_BINDING_2D_ARRAY = 0x8C1D+gl_TEXTURE_RANGE_POINTER_APPLE :: GLenum+gl_TEXTURE_RANGE_POINTER_APPLE = 0x85B8+gl_SMALL_CCW_ARC_TO_NV :: GLenum+gl_SMALL_CCW_ARC_TO_NV = 0x12+gl_SHADER_COMPILER :: GLenum+gl_SHADER_COMPILER = 0x8DFA+gl_DEPTH_COMPONENT24_ARB :: GLenum+gl_DEPTH_COMPONENT24_ARB = 0x81A6+gl_COLOR_ATTACHMENT14_NV :: GLenum+gl_COLOR_ATTACHMENT14_NV = 0x8CEE+gl_TIME_ELAPSED :: GLenum+gl_TIME_ELAPSED = 0x88BF+gl_FRAMEBUFFER_DEFAULT_LAYERS_EXT :: GLenum+gl_FRAMEBUFFER_DEFAULT_LAYERS_EXT = 0x9312+gl_MATRIX11_ARB :: GLenum+gl_MATRIX11_ARB = 0x88CB+gl_XOR :: GLenum+gl_XOR = 0x1506+gl_HSL_SATURATION_KHR :: GLenum+gl_HSL_SATURATION_KHR = 0x92AE+gl_R1UI_T2F_V3F_SUN :: GLenum+gl_R1UI_T2F_V3F_SUN = 0x85C9+gl_COMPUTE_WORK_GROUP_SIZE :: GLenum+gl_COMPUTE_WORK_GROUP_SIZE = 0x8267+gl_BLEND_EQUATION_EXT :: GLenum+gl_BLEND_EQUATION_EXT = 0x8009+gl_SAMPLER :: GLenum+gl_SAMPLER = 0x82E6+gl_NUM_FRAGMENT_REGISTERS_ATI :: GLenum+gl_NUM_FRAGMENT_REGISTERS_ATI = 0x896E+gl_REG_5_ATI :: GLenum+gl_REG_5_ATI = 0x8926+gl_DSDT8_MAG8_INTENSITY8_NV :: GLenum+gl_DSDT8_MAG8_INTENSITY8_NV = 0x870B+gl_PIXEL_MAP_S_TO_S_SIZE :: GLenum+gl_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1+gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7+gl_OR_REVERSE :: GLenum+gl_OR_REVERSE = 0x150B+gl_QUERY_BUFFER_BARRIER_BIT :: GLenum+gl_QUERY_BUFFER_BARRIER_BIT = 0x00008000+gl_TRANSFORM_FEEDBACK_BUFFER_BINDING :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F+gl_SAMPLER_1D :: GLenum+gl_SAMPLER_1D = 0x8B5D+gl_COLOR_TABLE_INTENSITY_SIZE :: GLenum+gl_COLOR_TABLE_INTENSITY_SIZE = 0x80DF+gl_TRIANGLE_FAN :: GLenum+gl_TRIANGLE_FAN = 0x0006+gl_POINT_SIZE_MAX_SGIS :: GLenum+gl_POINT_SIZE_MAX_SGIS = 0x8127+gl_ELEMENT_ARRAY_POINTER_ATI :: GLenum+gl_ELEMENT_ARRAY_POINTER_ATI = 0x876A+gl_INT_IMAGE_1D_EXT :: GLenum+gl_INT_IMAGE_1D_EXT = 0x9057+gl_CONVOLUTION_FILTER_SCALE_EXT :: GLenum+gl_CONVOLUTION_FILTER_SCALE_EXT = 0x8014+gl_EVAL_VERTEX_ATTRIB8_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB8_NV = 0x86CE+gl_DYNAMIC_COPY_ARB :: GLenum+gl_DYNAMIC_COPY_ARB = 0x88EA+gl_REG_12_ATI :: GLenum+gl_REG_12_ATI = 0x892D+gl_SIGNED_NORMALIZED :: GLenum+gl_SIGNED_NORMALIZED = 0x8F9C+gl_REG_8_ATI :: GLenum+gl_REG_8_ATI = 0x8929+gl_SAMPLE_COVERAGE_ARB :: GLenum+gl_SAMPLE_COVERAGE_ARB = 0x80A0+gl_ALLOW_DRAW_MEM_HINT_PGI :: GLenum+gl_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211+gl_INTENSITY16F_ARB :: GLenum+gl_INTENSITY16F_ARB = 0x881D+gl_PATH_FORMAT_PS_NV :: GLenum+gl_PATH_FORMAT_PS_NV = 0x9071+gl_TEXTURE_FREE_MEMORY_ATI :: GLenum+gl_TEXTURE_FREE_MEMORY_ATI = 0x87FC+gl_SYNC_FENCE :: GLenum+gl_SYNC_FENCE = 0x9116+gl_WRITE_ONLY_ARB :: GLenum+gl_WRITE_ONLY_ARB = 0x88B9+gl_INVERT :: GLenum+gl_INVERT = 0x150A+gl_TRANSLATE_Y_NV :: GLenum+gl_TRANSLATE_Y_NV = 0x908F+gl_SAMPLER_3D :: GLenum+gl_SAMPLER_3D = 0x8B5F+gl_LINE_STRIP_ADJACENCY :: GLenum+gl_LINE_STRIP_ADJACENCY = 0x000B+gl_OPERAND2_RGB_EXT :: GLenum+gl_OPERAND2_RGB_EXT = 0x8592+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = 0x9134+gl_COLOR_ARRAY_ADDRESS_NV :: GLenum+gl_COLOR_ARRAY_ADDRESS_NV = 0x8F23+gl_POST_CONVOLUTION_BLUE_SCALE_EXT :: GLenum+gl_POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E+gl_HIGH_FLOAT :: GLenum+gl_HIGH_FLOAT = 0x8DF2+gl_TESS_GEN_MODE_EXT :: GLenum+gl_TESS_GEN_MODE_EXT = 0x8E76+gl_DOT_PRODUCT_TEXTURE_RECTANGLE_NV :: GLenum+gl_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E+gl_MAX_LABEL_LENGTH :: GLenum+gl_MAX_LABEL_LENGTH = 0x82E8+gl_QUERY_BY_REGION_NO_WAIT :: GLenum+gl_QUERY_BY_REGION_NO_WAIT = 0x8E16+gl_OP_RECIP_EXT :: GLenum+gl_OP_RECIP_EXT = 0x8794+gl_PROXY_TEXTURE_2D_ARRAY :: GLenum+gl_PROXY_TEXTURE_2D_ARRAY = 0x8C1B+gl_COMPRESSED_RGBA_FXT1_3DFX :: GLenum+gl_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1+gl_PRIMITIVES_GENERATED :: GLenum+gl_PRIMITIVES_GENERATED = 0x8C87+gl_TEXTURE26_ARB :: GLenum+gl_TEXTURE26_ARB = 0x84DA+gl_TESS_EVALUATION_TEXTURE :: GLenum+gl_TESS_EVALUATION_TEXTURE = 0x829D+gl_TEXTURE1 :: GLenum+gl_TEXTURE1 = 0x84C1+gl_TRANSFORM_FEEDBACK_RECORD_NV :: GLenum+gl_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86+gl_DRAW_FRAMEBUFFER_NV :: GLenum+gl_DRAW_FRAMEBUFFER_NV = 0x8CA9+gl_MODELVIEW8_ARB :: GLenum+gl_MODELVIEW8_ARB = 0x8728+gl_UNSIGNED_INT_SAMPLER_BUFFER :: GLenum+gl_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8+gl_CONVOLUTION_1D :: GLenum+gl_CONVOLUTION_1D = 0x8010+gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23+gl_SAMPLER_1D_ARRAY :: GLenum+gl_SAMPLER_1D_ARRAY = 0x8DC0+gl_TRANSFORM_FEEDBACK_BINDING :: GLenum+gl_TRANSFORM_FEEDBACK_BINDING = 0x8E25+gl_LIGHTING_BIT :: GLenum+gl_LIGHTING_BIT = 0x00000040+gl_R1UI_C4F_N3F_V3F_SUN :: GLenum+gl_R1UI_C4F_N3F_V3F_SUN = 0x85C8+gl_TEXTURE_RED_SIZE_EXT :: GLenum+gl_TEXTURE_RED_SIZE_EXT = 0x805C+gl_VERTEX_ARRAY_KHR :: GLenum+gl_VERTEX_ARRAY_KHR = 0x8074+gl_ALPHA_BITS :: GLenum+gl_ALPHA_BITS = 0x0D55+gl_MAX_VERTEX_SHADER_INVARIANTS_EXT :: GLenum+gl_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7+gl_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS :: GLenum+gl_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31+gl_SAMPLE_MASK_INVERT_EXT :: GLenum+gl_SAMPLE_MASK_INVERT_EXT = 0x80AB+gl_TRANSPOSE_PROGRAM_MATRIX_EXT :: GLenum+gl_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E+gl_ABGR_EXT :: GLenum+gl_ABGR_EXT = 0x8000+gl_MULTISAMPLE_BIT_3DFX :: GLenum+gl_MULTISAMPLE_BIT_3DFX = 0x20000000+gl_MATRIX0_NV :: GLenum+gl_MATRIX0_NV = 0x8630+gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210+gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG :: GLenum+gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = 0x93F0+gl_RGB9_E5 :: GLenum+gl_RGB9_E5 = 0x8C3D+gl_IMAGE_2D_MULTISAMPLE_ARRAY :: GLenum+gl_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056+gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212+gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F+gl_GEOMETRY_PROGRAM_NV :: GLenum+gl_GEOMETRY_PROGRAM_NV = 0x8C26+gl_RGB10_EXT :: GLenum+gl_RGB10_EXT = 0x8052+gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT :: GLenum+gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F+gl_ALWAYS_SOFT_HINT_PGI :: GLenum+gl_ALWAYS_SOFT_HINT_PGI = 0x1A20D+gl_WEIGHT_ARRAY_BUFFER_BINDING :: GLenum+gl_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E+gl_BLEND_DST_ALPHA_OES :: GLenum+gl_BLEND_DST_ALPHA_OES = 0x80CA+gl_UNIFORM_BUFFER_BINDING_EXT :: GLenum+gl_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF+gl_CONTINUOUS_AMD :: GLenum+gl_CONTINUOUS_AMD = 0x9007+gl_STENCIL_BUFFER_BIT4_QCOM :: GLenum+gl_STENCIL_BUFFER_BIT4_QCOM = 0x00100000+gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV :: GLenum+gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88+gl_TESS_EVALUATION_SHADER_BIT :: GLenum+gl_TESS_EVALUATION_SHADER_BIT = 0x00000010+gl_TEXTURE_COORD_ARRAY_EXT :: GLenum+gl_TEXTURE_COORD_ARRAY_EXT = 0x8078+gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET :: GLenum+gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F+gl_PROGRAM_INSTRUCTIONS_ARB :: GLenum+gl_PROGRAM_INSTRUCTIONS_ARB = 0x88A0+gl_PROXY_TEXTURE_3D :: GLenum+gl_PROXY_TEXTURE_3D = 0x8070+gl_CLIP_PLANE0 :: GLenum+gl_CLIP_PLANE0 = 0x3000+gl_CURRENT_QUERY_EXT :: GLenum+gl_CURRENT_QUERY_EXT = 0x8865+gl_T4F_C4F_N3F_V4F :: GLenum+gl_T4F_C4F_N3F_V4F = 0x2A2D+gl_ADD :: GLenum+gl_ADD = 0x0104+gl_STENCIL_EXT :: GLenum+gl_STENCIL_EXT = 0x1802+gl_TEXTURE_BLUE_TYPE :: GLenum+gl_TEXTURE_BLUE_TYPE = 0x8C12+gl_OUTPUT_TEXTURE_COORD8_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5+gl_OBJECT_TYPE_ARB :: GLenum+gl_OBJECT_TYPE_ARB = 0x8B4E+gl_RESET_NOTIFICATION_STRATEGY :: GLenum+gl_RESET_NOTIFICATION_STRATEGY = 0x8256+gl_UNSIGNED_INT_VEC2_EXT :: GLenum+gl_UNSIGNED_INT_VEC2_EXT = 0x8DC6+gl_DRAW_BUFFER6_NV :: GLenum+gl_DRAW_BUFFER6_NV = 0x882B+gl_ASYNC_DRAW_PIXELS_SGIX :: GLenum+gl_ASYNC_DRAW_PIXELS_SGIX = 0x835D+gl_INTERNALFORMAT_GREEN_SIZE :: GLenum+gl_INTERNALFORMAT_GREEN_SIZE = 0x8272+gl_TEXTURE_GREEN_SIZE :: GLenum+gl_TEXTURE_GREEN_SIZE = 0x805D+gl_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL :: GLenum+gl_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE+gl_VIRTUAL_PAGE_SIZE_Y_AMD :: GLenum+gl_VIRTUAL_PAGE_SIZE_Y_AMD = 0x9196+gl_OP_MUL_EXT :: GLenum+gl_OP_MUL_EXT = 0x8786+gl_NORMAL_MAP :: GLenum+gl_NORMAL_MAP = 0x8511+gl_ALPHA16_EXT :: GLenum+gl_ALPHA16_EXT = 0x803E+gl_POINT_SIZE :: GLenum+gl_POINT_SIZE = 0x0B11+gl_INTERNALFORMAT_SUPPORTED :: GLenum+gl_INTERNALFORMAT_SUPPORTED = 0x826F+gl_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT :: GLenum+gl_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7+gl_DEBUG_SEVERITY_HIGH_ARB :: GLenum+gl_DEBUG_SEVERITY_HIGH_ARB = 0x9146+gl_TEXTURE_MAX_LEVEL_SGIS :: GLenum+gl_TEXTURE_MAX_LEVEL_SGIS = 0x813D+gl_SHADING_LANGUAGE_VERSION_ARB :: GLenum+gl_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C+gl_STANDARD_FONT_FORMAT_NV :: GLenum+gl_STANDARD_FONT_FORMAT_NV = 0x936C+gl_VERTEX_WEIGHT_ARRAY_SIZE_EXT :: GLenum+gl_VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D+gl_IR_INSTRUMENT1_SGIX :: GLenum+gl_IR_INSTRUMENT1_SGIX = 0x817F+gl_SIGNED_HILO8_NV :: GLenum+gl_SIGNED_HILO8_NV = 0x885F+gl_RENDERBUFFER_GREEN_SIZE_OES :: GLenum+gl_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51+gl_REG_1_ATI :: GLenum+gl_REG_1_ATI = 0x8922+gl_CLAMP_TO_EDGE :: GLenum+gl_CLAMP_TO_EDGE = 0x812F+gl_GEOMETRY_SHADER_BIT :: GLenum+gl_GEOMETRY_SHADER_BIT = 0x00000004+gl_MODELVIEW7_ARB :: GLenum+gl_MODELVIEW7_ARB = 0x8727+gl_BUFFER_MAPPED_ARB :: GLenum+gl_BUFFER_MAPPED_ARB = 0x88BC+gl_DRAW_BUFFER12_EXT :: GLenum+gl_DRAW_BUFFER12_EXT = 0x8831+gl_RGB565_OES :: GLenum+gl_RGB565_OES = 0x8D62+gl_SHORT :: GLenum+gl_SHORT = 0x1402+gl_STENCIL_BACK_FAIL_ATI :: GLenum+gl_STENCIL_BACK_FAIL_ATI = 0x8801+gl_UNSIGNED_INT_IMAGE_2D_RECT_EXT :: GLenum+gl_UNSIGNED_INT_IMAGE_2D_RECT_EXT = 0x9065+gl_PATH_MAX_PROJECTION_STACK_DEPTH_NV :: GLenum+gl_PATH_MAX_PROJECTION_STACK_DEPTH_NV = 0x0D38+gl_CON_31_ATI :: GLenum+gl_CON_31_ATI = 0x8960+gl_RGB5 :: GLenum+gl_RGB5 = 0x8050+gl_SAMPLER_2D_RECT :: GLenum+gl_SAMPLER_2D_RECT = 0x8B63+gl_COMPRESSED_RGBA_ASTC_5x4x4_OES :: GLenum+gl_COMPRESSED_RGBA_ASTC_5x4x4_OES = 0x93C4+gl_PASS_THROUGH_TOKEN :: GLenum+gl_PASS_THROUGH_TOKEN = 0x0700+gl_RGBA_FLOAT32_ATI :: GLenum+gl_RGBA_FLOAT32_ATI = 0x8814+gl_TEXTURE_COLOR_WRITEMASK_SGIS :: GLenum+gl_TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF+gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS :: GLenum+gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F+gl_OUTPUT_TEXTURE_COORD23_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4+gl_YCBYCR8_422_NV :: GLenum+gl_YCBYCR8_422_NV = 0x9031+gl_SRC_NV :: GLenum+gl_SRC_NV = 0x9286+gl_MAX_EXT :: GLenum+gl_MAX_EXT = 0x8008+gl_UNPACK_COMPRESSED_BLOCK_DEPTH :: GLenum+gl_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129+gl_UNSIGNED_SHORT_5_5_5_1_EXT :: GLenum+gl_UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034+gl_IMAGE_3D :: GLenum+gl_IMAGE_3D = 0x904E+gl_DEPTH_BUFFER_BIT0_QCOM :: GLenum+gl_DEPTH_BUFFER_BIT0_QCOM = 0x00000100+gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS :: GLenum+gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A+gl_DECR_WRAP_OES :: GLenum+gl_DECR_WRAP_OES = 0x8508+gl_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV :: GLenum+gl_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A+gl_SPARSE_STORAGE_BIT_ARB :: GLenum+gl_SPARSE_STORAGE_BIT_ARB = 0x0400+gl_LAST_VIDEO_CAPTURE_STATUS_NV :: GLenum+gl_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027+gl_LAST_VERTEX_CONVENTION :: GLenum+gl_LAST_VERTEX_CONVENTION = 0x8E4E+gl_IDENTITY_NV :: GLenum+gl_IDENTITY_NV = 0x862A+gl_RETAINED_APPLE :: GLenum+gl_RETAINED_APPLE = 0x8A1B+gl_FLOAT_RGB32_NV :: GLenum+gl_FLOAT_RGB32_NV = 0x8889+gl_DRAW_BUFFER15_ARB :: GLenum+gl_DRAW_BUFFER15_ARB = 0x8834+gl_COLOR_EXT :: GLenum+gl_COLOR_EXT = 0x1800+gl_WEIGHT_ARRAY_TYPE_OES :: GLenum+gl_WEIGHT_ARRAY_TYPE_OES = 0x86A9+gl_DETAIL_TEXTURE_2D_BINDING_SGIS :: GLenum+gl_DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096+gl_BGRA8_EXT :: GLenum+gl_BGRA8_EXT = 0x93A1+gl_T2F_IUI_V3F_EXT :: GLenum+gl_T2F_IUI_V3F_EXT = 0x81B2+gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS :: GLenum+gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD+gl_VERTEX_ARRAY_LIST_IBM :: GLenum+gl_VERTEX_ARRAY_LIST_IBM = 103070+gl_INDEX_ARRAY_STRIDE_EXT :: GLenum+gl_INDEX_ARRAY_STRIDE_EXT = 0x8086+gl_SCALE_BY_ONE_HALF_NV :: GLenum+gl_SCALE_BY_ONE_HALF_NV = 0x8540+gl_PROXY_TEXTURE_4D_SGIS :: GLenum+gl_PROXY_TEXTURE_4D_SGIS = 0x8135+gl_HALF_FLOAT :: GLenum+gl_HALF_FLOAT = 0x140B+gl_FIELD_UPPER_NV :: GLenum+gl_FIELD_UPPER_NV = 0x9022+gl_OCCLUSION_QUERY_EVENT_MASK_AMD :: GLenum+gl_OCCLUSION_QUERY_EVENT_MASK_AMD = 0x874F+gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV :: GLenum+gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5B+gl_VERTEX_ATTRIB_ARRAY4_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY4_NV = 0x8654+gl_CONVOLUTION_BORDER_COLOR_HP :: GLenum+gl_CONVOLUTION_BORDER_COLOR_HP = 0x8154+gl_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT :: GLenum+gl_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52+gl_MODULATE :: GLenum+gl_MODULATE = 0x2100+gl_NO_RESET_NOTIFICATION_KHR :: GLenum+gl_NO_RESET_NOTIFICATION_KHR = 0x8261+gl_CURRENT_INDEX :: GLenum+gl_CURRENT_INDEX = 0x0B01+gl_RED_MAX_CLAMP_INGR :: GLenum+gl_RED_MAX_CLAMP_INGR = 0x8564+gl_SAMPLE_ALPHA_TO_MASK_EXT :: GLenum+gl_SAMPLE_ALPHA_TO_MASK_EXT = 0x809E+gl_DEBUG_CATEGORY_DEPRECATION_AMD :: GLenum+gl_DEBUG_CATEGORY_DEPRECATION_AMD = 0x914B+gl_EXP2 :: GLenum+gl_EXP2 = 0x0801+gl_HISTOGRAM :: GLenum+gl_HISTOGRAM = 0x8024+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB+gl_VERTEX_WEIGHT_ARRAY_POINTER_EXT :: GLenum+gl_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510+gl_READ_FRAMEBUFFER_BINDING_APPLE :: GLenum+gl_READ_FRAMEBUFFER_BINDING_APPLE = 0x8CAA+gl_COLOR_ATTACHMENT9 :: GLenum+gl_COLOR_ATTACHMENT9 = 0x8CE9+gl_PROXY_TEXTURE_CUBE_MAP_ARB :: GLenum+gl_PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B+gl_SIGNED_RGB8_NV :: GLenum+gl_SIGNED_RGB8_NV = 0x86FF+gl_TEXTURE_INTENSITY_SIZE :: GLenum+gl_TEXTURE_INTENSITY_SIZE = 0x8061+gl_TEXTURE_MAX_CLAMP_S_SGIX :: GLenum+gl_TEXTURE_MAX_CLAMP_S_SGIX = 0x8369+gl_PATH_TRANSPOSE_PROJECTION_MATRIX_NV :: GLenum+gl_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = 0x84E4+gl_BOUNDING_BOX_OF_BOUNDING_BOXES_NV :: GLenum+gl_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C+gl_TEXTURE_MAX_LOD_SGIS :: GLenum+gl_TEXTURE_MAX_LOD_SGIS = 0x813B+gl_LUMINANCE :: GLenum+gl_LUMINANCE = 0x1909+gl_FOG_COORD_ARRAY_BUFFER_BINDING :: GLenum+gl_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D+gl_OFFSET_TEXTURE_2D_BIAS_NV :: GLenum+gl_OFFSET_TEXTURE_2D_BIAS_NV = 0x86E3+gl_FEEDBACK :: GLenum+gl_FEEDBACK = 0x1C01+gl_MAGNITUDE_BIAS_NV :: GLenum+gl_MAGNITUDE_BIAS_NV = 0x8718+gl_POST_CONVOLUTION_ALPHA_SCALE :: GLenum+gl_POST_CONVOLUTION_ALPHA_SCALE = 0x801F+gl_PATH_TERMINAL_END_CAP_NV :: GLenum+gl_PATH_TERMINAL_END_CAP_NV = 0x9078+gl_GLYPH_HEIGHT_BIT_NV :: GLenum+gl_GLYPH_HEIGHT_BIT_NV = 0x02+gl_TEXTURE_STORAGE_HINT_APPLE :: GLenum+gl_TEXTURE_STORAGE_HINT_APPLE = 0x85BC+gl_MATRIX2_NV :: GLenum+gl_MATRIX2_NV = 0x8632+gl_RGB16I :: GLenum+gl_RGB16I = 0x8D89+gl_NUM_SHADER_BINARY_FORMATS :: GLenum+gl_NUM_SHADER_BINARY_FORMATS = 0x8DF9+gl_MULTISAMPLE_BUFFER_BIT7_QCOM :: GLenum+gl_MULTISAMPLE_BUFFER_BIT7_QCOM = 0x80000000+gl_SAMPLE_ALPHA_TO_ONE :: GLenum+gl_SAMPLE_ALPHA_TO_ONE = 0x809F+gl_CON_11_ATI :: GLenum+gl_CON_11_ATI = 0x894C+gl_MAP2_TEXTURE_COORD_1 :: GLenum+gl_MAP2_TEXTURE_COORD_1 = 0x0DB3+gl_DRAW_BUFFER14_ARB :: GLenum+gl_DRAW_BUFFER14_ARB = 0x8833+gl_SHARPEN_TEXTURE_FUNC_POINTS_SGIS :: GLenum+gl_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0+gl_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7+gl_FLOAT_RGBA_MODE_NV :: GLenum+gl_FLOAT_RGBA_MODE_NV = 0x888E+gl_VERTEX_ATTRIB_ARRAY9_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY9_NV = 0x8659+gl_ALPHA4 :: GLenum+gl_ALPHA4 = 0x803B+gl_EVAL_VERTEX_ATTRIB9_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB9_NV = 0x86CF+gl_VARIANT_ARRAY_POINTER_EXT :: GLenum+gl_VARIANT_ARRAY_POINTER_EXT = 0x87E9+gl_INDEX_TEST_EXT :: GLenum+gl_INDEX_TEST_EXT = 0x81B5+gl_MAX_RENDERBUFFER_SIZE_EXT :: GLenum+gl_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8+gl_MAP1_GRID_SEGMENTS :: GLenum+gl_MAP1_GRID_SEGMENTS = 0x0DD1+gl_DETAIL_TEXTURE_MODE_SGIS :: GLenum+gl_DETAIL_TEXTURE_MODE_SGIS = 0x809B+gl_LINEARBURN_NV :: GLenum+gl_LINEARBURN_NV = 0x92A5+gl_SOURCE2_ALPHA :: GLenum+gl_SOURCE2_ALPHA = 0x858A+gl_COLOR_ATTACHMENT9_EXT :: GLenum+gl_COLOR_ATTACHMENT9_EXT = 0x8CE9+gl_RENDERBUFFER_OES :: GLenum+gl_RENDERBUFFER_OES = 0x8D41+gl_RGBA8UI :: GLenum+gl_RGBA8UI = 0x8D7C+gl_MIPMAP :: GLenum+gl_MIPMAP = 0x8293+gl_SMOOTH_LINE_WIDTH_RANGE :: GLenum+gl_SMOOTH_LINE_WIDTH_RANGE = 0x0B22+gl_COMBINER7_NV :: GLenum+gl_COMBINER7_NV = 0x8557+gl_VIEW_CLASS_64_BITS :: GLenum+gl_VIEW_CLASS_64_BITS = 0x82C6+gl_SAMPLE_MASK_VALUE_SGIS :: GLenum+gl_SAMPLE_MASK_VALUE_SGIS = 0x80AA+gl_MAX_SHADER_STORAGE_BUFFER_BINDINGS :: GLenum+gl_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD+gl_ALPHA32UI_EXT :: GLenum+gl_ALPHA32UI_EXT = 0x8D72+gl_NONE :: GLenum+gl_NONE = 0+gl_MATRIX25_ARB :: GLenum+gl_MATRIX25_ARB = 0x88D9+gl_DUAL_LUMINANCE_ALPHA4_SGIS :: GLenum+gl_DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C+gl_PATCH_VERTICES :: GLenum+gl_PATCH_VERTICES = 0x8E72+gl_COLOR_MATERIAL_PARAMETER :: GLenum+gl_COLOR_MATERIAL_PARAMETER = 0x0B56+gl_NUM_PROGRAM_BINARY_FORMATS :: GLenum+gl_NUM_PROGRAM_BINARY_FORMATS = 0x87FE+gl_PACK_ROW_LENGTH :: GLenum+gl_PACK_ROW_LENGTH = 0x0D02+gl_RENDERBUFFER_BINDING_EXT :: GLenum+gl_RENDERBUFFER_BINDING_EXT = 0x8CA7+gl_FORMAT_SUBSAMPLE_24_24_OML :: GLenum+gl_FORMAT_SUBSAMPLE_24_24_OML = 0x8982+gl_RELATIVE_ROUNDED_RECT4_NV :: GLenum+gl_RELATIVE_ROUNDED_RECT4_NV = 0xED+gl_TEXTURE3 :: GLenum+gl_TEXTURE3 = 0x84C3+gl_DEPTH_COMPONENT16_SGIX :: GLenum+gl_DEPTH_COMPONENT16_SGIX = 0x81A5+gl_SAMPLER_2D_SHADOW_EXT :: GLenum+gl_SAMPLER_2D_SHADOW_EXT = 0x8B62+gl_MIN_MAP_BUFFER_ALIGNMENT :: GLenum+gl_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC+gl_PROXY_TEXTURE_2D_ARRAY_EXT :: GLenum+gl_PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B+gl_WEIGHT_ARRAY_TYPE_ARB :: GLenum+gl_WEIGHT_ARRAY_TYPE_ARB = 0x86A9+gl_LOW_INT :: GLenum+gl_LOW_INT = 0x8DF3+gl_DRAW_BUFFER11_ATI :: GLenum+gl_DRAW_BUFFER11_ATI = 0x8830+gl_MAX_ELEMENTS_VERTICES_EXT :: GLenum+gl_MAX_ELEMENTS_VERTICES_EXT = 0x80E8+gl_COMPRESSED_RED_RGTC1_EXT :: GLenum+gl_COMPRESSED_RED_RGTC1_EXT = 0x8DBB+gl_RGBA :: GLenum+gl_RGBA = 0x1908+gl_DRAW_BUFFER0_ARB :: GLenum+gl_DRAW_BUFFER0_ARB = 0x8825+gl_TEXTURE_RED_TYPE :: GLenum+gl_TEXTURE_RED_TYPE = 0x8C10+gl_FENCE_APPLE :: GLenum+gl_FENCE_APPLE = 0x8A0B+gl_MAX_CONVOLUTION_WIDTH_EXT :: GLenum+gl_MAX_CONVOLUTION_WIDTH_EXT = 0x801A+gl_UNSIGNED_INVERT_NV :: GLenum+gl_UNSIGNED_INVERT_NV = 0x8537+gl_LIGHT6 :: GLenum+gl_LIGHT6 = 0x4006+gl_STREAM_COPY :: GLenum+gl_STREAM_COPY = 0x88E2+gl_INSTRUMENT_BUFFER_POINTER_SGIX :: GLenum+gl_INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180+gl_MODELVIEW :: GLenum+gl_MODELVIEW = 0x1700+gl_RGB32F :: GLenum+gl_RGB32F = 0x8815+gl_MAP_COLOR :: GLenum+gl_MAP_COLOR = 0x0D10+gl_COLOR_TABLE_INTENSITY_SIZE_SGI :: GLenum+gl_COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF+gl_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV :: GLenum+gl_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV = 0x90D0+gl_LAYER_PROVOKING_VERTEX_EXT :: GLenum+gl_LAYER_PROVOKING_VERTEX_EXT = 0x825E+gl_COMPRESSED_RGBA_ASTC_6x5x5_OES :: GLenum+gl_COMPRESSED_RGBA_ASTC_6x5x5_OES = 0x93C7+gl_FOG_BIT :: GLenum+gl_FOG_BIT = 0x00000080+gl_NATIVE_GRAPHICS_HANDLE_PGI :: GLenum+gl_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT :: GLenum+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B+gl_MAX_COMPUTE_SHARED_MEMORY_SIZE :: GLenum+gl_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262+gl_STENCIL_INDEX1_EXT :: GLenum+gl_STENCIL_INDEX1_EXT = 0x8D46+gl_COLOR_ATTACHMENT2_NV :: GLenum+gl_COLOR_ATTACHMENT2_NV = 0x8CE2+gl_DRAW_BUFFER5_ARB :: GLenum+gl_DRAW_BUFFER5_ARB = 0x882A+gl_TEXTURE_OBJECT_VALID_QCOM :: GLenum+gl_TEXTURE_OBJECT_VALID_QCOM = 0x8BDB+gl_PHONG_HINT_WIN :: GLenum+gl_PHONG_HINT_WIN = 0x80EB+gl_MAP1_VERTEX_ATTRIB0_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660+gl_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX :: GLenum+gl_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX = 0x9047+gl_COLOR_TABLE_WIDTH :: GLenum+gl_COLOR_TABLE_WIDTH = 0x80D9+gl_INT_IMAGE_1D_ARRAY :: GLenum+gl_INT_IMAGE_1D_ARRAY = 0x905D+gl_BUFFER_MAPPED :: GLenum+gl_BUFFER_MAPPED = 0x88BC+gl_TEXTURE_SWIZZLE_R :: GLenum+gl_TEXTURE_SWIZZLE_R = 0x8E42+gl_COLOR_ATTACHMENT9_NV :: GLenum+gl_COLOR_ATTACHMENT9_NV = 0x8CE9+gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER :: GLenum+gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0+gl_LUMINANCE16_ALPHA16 :: GLenum+gl_LUMINANCE16_ALPHA16 = 0x8048+gl_PERFQUERY_GLOBAL_CONTEXT_INTEL :: GLenum+gl_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001+gl_POINT_FADE_THRESHOLD_SIZE_EXT :: GLenum+gl_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128+gl_BLEND_EQUATION_OES :: GLenum+gl_BLEND_EQUATION_OES = 0x8009+gl_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES :: GLenum+gl_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E+gl_TEXTURE_BINDING_2D_ARRAY_EXT :: GLenum+gl_TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D+gl_CON_7_ATI :: GLenum+gl_CON_7_ATI = 0x8948+gl_DUAL_LUMINANCE16_SGIS :: GLenum+gl_DUAL_LUMINANCE16_SGIS = 0x8117+gl_RASTER_POSITION_UNCLIPPED_IBM :: GLenum+gl_RASTER_POSITION_UNCLIPPED_IBM = 0x19262+gl_ALLOW_DRAW_FRG_HINT_PGI :: GLenum+gl_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210+gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT :: GLenum+gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = 0x8F39+gl_TEXTURE_COORD_ARRAY :: GLenum+gl_TEXTURE_COORD_ARRAY = 0x8078+gl_MAX_DEBUG_LOGGED_MESSAGES_KHR :: GLenum+gl_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144+gl_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_ARRAY_BUFFER_BINDING_ARB = 0x8894+gl_PIXEL_TEXTURE_SGIS :: GLenum+gl_PIXEL_TEXTURE_SGIS = 0x8353+gl_STENCIL_INDEX8 :: GLenum+gl_STENCIL_INDEX8 = 0x8D48+gl_IMAGE_CLASS_10_10_10_2 :: GLenum+gl_IMAGE_CLASS_10_10_10_2 = 0x82C3+gl_DRAW_INDIRECT_LENGTH_NV :: GLenum+gl_DRAW_INDIRECT_LENGTH_NV = 0x8F42+gl_DEBUG_CALLBACK_FUNCTION_ARB :: GLenum+gl_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244+gl_INT_SAMPLER_2D_ARRAY :: GLenum+gl_INT_SAMPLER_2D_ARRAY = 0x8DCF+gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB :: GLenum+gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3+gl_GENERIC_ATTRIB_NV :: GLenum+gl_GENERIC_ATTRIB_NV = 0x8C7D+gl_TEXTURE_RED_TYPE_ARB :: GLenum+gl_TEXTURE_RED_TYPE_ARB = 0x8C10+gl_MAX_VERTEX_UNITS_ARB :: GLenum+gl_MAX_VERTEX_UNITS_ARB = 0x86A4+gl_DEPTH_BIAS :: GLenum+gl_DEPTH_BIAS = 0x0D1F+gl_SRGB :: GLenum+gl_SRGB = 0x8C40+gl_TEXTURE_COORD_ARRAY_TYPE :: GLenum+gl_TEXTURE_COORD_ARRAY_TYPE = 0x8089+gl_TRANSFORM_FEEDBACK_BUFFER_START_EXT :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84+gl_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV :: GLenum+gl_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = 0x8F44+gl_CURRENT_TIME_NV :: GLenum+gl_CURRENT_TIME_NV = 0x8E28+gl_TEXTURE_DEPTH_SIZE :: GLenum+gl_TEXTURE_DEPTH_SIZE = 0x884A+gl_INDEX_ARRAY_LIST_STRIDE_IBM :: GLenum+gl_INDEX_ARRAY_LIST_STRIDE_IBM = 103083+gl_CLIP_PLANE1_IMG :: GLenum+gl_CLIP_PLANE1_IMG = 0x3001+gl_CULL_VERTEX_EYE_POSITION_EXT :: GLenum+gl_CULL_VERTEX_EYE_POSITION_EXT = 0x81AB+gl_COPY_READ_BUFFER_NV :: GLenum+gl_COPY_READ_BUFFER_NV = 0x8F36+gl_CONTEXT_CORE_PROFILE_BIT :: GLenum+gl_CONTEXT_CORE_PROFILE_BIT = 0x00000001+gl_ARC_TO_NV :: GLenum+gl_ARC_TO_NV = 0xFE+gl_PACK_COMPRESSED_BLOCK_SIZE :: GLenum+gl_PACK_COMPRESSED_BLOCK_SIZE = 0x912E+gl_TRACE_NAME_MESA :: GLenum+gl_TRACE_NAME_MESA = 0x8756+gl_TEXTURE_CROP_RECT_OES :: GLenum+gl_TEXTURE_CROP_RECT_OES = 0x8B9D+gl_MAP2_VERTEX_ATTRIB15_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F+gl_DRAW_INDIRECT_UNIFIED_NV :: GLenum+gl_DRAW_INDIRECT_UNIFIED_NV = 0x8F40+gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS :: GLenum+gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC+gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS :: GLenum+gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D+gl_CULL_FACE_MODE :: GLenum+gl_CULL_FACE_MODE = 0x0B45+gl_LUMINANCE_ALPHA_INTEGER_EXT :: GLenum+gl_LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D+gl_SURFACE_MAPPED_NV :: GLenum+gl_SURFACE_MAPPED_NV = 0x8700+gl_FOG_COORD_ARRAY_LENGTH_NV :: GLenum+gl_FOG_COORD_ARRAY_LENGTH_NV = 0x8F32+gl_R :: GLenum+gl_R = 0x2002+gl_NUM_VIDEO_CAPTURE_STREAMS_NV :: GLenum+gl_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024+gl_VERTEX_PROGRAM_POINT_SIZE_NV :: GLenum+gl_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642+gl_CONSTANT_NV :: GLenum+gl_CONSTANT_NV = 0x8576+gl_RGB10_A2 :: GLenum+gl_RGB10_A2 = 0x8059+gl_INTENSITY16_EXT :: GLenum+gl_INTENSITY16_EXT = 0x804D+gl_TEXTURE28 :: GLenum+gl_TEXTURE28 = 0x84DC+gl_COMPRESSED_RGBA_ASTC_4x4_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0+gl_SRGB_READ :: GLenum+gl_SRGB_READ = 0x8297+gl_LUMINANCE16_ALPHA16_SNORM :: GLenum+gl_LUMINANCE16_ALPHA16_SNORM = 0x901A+gl_UNSIGNED_INT_IMAGE_1D_ARRAY :: GLenum+gl_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068+gl_ELEMENT_ARRAY_TYPE_ATI :: GLenum+gl_ELEMENT_ARRAY_TYPE_ATI = 0x8769+gl_PATCH_DEFAULT_OUTER_LEVEL :: GLenum+gl_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74+gl_LINE_STRIP_ADJACENCY_ARB :: GLenum+gl_LINE_STRIP_ADJACENCY_ARB = 0x000B+gl_POLYGON_OFFSET_POINT :: GLenum+gl_POLYGON_OFFSET_POINT = 0x2A01+gl_UNSIGNED_SHORT_8_8_APPLE :: GLenum+gl_UNSIGNED_SHORT_8_8_APPLE = 0x85BA+gl_DYNAMIC_ATI :: GLenum+gl_DYNAMIC_ATI = 0x8761+gl_UNSIGNED_INT16_NV :: GLenum+gl_UNSIGNED_INT16_NV = 0x8FF0+gl_TEXTURE_BINDING_BUFFER_EXT :: GLenum+gl_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C+gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB :: GLenum+gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A+gl_MAP2_VERTEX_ATTRIB14_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E+gl_COMPRESSED_RGB :: GLenum+gl_COMPRESSED_RGB = 0x84ED+gl_VERTEX_ATTRIB_ARRAY0_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY0_NV = 0x8650+gl_MIN :: GLenum+gl_MIN = 0x8007+gl_COLOR_SUM :: GLenum+gl_COLOR_SUM = 0x8458+gl_ATC_RGBA_INTERPOLATED_ALPHA_AMD :: GLenum+gl_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE+gl_RECIP_ADD_SIGNED_ALPHA_IMG :: GLenum+gl_RECIP_ADD_SIGNED_ALPHA_IMG = 0x8C05+gl_FONT_MAX_ADVANCE_WIDTH_BIT_NV :: GLenum+gl_FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000+gl_SPRITE_AXIAL_SGIX :: GLenum+gl_SPRITE_AXIAL_SGIX = 0x814C+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3+gl_TEXTURE_ENV_BIAS_SGIX :: GLenum+gl_TEXTURE_ENV_BIAS_SGIX = 0x80BE+gl_PROGRAM_FORMAT_ASCII_ARB :: GLenum+gl_PROGRAM_FORMAT_ASCII_ARB = 0x8875+gl_OUTPUT_COLOR1_EXT :: GLenum+gl_OUTPUT_COLOR1_EXT = 0x879C+gl_SELECTION_BUFFER_SIZE :: GLenum+gl_SELECTION_BUFFER_SIZE = 0x0DF4+gl_VERTEX_ATTRIB_MAP2_ORDER_APPLE :: GLenum+gl_VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08+gl_INTENSITY_FLOAT16_ATI :: GLenum+gl_INTENSITY_FLOAT16_ATI = 0x881D+gl_TEXTURE30_ARB :: GLenum+gl_TEXTURE30_ARB = 0x84DE+gl_TEXTURE_1D_STACK_MESAX :: GLenum+gl_TEXTURE_1D_STACK_MESAX = 0x8759+gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE :: GLenum+gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A+gl_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM :: GLenum+gl_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087+gl_SIGNED_HILO_NV :: GLenum+gl_SIGNED_HILO_NV = 0x86F9+gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT :: GLenum+gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004+gl_ACTIVE_ATTRIBUTE_MAX_LENGTH :: GLenum+gl_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A+gl_IMAGE_2D_RECT_EXT :: GLenum+gl_IMAGE_2D_RECT_EXT = 0x904F+gl_TESS_GEN_MODE :: GLenum+gl_TESS_GEN_MODE = 0x8E76+gl_TEXTURE_MIN_FILTER :: GLenum+gl_TEXTURE_MIN_FILTER = 0x2801+gl_FLOAT_VEC4 :: GLenum+gl_FLOAT_VEC4 = 0x8B52+gl_LIGHT2 :: GLenum+gl_LIGHT2 = 0x4002+gl_MODELVIEW24_ARB :: GLenum+gl_MODELVIEW24_ARB = 0x8738+gl_TESS_EVALUATION_SHADER :: GLenum+gl_TESS_EVALUATION_SHADER = 0x8E87+gl_PROXY_COLOR_TABLE_SGI :: GLenum+gl_PROXY_COLOR_TABLE_SGI = 0x80D3+gl_INDEX_ARRAY_EXT :: GLenum+gl_INDEX_ARRAY_EXT = 0x8077+gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F+gl_FRAGMENT_INPUT_NV :: GLenum+gl_FRAGMENT_INPUT_NV = 0x936D+gl_CON_13_ATI :: GLenum+gl_CON_13_ATI = 0x894E+gl_IMAGE_ROTATE_ORIGIN_Y_HP :: GLenum+gl_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B+gl_VERTEX_ARRAY_COUNT_EXT :: GLenum+gl_VERTEX_ARRAY_COUNT_EXT = 0x807D+gl_STENCIL_INDEX1_OES :: GLenum+gl_STENCIL_INDEX1_OES = 0x8D46+gl_BUFFER_DATA_SIZE :: GLenum+gl_BUFFER_DATA_SIZE = 0x9303+gl_MAX_NAME_STACK_DEPTH :: GLenum+gl_MAX_NAME_STACK_DEPTH = 0x0D37+gl_SAMPLES_PASSED_ARB :: GLenum+gl_SAMPLES_PASSED_ARB = 0x8914+gl_TEXTURE_PRE_SPECULAR_HP :: GLenum+gl_TEXTURE_PRE_SPECULAR_HP = 0x8169+gl_RESCALE_NORMAL_EXT :: GLenum+gl_RESCALE_NORMAL_EXT = 0x803A+gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY :: GLenum+gl_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A+gl_TRANSLATE_2D_NV :: GLenum+gl_TRANSLATE_2D_NV = 0x9090+gl_QUAD_INTENSITY8_SGIS :: GLenum+gl_QUAD_INTENSITY8_SGIS = 0x8123+gl_LOCATION_INDEX :: GLenum+gl_LOCATION_INDEX = 0x930F+gl_MODELVIEW9_ARB :: GLenum+gl_MODELVIEW9_ARB = 0x8729+gl_CONTEXT_RELEASE_BEHAVIOR_KHR :: GLenum+gl_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB+gl_EDGE_FLAG_ARRAY_BUFFER_BINDING :: GLenum+gl_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B+gl_DEBUG_TYPE_PERFORMANCE_KHR :: GLenum+gl_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250+gl_POINT_DISTANCE_ATTENUATION :: GLenum+gl_POINT_DISTANCE_ATTENUATION = 0x8129+gl_PIXEL_TILE_GRID_HEIGHT_SGIX :: GLenum+gl_PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143+gl_COLOR_ATTACHMENT3 :: GLenum+gl_COLOR_ATTACHMENT3 = 0x8CE3+gl_COUNT_UP_NV :: GLenum+gl_COUNT_UP_NV = 0x9088+gl_STENCIL_BACK_VALUE_MASK :: GLenum+gl_STENCIL_BACK_VALUE_MASK = 0x8CA4+gl_PERFQUERY_DONOT_FLUSH_INTEL :: GLenum+gl_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9+gl_VARIABLE_F_NV :: GLenum+gl_VARIABLE_F_NV = 0x8528+gl_STENCIL_BACK_PASS_DEPTH_FAIL :: GLenum+gl_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802+gl_IMAGE_CUBIC_WEIGHT_HP :: GLenum+gl_IMAGE_CUBIC_WEIGHT_HP = 0x815E+gl_STENCIL :: GLenum+gl_STENCIL = 0x1802+gl_DRAW_BUFFER6_ARB :: GLenum+gl_DRAW_BUFFER6_ARB = 0x882B+gl_MAX_COMBINED_IMAGE_UNIFORMS :: GLenum+gl_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF+gl_PROGRAM_STRING_NV :: GLenum+gl_PROGRAM_STRING_NV = 0x8628+gl_STREAM_DRAW :: GLenum+gl_STREAM_DRAW = 0x88E0+gl_BGR_INTEGER_EXT :: GLenum+gl_BGR_INTEGER_EXT = 0x8D9A+gl_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES :: GLenum+gl_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E+gl_LAYER_PROVOKING_VERTEX :: GLenum+gl_LAYER_PROVOKING_VERTEX = 0x825E+gl_TEXTURE_ALPHA_SIZE_EXT :: GLenum+gl_TEXTURE_ALPHA_SIZE_EXT = 0x805F+gl_QUERY_DEPTH_PASS_EVENT_BIT_AMD :: GLenum+gl_QUERY_DEPTH_PASS_EVENT_BIT_AMD = 0x00000001+gl_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX :: GLenum+gl_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174+gl_VIEW_CLASS_48_BITS :: GLenum+gl_VIEW_CLASS_48_BITS = 0x82C7+gl_DRAW_BUFFER15_NV :: GLenum+gl_DRAW_BUFFER15_NV = 0x8834+gl_MAX_LABEL_LENGTH_KHR :: GLenum+gl_MAX_LABEL_LENGTH_KHR = 0x82E8+gl_DEBUG_TYPE_PERFORMANCE :: GLenum+gl_DEBUG_TYPE_PERFORMANCE = 0x8250+gl_DEPENDENT_RGB_TEXTURE_3D_NV :: GLenum+gl_DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859+gl_MAX_GEOMETRY_ATOMIC_COUNTERS :: GLenum+gl_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5+gl_DRAW_BUFFER10_ARB :: GLenum+gl_DRAW_BUFFER10_ARB = 0x882F+gl_FONT_UNDERLINE_THICKNESS_BIT_NV :: GLenum+gl_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000+gl_DRAW_BUFFER7 :: GLenum+gl_DRAW_BUFFER7 = 0x882C+gl_TEXTURE_GREEN_TYPE_ARB :: GLenum+gl_TEXTURE_GREEN_TYPE_ARB = 0x8C11+gl_TEXTURE_MIN_LOD_SGIS :: GLenum+gl_TEXTURE_MIN_LOD_SGIS = 0x813A+gl_UNSIGNED_INT_SAMPLER_BUFFER_EXT :: GLenum+gl_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8+gl_ELEMENT_ARRAY_BARRIER_BIT_EXT :: GLenum+gl_ELEMENT_ARRAY_BARRIER_BIT_EXT = 0x00000002+gl_SAMPLE_COVERAGE_VALUE :: GLenum+gl_SAMPLE_COVERAGE_VALUE = 0x80AA+gl_VERTEX_ATTRIB_RELATIVE_OFFSET :: GLenum+gl_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5+gl_COLOR_TABLE_RED_SIZE :: GLenum+gl_COLOR_TABLE_RED_SIZE = 0x80DA+gl_TRANSFORM_FEEDBACK_BUFFER_START_NV :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84+gl_NAME_STACK_DEPTH :: GLenum+gl_NAME_STACK_DEPTH = 0x0D70+gl_UNSIGNED_INT_5_9_9_9_REV :: GLenum+gl_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E+gl_FUNC_SUBTRACT_EXT :: GLenum+gl_FUNC_SUBTRACT_EXT = 0x800A+gl_STENCIL_INDEX4_EXT :: GLenum+gl_STENCIL_INDEX4_EXT = 0x8D47+gl_TEXTURE_COMPRESSION_HINT :: GLenum+gl_TEXTURE_COMPRESSION_HINT = 0x84EF+gl_DEPTH_CLAMP :: GLenum+gl_DEPTH_CLAMP = 0x864F+gl_SAMPLE_COVERAGE_INVERT :: GLenum+gl_SAMPLE_COVERAGE_INVERT = 0x80AB+gl_DRAW_BUFFER0_EXT :: GLenum+gl_DRAW_BUFFER0_EXT = 0x8825+gl_DRAW_BUFFER4 :: GLenum+gl_DRAW_BUFFER4 = 0x8829+gl_ALPHA_FLOAT16_ATI :: GLenum+gl_ALPHA_FLOAT16_ATI = 0x881C+gl_AFFINE_2D_NV :: GLenum+gl_AFFINE_2D_NV = 0x9092+gl_MAX_TRACK_MATRICES_NV :: GLenum+gl_MAX_TRACK_MATRICES_NV = 0x862F+gl_BINORMAL_ARRAY_STRIDE_EXT :: GLenum+gl_BINORMAL_ARRAY_STRIDE_EXT = 0x8441+gl_UNSIGNED_SHORT_1_5_5_5_REV :: GLenum+gl_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366+gl_ROUNDED_RECT4_NV :: GLenum+gl_ROUNDED_RECT4_NV = 0xEC+gl_COMMAND_BARRIER_BIT_EXT :: GLenum+gl_COMMAND_BARRIER_BIT_EXT = 0x00000040+gl_TEXTURE_ENV_COLOR :: GLenum+gl_TEXTURE_ENV_COLOR = 0x2201+gl_READ_WRITE_ARB :: GLenum+gl_READ_WRITE_ARB = 0x88BA+gl_RGBA8_EXT :: GLenum+gl_RGBA8_EXT = 0x8058+gl_EVAL_VERTEX_ATTRIB10_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB10_NV = 0x86D0+gl_POST_CONVOLUTION_RED_BIAS :: GLenum+gl_POST_CONVOLUTION_RED_BIAS = 0x8020+gl_INT16_VEC4_NV :: GLenum+gl_INT16_VEC4_NV = 0x8FE7+gl_COLOR_SUM_ARB :: GLenum+gl_COLOR_SUM_ARB = 0x8458+gl_OUTPUT_TEXTURE_COORD5_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2+gl_COMPRESSED_RGBA_ASTC_12x10_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC+gl_MAX_ELEMENTS_INDICES :: GLenum+gl_MAX_ELEMENTS_INDICES = 0x80E9+gl_REFERENCED_BY_FRAGMENT_SHADER :: GLenum+gl_REFERENCED_BY_FRAGMENT_SHADER = 0x930A+gl_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB :: GLenum+gl_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = 0x9344+gl_WEIGHT_ARRAY_ARB :: GLenum+gl_WEIGHT_ARRAY_ARB = 0x86AD+gl_TIME_ELAPSED_EXT :: GLenum+gl_TIME_ELAPSED_EXT = 0x88BF+gl_BACK_SECONDARY_COLOR_NV :: GLenum+gl_BACK_SECONDARY_COLOR_NV = 0x8C78+gl_COMPARE_REF_TO_TEXTURE_EXT :: GLenum+gl_COMPARE_REF_TO_TEXTURE_EXT = 0x884E+gl_IS_PER_PATCH_EXT :: GLenum+gl_IS_PER_PATCH_EXT = 0x92E7+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = 0x8D56+gl_TEXTURE_LUMINANCE_SIZE_EXT :: GLenum+gl_TEXTURE_LUMINANCE_SIZE_EXT = 0x8060+gl_COVERAGE_BUFFERS_NV :: GLenum+gl_COVERAGE_BUFFERS_NV = 0x8ED3+gl_MATRIX5_ARB :: GLenum+gl_MATRIX5_ARB = 0x88C5+gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT :: GLenum+gl_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56+gl_COMPRESSED_RGBA_ASTC_5x5x4_OES :: GLenum+gl_COMPRESSED_RGBA_ASTC_5x5x4_OES = 0x93C5+gl_CONVOLUTION_FILTER_BIAS :: GLenum+gl_CONVOLUTION_FILTER_BIAS = 0x8015+gl_TRACE_PRIMITIVES_BIT_MESA :: GLenum+gl_TRACE_PRIMITIVES_BIT_MESA = 0x0002+gl_POINT_SPRITE :: GLenum+gl_POINT_SPRITE = 0x8861+gl_POLYGON_STIPPLE_BIT :: GLenum+gl_POLYGON_STIPPLE_BIT = 0x00000010+gl_DEBUG_SEVERITY_HIGH :: GLenum+gl_DEBUG_SEVERITY_HIGH = 0x9146+gl_RENDERBUFFER_STENCIL_SIZE_EXT :: GLenum+gl_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55+gl_RED :: GLenum+gl_RED = 0x1903+gl_DRAW_BUFFER12_NV :: GLenum+gl_DRAW_BUFFER12_NV = 0x8831+gl_COMPRESSED_RGBA_ASTC_10x10_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB+gl_ACTIVE_TEXTURE :: GLenum+gl_ACTIVE_TEXTURE = 0x84E0+gl_Q :: GLenum+gl_Q = 0x2003+gl_STRICT_LIGHTING_HINT_PGI :: GLenum+gl_STRICT_LIGHTING_HINT_PGI = 0x1A217+gl_INT8_VEC2_NV :: GLenum+gl_INT8_VEC2_NV = 0x8FE1+gl_MAP2_VERTEX_ATTRIB0_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670+gl_SHADER_SOURCE_LENGTH :: GLenum+gl_SHADER_SOURCE_LENGTH = 0x8B88+gl_FLOAT_MAT4 :: GLenum+gl_FLOAT_MAT4 = 0x8B5C+gl_COLOR_MATRIX_SGI :: GLenum+gl_COLOR_MATRIX_SGI = 0x80B1+gl_SAMPLER_2D_ARRAY_EXT :: GLenum+gl_SAMPLER_2D_ARRAY_EXT = 0x8DC1+gl_MODULATE_SUBTRACT_ATI :: GLenum+gl_MODULATE_SUBTRACT_ATI = 0x8746+gl_TRIANGLES_ADJACENCY_ARB :: GLenum+gl_TRIANGLES_ADJACENCY_ARB = 0x000C+gl_PROGRAM_TARGET_NV :: GLenum+gl_PROGRAM_TARGET_NV = 0x8646+gl_GEOMETRY_SHADER_ARB :: GLenum+gl_GEOMETRY_SHADER_ARB = 0x8DD9+gl_TEXTURE_BASE_LEVEL_SGIS :: GLenum+gl_TEXTURE_BASE_LEVEL_SGIS = 0x813C+gl_1PASS_SGIS :: GLenum+gl_1PASS_SGIS = 0x80A1+gl_TEXTURE_HEIGHT_QCOM :: GLenum+gl_TEXTURE_HEIGHT_QCOM = 0x8BD3+gl_LUMINANCE12_ALPHA4_EXT :: GLenum+gl_LUMINANCE12_ALPHA4_EXT = 0x8046+gl_PIXEL_TILE_HEIGHT_SGIX :: GLenum+gl_PIXEL_TILE_HEIGHT_SGIX = 0x8141+gl_UNSIGNED_INT_S8_S8_8_8_NV :: GLenum+gl_UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA+gl_SOURCE0_RGB :: GLenum+gl_SOURCE0_RGB = 0x8580+gl_DRAW_BUFFER6_EXT :: GLenum+gl_DRAW_BUFFER6_EXT = 0x882B+gl_PATH_FILL_BOUNDING_BOX_NV :: GLenum+gl_PATH_FILL_BOUNDING_BOX_NV = 0x90A1+gl_RENDER_MODE :: GLenum+gl_RENDER_MODE = 0x0C40+gl_X_EXT :: GLenum+gl_X_EXT = 0x87D5+gl_CON_14_ATI :: GLenum+gl_CON_14_ATI = 0x894F+gl_TRIANGLE_STRIP_ADJACENCY :: GLenum+gl_TRIANGLE_STRIP_ADJACENCY = 0x000D+gl_ROUNDED_RECT_NV :: GLenum+gl_ROUNDED_RECT_NV = 0xE8+gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB :: GLenum+gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87+gl_DSDT_MAG_INTENSITY_NV :: GLenum+gl_DSDT_MAG_INTENSITY_NV = 0x86DC+gl_MODELVIEW13_ARB :: GLenum+gl_MODELVIEW13_ARB = 0x872D+gl_MAX_COMBINED_CLIP_AND_CULL_DISTANCES :: GLenum+gl_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA+gl_CLIP_ORIGIN :: GLenum+gl_CLIP_ORIGIN = 0x935C+gl_PATH_CLIENT_LENGTH_NV :: GLenum+gl_PATH_CLIENT_LENGTH_NV = 0x907F+gl_SAMPLE_ALPHA_TO_ONE_ARB :: GLenum+gl_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F+gl_RENDERBUFFER_INTERNAL_FORMAT_OES :: GLenum+gl_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44+gl_POINT_SPRITE_ARB :: GLenum+gl_POINT_SPRITE_ARB = 0x8861+gl_FLOAT_MAT3_ARB :: GLenum+gl_FLOAT_MAT3_ARB = 0x8B5B+gl_IMAGE_CLASS_4_X_8 :: GLenum+gl_IMAGE_CLASS_4_X_8 = 0x82BF+gl_PIXEL_SUBSAMPLE_4242_SGIX :: GLenum+gl_PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT :: GLenum+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D+gl_ROUNDED_RECT8_NV :: GLenum+gl_ROUNDED_RECT8_NV = 0xEE+gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING :: GLenum+gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D+gl_DST_NV :: GLenum+gl_DST_NV = 0x9287+gl_MAX_TRANSFORM_FEEDBACK_BUFFERS :: GLenum+gl_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70+gl_FUNC_ADD_OES :: GLenum+gl_FUNC_ADD_OES = 0x8006+gl_VERTEX_STREAM7_ATI :: GLenum+gl_VERTEX_STREAM7_ATI = 0x8773+gl_RG_EXT :: GLenum+gl_RG_EXT = 0x8227+gl_STENCIL_BACK_PASS_DEPTH_PASS :: GLenum+gl_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803+gl_FRAMEBUFFER_RENDERABLE_LAYERED :: GLenum+gl_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A+gl_MAP2_VERTEX_ATTRIB1_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671+gl_DRAW_BUFFER2_ATI :: GLenum+gl_DRAW_BUFFER2_ATI = 0x8827+gl_RGBA_FLOAT16_ATI :: GLenum+gl_RGBA_FLOAT16_ATI = 0x881A+gl_EVAL_VERTEX_ATTRIB13_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB13_NV = 0x86D3+gl_DRAW_BUFFER15_ATI :: GLenum+gl_DRAW_BUFFER15_ATI = 0x8834+gl_MAP_WRITE_BIT :: GLenum+gl_MAP_WRITE_BIT = 0x0002+gl_DOT3_RGBA :: GLenum+gl_DOT3_RGBA = 0x86AF+gl_MAT_SHININESS_BIT_PGI :: GLenum+gl_MAT_SHININESS_BIT_PGI = 0x02000000+gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN :: GLenum+gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88+gl_MAX_TRACK_MATRIX_STACK_DEPTH_NV :: GLenum+gl_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E+gl_MATRIX30_ARB :: GLenum+gl_MATRIX30_ARB = 0x88DE+gl_STENCIL_TEST :: GLenum+gl_STENCIL_TEST = 0x0B90+gl_MAX_INTEGER_SAMPLES :: GLenum+gl_MAX_INTEGER_SAMPLES = 0x9110+gl_COPY_READ_BUFFER_BINDING :: GLenum+gl_COPY_READ_BUFFER_BINDING = 0x8F36+gl_TRANSFORM_FEEDBACK_BUFFER :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E+gl_LUMINANCE_FLOAT16_APPLE :: GLenum+gl_LUMINANCE_FLOAT16_APPLE = 0x881E+gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS :: GLenum+gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89+gl_MAX_VERTEX_UNIFORM_VECTORS :: GLenum+gl_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB+gl_WRITE_PIXEL_DATA_RANGE_LENGTH_NV :: GLenum+gl_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A+gl_SAMPLER_RENDERBUFFER_NV :: GLenum+gl_SAMPLER_RENDERBUFFER_NV = 0x8E56+gl_DRAW_BUFFER13_NV :: GLenum+gl_DRAW_BUFFER13_NV = 0x8832+gl_RGB32F_ARB :: GLenum+gl_RGB32F_ARB = 0x8815+gl_FRAGMENT_LIGHT5_SGIX :: GLenum+gl_FRAGMENT_LIGHT5_SGIX = 0x8411+gl_MAX_GENERAL_COMBINERS_NV :: GLenum+gl_MAX_GENERAL_COMBINERS_NV = 0x854D+gl_TRANSPOSE_TEXTURE_MATRIX_ARB :: GLenum+gl_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5+gl_OPERAND1_ALPHA_ARB :: GLenum+gl_OPERAND1_ALPHA_ARB = 0x8599+gl_COLOR_ATTACHMENT12 :: GLenum+gl_COLOR_ATTACHMENT12 = 0x8CEC+gl_GREEN_MAX_CLAMP_INGR :: GLenum+gl_GREEN_MAX_CLAMP_INGR = 0x8565+gl_PATH_PROJECTION_STACK_DEPTH_NV :: GLenum+gl_PATH_PROJECTION_STACK_DEPTH_NV = 0x0BA4+gl_MAP2_COLOR_4 :: GLenum+gl_MAP2_COLOR_4 = 0x0DB0+gl_COLOR_SUM_EXT :: GLenum+gl_COLOR_SUM_EXT = 0x8458+gl_CLAMP_FRAGMENT_COLOR_ARB :: GLenum+gl_CLAMP_FRAGMENT_COLOR_ARB = 0x891B+gl_INDEX_BITS :: GLenum+gl_INDEX_BITS = 0x0D51+gl_CON_15_ATI :: GLenum+gl_CON_15_ATI = 0x8950+gl_BLEND_OVERLAP_NV :: GLenum+gl_BLEND_OVERLAP_NV = 0x9281+gl_DS_SCALE_NV :: GLenum+gl_DS_SCALE_NV = 0x8710+gl_CURRENT_PALETTE_MATRIX_ARB :: GLenum+gl_CURRENT_PALETTE_MATRIX_ARB = 0x8843+gl_IMAGE_BINDING_LAYER_EXT :: GLenum+gl_IMAGE_BINDING_LAYER_EXT = 0x8F3D+gl_WEIGHT_SUM_UNITY_ARB :: GLenum+gl_WEIGHT_SUM_UNITY_ARB = 0x86A6+gl_ALPHA32I_EXT :: GLenum+gl_ALPHA32I_EXT = 0x8D84+gl_SHADER_STORAGE_BUFFER_SIZE :: GLenum+gl_SHADER_STORAGE_BUFFER_SIZE = 0x90D5+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER :: GLenum+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED+gl_MAX_UNIFORM_LOCATIONS :: GLenum+gl_MAX_UNIFORM_LOCATIONS = 0x826E+gl_DEBUG_SOURCE_OTHER_KHR :: GLenum+gl_DEBUG_SOURCE_OTHER_KHR = 0x824B+gl_FRACTIONAL_EVEN :: GLenum+gl_FRACTIONAL_EVEN = 0x8E7C+gl_MIN_PROGRAM_TEXEL_OFFSET :: GLenum+gl_MIN_PROGRAM_TEXEL_OFFSET = 0x8904+gl_WEIGHT_ARRAY_OES :: GLenum+gl_WEIGHT_ARRAY_OES = 0x86AD+gl_RESET_NOTIFICATION_STRATEGY_KHR :: GLenum+gl_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256+gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV :: GLenum+gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4+gl_RGB2_EXT :: GLenum+gl_RGB2_EXT = 0x804E+gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT :: GLenum+gl_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001+gl_ELEMENT_ARRAY_BUFFER :: GLenum+gl_ELEMENT_ARRAY_BUFFER = 0x8893+gl_MEDIUM_FLOAT :: GLenum+gl_MEDIUM_FLOAT = 0x8DF1+gl_SAMPLER_1D_SHADOW_ARB :: GLenum+gl_SAMPLER_1D_SHADOW_ARB = 0x8B61+gl_DRAW_BUFFER5 :: GLenum+gl_DRAW_BUFFER5 = 0x882A+gl_PARALLEL_ARRAYS_INTEL :: GLenum+gl_PARALLEL_ARRAYS_INTEL = 0x83F4+gl_REG_24_ATI :: GLenum+gl_REG_24_ATI = 0x8939+gl_DEPTH_STENCIL_TO_BGRA_NV :: GLenum+gl_DEPTH_STENCIL_TO_BGRA_NV = 0x886F+gl_MAX_FRAMEBUFFER_WIDTH :: GLenum+gl_MAX_FRAMEBUFFER_WIDTH = 0x9315+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = 0x93E3+gl_POLYGON_OFFSET_FILL :: GLenum+gl_POLYGON_OFFSET_FILL = 0x8037+gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518+gl_TEXTURE_GEN_T :: GLenum+gl_TEXTURE_GEN_T = 0x0C61+gl_TEXTURE_POST_SPECULAR_HP :: GLenum+gl_TEXTURE_POST_SPECULAR_HP = 0x8168+gl_TEXTURE_CUBE_MAP_NEGATIVE_X_OES :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516+gl_MAGNITUDE_SCALE_NV :: GLenum+gl_MAGNITUDE_SCALE_NV = 0x8712+gl_VERTEX_SHADER_LOCALS_EXT :: GLenum+gl_VERTEX_SHADER_LOCALS_EXT = 0x87D3+gl_INT_2_10_10_10_REV :: GLenum+gl_INT_2_10_10_10_REV = 0x8D9F+gl_DOUBLE_MAT3x2_EXT :: GLenum+gl_DOUBLE_MAT3x2_EXT = 0x8F4B+gl_DISCARD_NV :: GLenum+gl_DISCARD_NV = 0x8530+gl_MATRIX13_ARB :: GLenum+gl_MATRIX13_ARB = 0x88CD+gl_GENERATE_MIPMAP_HINT :: GLenum+gl_GENERATE_MIPMAP_HINT = 0x8192+gl_MAX_PIXEL_MAP_TABLE :: GLenum+gl_MAX_PIXEL_MAP_TABLE = 0x0D34+gl_SHADER_STORAGE_BUFFER :: GLenum+gl_SHADER_STORAGE_BUFFER = 0x90D2+gl_BUFFER_UPDATE_BARRIER_BIT :: GLenum+gl_BUFFER_UPDATE_BARRIER_BIT = 0x00000200+gl_FRAMEBUFFER_BINDING_OES :: GLenum+gl_FRAMEBUFFER_BINDING_OES = 0x8CA6+gl_CONTEXT_PROFILE_MASK :: GLenum+gl_CONTEXT_PROFILE_MASK = 0x9126+gl_MAX_VIEWPORTS :: GLenum+gl_MAX_VIEWPORTS = 0x825B+gl_DRAW_BUFFER4_ARB :: GLenum+gl_DRAW_BUFFER4_ARB = 0x8829+gl_RESAMPLE_DECIMATE_SGIX :: GLenum+gl_RESAMPLE_DECIMATE_SGIX = 0x8430+gl_SHADER_OBJECT_ARB :: GLenum+gl_SHADER_OBJECT_ARB = 0x8B48+gl_SYNC_FLAGS_APPLE :: GLenum+gl_SYNC_FLAGS_APPLE = 0x9115+gl_Z4Y12Z4CB12Z4CR12_444_NV :: GLenum+gl_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037+gl_VERTEX_ARRAY_LENGTH_NV :: GLenum+gl_VERTEX_ARRAY_LENGTH_NV = 0x8F2B+gl_FOG_COORDINATE_ARRAY_LIST_IBM :: GLenum+gl_FOG_COORDINATE_ARRAY_LIST_IBM = 103076+gl_FRAMEBUFFER_DEFAULT_SAMPLES :: GLenum+gl_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313+gl_FLAT :: GLenum+gl_FLAT = 0x1D00+gl_REG_2_ATI :: GLenum+gl_REG_2_ATI = 0x8923+gl_VIEWPORT_BIT :: GLenum+gl_VIEWPORT_BIT = 0x00000800+gl_TEXTURE_VIEW_MIN_LEVEL_EXT :: GLenum+gl_TEXTURE_VIEW_MIN_LEVEL_EXT = 0x82DB+gl_FRACTIONAL_ODD_EXT :: GLenum+gl_FRACTIONAL_ODD_EXT = 0x8E7B+gl_VIRTUAL_PAGE_SIZE_X_ARB :: GLenum+gl_VIRTUAL_PAGE_SIZE_X_ARB = 0x9195+gl_GLOBAL_ALPHA_SUN :: GLenum+gl_GLOBAL_ALPHA_SUN = 0x81D9+gl_TEXTURE_BORDER :: GLenum+gl_TEXTURE_BORDER = 0x1005+gl_MAP2_VERTEX_ATTRIB7_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677+gl_BUFFER_ACCESS :: GLenum+gl_BUFFER_ACCESS = 0x88BB+gl_COLOR_ATTACHMENT15_EXT :: GLenum+gl_COLOR_ATTACHMENT15_EXT = 0x8CEF+gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT :: GLenum+gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CF+gl_PRIMITIVE_RESTART_FIXED_INDEX :: GLenum+gl_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69+gl_MAX_COMBINED_DIMENSIONS :: GLenum+gl_MAX_COMBINED_DIMENSIONS = 0x8282+gl_MINUS_NV :: GLenum+gl_MINUS_NV = 0x929F+gl_NORMAL_MAP_ARB :: GLenum+gl_NORMAL_MAP_ARB = 0x8511+gl_MAT_AMBIENT_BIT_PGI :: GLenum+gl_MAT_AMBIENT_BIT_PGI = 0x00100000+gl_REG_14_ATI :: GLenum+gl_REG_14_ATI = 0x892F+gl_SECONDARY_INTERPOLATOR_ATI :: GLenum+gl_SECONDARY_INTERPOLATOR_ATI = 0x896D+gl_FRAGMENT_SHADER_BIT_EXT :: GLenum+gl_FRAGMENT_SHADER_BIT_EXT = 0x00000002+gl_CON_20_ATI :: GLenum+gl_CON_20_ATI = 0x8955+gl_DYNAMIC_DRAW :: GLenum+gl_DYNAMIC_DRAW = 0x88E8+gl_STENCIL_INDEX1 :: GLenum+gl_STENCIL_INDEX1 = 0x8D46+gl_DEPTH_COMPONENTS :: GLenum+gl_DEPTH_COMPONENTS = 0x8284+gl_SEPARATE_SPECULAR_COLOR_EXT :: GLenum+gl_SEPARATE_SPECULAR_COLOR_EXT = 0x81FA+gl_CONSTANT_COLOR0_NV :: GLenum+gl_CONSTANT_COLOR0_NV = 0x852A+gl_LUMINANCE16I_EXT :: GLenum+gl_LUMINANCE16I_EXT = 0x8D8C+gl_TEXTURE_COORD_ARRAY_SIZE_EXT :: GLenum+gl_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088+gl_BLEND_DST_RGB :: GLenum+gl_BLEND_DST_RGB = 0x80C8+gl_VARIABLE_C_NV :: GLenum+gl_VARIABLE_C_NV = 0x8525+gl_INT_VEC2_ARB :: GLenum+gl_INT_VEC2_ARB = 0x8B53+gl_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX :: GLenum+gl_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178+gl_PIXEL_MAP_G_TO_G_SIZE :: GLenum+gl_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7+gl_BLUE_MIN_CLAMP_INGR :: GLenum+gl_BLUE_MIN_CLAMP_INGR = 0x8562+gl_RETURN :: GLenum+gl_RETURN = 0x0102+gl_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD :: GLenum+gl_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD = 0x9160+gl_DOUBLE :: GLenum+gl_DOUBLE = 0x140A+gl_COMBINE4_NV :: GLenum+gl_COMBINE4_NV = 0x8503+gl_IMAGE_ROTATE_ORIGIN_X_HP :: GLenum+gl_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A+gl_COMBINER5_NV :: GLenum+gl_COMBINER5_NV = 0x8555+gl_SYNC_CONDITION :: GLenum+gl_SYNC_CONDITION = 0x9113+gl_DEBUG_LOGGED_MESSAGES_ARB :: GLenum+gl_DEBUG_LOGGED_MESSAGES_ARB = 0x9145+gl_REG_15_ATI :: GLenum+gl_REG_15_ATI = 0x8930+gl_BUFFER_MAP_POINTER_OES :: GLenum+gl_BUFFER_MAP_POINTER_OES = 0x88BD+gl_SM_COUNT_NV :: GLenum+gl_SM_COUNT_NV = 0x933B+gl_MAX_FRAMEBUFFER_HEIGHT :: GLenum+gl_MAX_FRAMEBUFFER_HEIGHT = 0x9316+gl_INCR_WRAP_OES :: GLenum+gl_INCR_WRAP_OES = 0x8507+gl_GCCSO_SHADER_BINARY_FJ :: GLenum+gl_GCCSO_SHADER_BINARY_FJ = 0x9260+gl_DRAW_BUFFER4_NV :: GLenum+gl_DRAW_BUFFER4_NV = 0x8829+gl_RGB565 :: GLenum+gl_RGB565 = 0x8D62+gl_WRITE_PIXEL_DATA_RANGE_NV :: GLenum+gl_WRITE_PIXEL_DATA_RANGE_NV = 0x8878+gl_UNIFORM_OFFSET :: GLenum+gl_UNIFORM_OFFSET = 0x8A3B+gl_UNSIGNED_INT64_ARB :: GLenum+gl_UNSIGNED_INT64_ARB = 0x140F+gl_STENCIL_RENDERABLE :: GLenum+gl_STENCIL_RENDERABLE = 0x8288+gl_COMPRESSED_RGBA_BPTC_UNORM :: GLenum+gl_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C+gl_FLOAT_R32_NV :: GLenum+gl_FLOAT_R32_NV = 0x8885+gl_TEXTURE_CLIPMAP_OFFSET_SGIX :: GLenum+gl_TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173+gl_TEXTURE_IMAGE_VALID_QCOM :: GLenum+gl_TEXTURE_IMAGE_VALID_QCOM = 0x8BD8+gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279+gl_IMAGE_PIXEL_TYPE :: GLenum+gl_IMAGE_PIXEL_TYPE = 0x82AA+gl_EDGE_FLAG_ARRAY_STRIDE :: GLenum+gl_EDGE_FLAG_ARRAY_STRIDE = 0x808C+gl_RED_SCALE :: GLenum+gl_RED_SCALE = 0x0D14+gl_RENDERBUFFER_ALPHA_SIZE_OES :: GLenum+gl_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53+gl_CLIP_DISTANCE7 :: GLenum+gl_CLIP_DISTANCE7 = 0x3007+gl_INTENSITY32UI_EXT :: GLenum+gl_INTENSITY32UI_EXT = 0x8D73+gl_DEBUG_SOURCE_WINDOW_SYSTEM_KHR :: GLenum+gl_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247+gl_PN_TRIANGLES_ATI :: GLenum+gl_PN_TRIANGLES_ATI = 0x87F0+gl_LIGHT5 :: GLenum+gl_LIGHT5 = 0x4005+gl_QUERY_RESULT_ARB :: GLenum+gl_QUERY_RESULT_ARB = 0x8866+gl_LUMINANCE16 :: GLenum+gl_LUMINANCE16 = 0x8042+gl_ALPHA_TEST_QCOM :: GLenum+gl_ALPHA_TEST_QCOM = 0x0BC0+gl_TEXTURE_BORDER_COLOR_NV :: GLenum+gl_TEXTURE_BORDER_COLOR_NV = 0x1004+gl_CULL_FRAGMENT_NV :: GLenum+gl_CULL_FRAGMENT_NV = 0x86E7+gl_PATH_GEN_MODE_NV :: GLenum+gl_PATH_GEN_MODE_NV = 0x90B0+gl_PROGRAM_POINT_SIZE_ARB :: GLenum+gl_PROGRAM_POINT_SIZE_ARB = 0x8642+gl_INTERNALFORMAT_DEPTH_TYPE :: GLenum+gl_INTERNALFORMAT_DEPTH_TYPE = 0x827C+gl_UNPACK_SKIP_ROWS :: GLenum+gl_UNPACK_SKIP_ROWS = 0x0CF3+gl_DEBUG_SEVERITY_NOTIFICATION :: GLenum+gl_DEBUG_SEVERITY_NOTIFICATION = 0x826B+gl_MAX_FRAGMENT_LIGHTS_SGIX :: GLenum+gl_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404+gl_COUNTER_TYPE_AMD :: GLenum+gl_COUNTER_TYPE_AMD = 0x8BC0+gl_TEXTURE_FETCH_BARRIER_BIT_EXT :: GLenum+gl_TEXTURE_FETCH_BARRIER_BIT_EXT = 0x00000008+gl_CURRENT_NORMAL :: GLenum+gl_CURRENT_NORMAL = 0x0B02+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = 0x93E5+gl_MULTIVIEW_EXT :: GLenum+gl_MULTIVIEW_EXT = 0x90F1+gl_TESS_GEN_VERTEX_ORDER_EXT :: GLenum+gl_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78+gl_IMAGE_SCALE_X_HP :: GLenum+gl_IMAGE_SCALE_X_HP = 0x8155+gl_TEXTURE_COLOR_TABLE_SGI :: GLenum+gl_TEXTURE_COLOR_TABLE_SGI = 0x80BC+gl_DSDT_MAG_NV :: GLenum+gl_DSDT_MAG_NV = 0x86F6+gl_Z400_BINARY_AMD :: GLenum+gl_Z400_BINARY_AMD = 0x8740+gl_COLOR_INDEX8_EXT :: GLenum+gl_COLOR_INDEX8_EXT = 0x80E5+gl_SRGB8_NV :: GLenum+gl_SRGB8_NV = 0x8C41+gl_UNSIGNED_IDENTITY_NV :: GLenum+gl_UNSIGNED_IDENTITY_NV = 0x8536+gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES :: GLenum+gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = 0x9105+gl_ALPHA_SNORM :: GLenum+gl_ALPHA_SNORM = 0x9010+gl_MAX_TEXTURE_UNITS :: GLenum+gl_MAX_TEXTURE_UNITS = 0x84E2+gl_DEBUG_SEVERITY_MEDIUM_KHR :: GLenum+gl_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147+gl_TEXTURE_RECTANGLE :: GLenum+gl_TEXTURE_RECTANGLE = 0x84F5+gl_CONTRAST_NV :: GLenum+gl_CONTRAST_NV = 0x92A1+gl_FILL :: GLenum+gl_FILL = 0x1B02+gl_BLEND_COLOR :: GLenum+gl_BLEND_COLOR = 0x8005+gl_POINT_SMOOTH_HINT :: GLenum+gl_POINT_SMOOTH_HINT = 0x0C51+gl_CONTEXT_ROBUST_ACCESS :: GLenum+gl_CONTEXT_ROBUST_ACCESS = 0x90F3+gl_FRAGMENT_PROGRAM_NV :: GLenum+gl_FRAGMENT_PROGRAM_NV = 0x8870+gl_OP_MULTIPLY_MATRIX_EXT :: GLenum+gl_OP_MULTIPLY_MATRIX_EXT = 0x8798+gl_DEPENDENT_GB_TEXTURE_2D_NV :: GLenum+gl_DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA+gl_DOUBLE_EXT :: GLenum+gl_DOUBLE_EXT = 0x140A+gl_VERTEX_PROGRAM_NV :: GLenum+gl_VERTEX_PROGRAM_NV = 0x8620+gl_PATH_END_CAPS_NV :: GLenum+gl_PATH_END_CAPS_NV = 0x9076+gl_PATH_STROKE_MASK_NV :: GLenum+gl_PATH_STROKE_MASK_NV = 0x9084+gl_SAMPLER_CUBE_SHADOW_EXT :: GLenum+gl_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5+gl_COLOR_SAMPLES_NV :: GLenum+gl_COLOR_SAMPLES_NV = 0x8E20+gl_DUAL_INTENSITY16_SGIS :: GLenum+gl_DUAL_INTENSITY16_SGIS = 0x811B+gl_IMPLEMENTATION_COLOR_READ_TYPE_OES :: GLenum+gl_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A+gl_MAX_DEBUG_GROUP_STACK_DEPTH_KHR :: GLenum+gl_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C+gl_SCISSOR_TEST :: GLenum+gl_SCISSOR_TEST = 0x0C11+gl_ADJACENT_PAIRS_NV :: GLenum+gl_ADJACENT_PAIRS_NV = 0x90AE+gl_MAX_VERTEX_ATTRIB_BINDINGS :: GLenum+gl_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA+gl_TEXTURE_GATHER :: GLenum+gl_TEXTURE_GATHER = 0x82A2+gl_LUMINANCE_ALPHA8UI_EXT :: GLenum+gl_LUMINANCE_ALPHA8UI_EXT = 0x8D81+gl_RELATIVE_ARC_TO_NV :: GLenum+gl_RELATIVE_ARC_TO_NV = 0xFF+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA+gl_TEXTURE_BINDING_CUBE_MAP_EXT :: GLenum+gl_TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514+gl_FRAGMENT_ALPHA_MODULATE_IMG :: GLenum+gl_FRAGMENT_ALPHA_MODULATE_IMG = 0x8C08+gl_CURRENT_VERTEX_EXT :: GLenum+gl_CURRENT_VERTEX_EXT = 0x87E2+gl_MAP1_VERTEX_ATTRIB11_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B+gl_MATRIX_INDEX_ARRAY_SIZE_ARB :: GLenum+gl_MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846+gl_TRANSFORM_FEEDBACK_BUFFER_MODE :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F+gl_PIXEL_TILE_CACHE_SIZE_SGIX :: GLenum+gl_PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145+gl_MODELVIEW0_EXT :: GLenum+gl_MODELVIEW0_EXT = 0x1700+gl_FONT_DESCENDER_BIT_NV :: GLenum+gl_FONT_DESCENDER_BIT_NV = 0x00400000+gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS :: GLenum+gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE+gl_RASTERIZER_DISCARD :: GLenum+gl_RASTERIZER_DISCARD = 0x8C89+gl_TRANSFORM_FEEDBACK_BUFFER_SIZE :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85+gl_MAX_DEBUG_MESSAGE_LENGTH_ARB :: GLenum+gl_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143+gl_EXTENSIONS :: GLenum+gl_EXTENSIONS = 0x1F03+gl_RESAMPLE_AVERAGE_OML :: GLenum+gl_RESAMPLE_AVERAGE_OML = 0x8988+gl_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV :: GLenum+gl_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033+gl_RELATIVE_SMALL_CCW_ARC_TO_NV :: GLenum+gl_RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13+gl_FRONT :: GLenum+gl_FRONT = 0x0404+gl_BLEND_COLOR_EXT :: GLenum+gl_BLEND_COLOR_EXT = 0x8005+gl_BUFFER_ACCESS_OES :: GLenum+gl_BUFFER_ACCESS_OES = 0x88BB+gl_MATRIX29_ARB :: GLenum+gl_MATRIX29_ARB = 0x88DD+gl_GEOMETRY_LINKED_INPUT_TYPE_EXT :: GLenum+gl_GEOMETRY_LINKED_INPUT_TYPE_EXT = 0x8917+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0+gl_COLOR_ATTACHMENT12_EXT :: GLenum+gl_COLOR_ATTACHMENT12_EXT = 0x8CEC+gl_DRAW_BUFFER1 :: GLenum+gl_DRAW_BUFFER1 = 0x8826+gl_FLOAT_32_UNSIGNED_INT_24_8_REV :: GLenum+gl_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD+gl_UNSIGNED_INT_SAMPLER_2D_RECT_EXT :: GLenum+gl_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5+gl_UNSIGNED_INT_SAMPLER_CUBE :: GLenum+gl_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4+gl_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI :: GLenum+gl_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4+gl_MAX_CULL_DISTANCES :: GLenum+gl_MAX_CULL_DISTANCES = 0x82F9+gl_TEXTURE_LOD_BIAS_S_SGIX :: GLenum+gl_TEXTURE_LOD_BIAS_S_SGIX = 0x818E+gl_SPRITE_SGIX :: GLenum+gl_SPRITE_SGIX = 0x8148+gl_VERTEX_ATTRIB_ARRAY3_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY3_NV = 0x8653+gl_QUAD_INTENSITY4_SGIS :: GLenum+gl_QUAD_INTENSITY4_SGIS = 0x8122+gl_DIFFERENCE_KHR :: GLenum+gl_DIFFERENCE_KHR = 0x929E+gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT :: GLenum+gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9+gl_VOLATILE_APPLE :: GLenum+gl_VOLATILE_APPLE = 0x8A1A+gl_MAT_EMISSION_BIT_PGI :: GLenum+gl_MAT_EMISSION_BIT_PGI = 0x00800000+gl_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV :: GLenum+gl_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = 0x8C75+gl_DRAW_FRAMEBUFFER_BINDING :: GLenum+gl_DRAW_FRAMEBUFFER_BINDING = 0x8CA6+gl_TEXTURE8 :: GLenum+gl_TEXTURE8 = 0x84C8+gl_MUL_ATI :: GLenum+gl_MUL_ATI = 0x8964+gl_PROGRAM_OBJECT_EXT :: GLenum+gl_PROGRAM_OBJECT_EXT = 0x8B40+gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB :: GLenum+gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810+gl_MATRIX_INDEX_ARRAY_TYPE_ARB :: GLenum+gl_MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847+gl_PIXEL_MAG_FILTER_EXT :: GLenum+gl_PIXEL_MAG_FILTER_EXT = 0x8331+gl_LESS :: GLenum+gl_LESS = 0x0201+gl_SOURCE2_RGB_ARB :: GLenum+gl_SOURCE2_RGB_ARB = 0x8582+gl_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH :: GLenum+gl_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35+gl_PATH_STENCIL_VALUE_MASK_NV :: GLenum+gl_PATH_STENCIL_VALUE_MASK_NV = 0x90B9+gl_IMPLEMENTATION_COLOR_READ_TYPE :: GLenum+gl_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A+gl_TEXTURE_CLIPMAP_CENTER_SGIX :: GLenum+gl_TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171+gl_BUFFER :: GLenum+gl_BUFFER = 0x82E0+gl_DEBUG_CALLBACK_USER_PARAM_ARB :: GLenum+gl_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245+gl_FIXED_OES :: GLenum+gl_FIXED_OES = 0x140C+gl_INT_VEC2 :: GLenum+gl_INT_VEC2 = 0x8B53+gl_VARIANT_VALUE_EXT :: GLenum+gl_VARIANT_VALUE_EXT = 0x87E4+gl_QUAD_STRIP :: GLenum+gl_QUAD_STRIP = 0x0008+gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT :: GLenum+gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E+gl_ZERO_TO_ONE :: GLenum+gl_ZERO_TO_ONE = 0x935F+gl_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB :: GLenum+gl_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A+gl_CND_ATI :: GLenum+gl_CND_ATI = 0x896A+gl_PROGRAM_POINT_SIZE :: GLenum+gl_PROGRAM_POINT_SIZE = 0x8642+gl_VIEWPORT_BOUNDS_RANGE :: GLenum+gl_VIEWPORT_BOUNDS_RANGE = 0x825D+gl_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL :: GLenum+gl_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6+gl_R1UI_T2F_N3F_V3F_SUN :: GLenum+gl_R1UI_T2F_N3F_V3F_SUN = 0x85CA+gl_DEPTH_STENCIL_EXT :: GLenum+gl_DEPTH_STENCIL_EXT = 0x84F9+gl_RESCALE_NORMAL :: GLenum+gl_RESCALE_NORMAL = 0x803A+gl_INDEX_CLEAR_VALUE :: GLenum+gl_INDEX_CLEAR_VALUE = 0x0C20+gl_VERTEX_STREAM5_ATI :: GLenum+gl_VERTEX_STREAM5_ATI = 0x8771+gl_CON_4_ATI :: GLenum+gl_CON_4_ATI = 0x8945+gl_LAYOUT_DEFAULT_INTEL :: GLenum+gl_LAYOUT_DEFAULT_INTEL = 0+gl_RGBA8I_EXT :: GLenum+gl_RGBA8I_EXT = 0x8D8E+gl_IMAGE_CLASS_4_X_16 :: GLenum+gl_IMAGE_CLASS_4_X_16 = 0x82BC+gl_RGB8_EXT :: GLenum+gl_RGB8_EXT = 0x8051+gl_TEXTURE_DS_SIZE_NV :: GLenum+gl_TEXTURE_DS_SIZE_NV = 0x871D+gl_CLAMP_VERTEX_COLOR :: GLenum+gl_CLAMP_VERTEX_COLOR = 0x891A+gl_DEPTH_CLEAR_VALUE :: GLenum+gl_DEPTH_CLEAR_VALUE = 0x0B73+gl_VERTEX_ATTRIB_ARRAY_SIZE_ARB :: GLenum+gl_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623+gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS :: GLenum+gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8+gl_RGB_FLOAT16_APPLE :: GLenum+gl_RGB_FLOAT16_APPLE = 0x881B+gl_DOT_PRODUCT_REFLECT_CUBE_MAP_NV :: GLenum+gl_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2+gl_COLOR_ATTACHMENT1 :: GLenum+gl_COLOR_ATTACHMENT1 = 0x8CE1+gl_MAX_TESS_GEN_LEVEL_EXT :: GLenum+gl_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E+gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER :: GLenum+gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45+gl_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM :: GLenum+gl_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = 0x8F66+gl_MATRIX3_ARB :: GLenum+gl_MATRIX3_ARB = 0x88C3+gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB :: GLenum+gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF+gl_FRAGMENT_PROGRAM_BINDING_NV :: GLenum+gl_FRAGMENT_PROGRAM_BINDING_NV = 0x8873+gl_DOT2_ADD_ATI :: GLenum+gl_DOT2_ADD_ATI = 0x896C+gl_CON_2_ATI :: GLenum+gl_CON_2_ATI = 0x8943+gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9+gl_UNIFORM_ARRAY_STRIDE :: GLenum+gl_UNIFORM_ARRAY_STRIDE = 0x8A3C+gl_RECLAIM_MEMORY_HINT_PGI :: GLenum+gl_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE+gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS :: GLenum+gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80+gl_DRAW_BUFFER11_ARB :: GLenum+gl_DRAW_BUFFER11_ARB = 0x8830+gl_NORMAL_ARRAY :: GLenum+gl_NORMAL_ARRAY = 0x8075+gl_PATH_GEN_COMPONENTS_NV :: GLenum+gl_PATH_GEN_COMPONENTS_NV = 0x90B3+gl_COLOR_FLOAT_APPLE :: GLenum+gl_COLOR_FLOAT_APPLE = 0x8A0F+gl_WAIT_FAILED :: GLenum+gl_WAIT_FAILED = 0x911D+gl_SAMPLER_1D_ARRAY_SHADOW :: GLenum+gl_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3+gl_PIXEL_TEX_GEN_Q_CEILING_SGIX :: GLenum+gl_PIXEL_TEX_GEN_Q_CEILING_SGIX = 0x8184+gl_ALWAYS_FAST_HINT_PGI :: GLenum+gl_ALWAYS_FAST_HINT_PGI = 0x1A20C+gl_GEOMETRY_OUTPUT_TYPE_EXT :: GLenum+gl_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC+gl_MAX_PROGRAM_PATCH_ATTRIBS_NV :: GLenum+gl_MAX_PROGRAM_PATCH_ATTRIBS_NV = 0x86D8+gl_TEXTURE_1D_ARRAY :: GLenum+gl_TEXTURE_1D_ARRAY = 0x8C18+gl_LIST_MODE :: GLenum+gl_LIST_MODE = 0x0B30+gl_COLOR_ARRAY_TYPE :: GLenum+gl_COLOR_ARRAY_TYPE = 0x8082+gl_SAMPLE_MASK_VALUE_EXT :: GLenum+gl_SAMPLE_MASK_VALUE_EXT = 0x80AA+gl_PIXEL_BUFFER_BARRIER_BIT :: GLenum+gl_PIXEL_BUFFER_BARRIER_BIT = 0x00000080+gl_SCISSOR_BOX :: GLenum+gl_SCISSOR_BOX = 0x0C10+gl_UNSIGNED_INT_SAMPLER_3D_EXT :: GLenum+gl_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3+gl_MAX_ATOMIC_COUNTER_BUFFER_SIZE :: GLenum+gl_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8+gl_CLIENT_ALL_ATTRIB_BITS :: GLenum+gl_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF+gl_TRANSPOSE_MODELVIEW_MATRIX_ARB :: GLenum+gl_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3+gl_TEXTURE_BINDING_RECTANGLE_NV :: GLenum+gl_TEXTURE_BINDING_RECTANGLE_NV = 0x84F6+gl_ALPHA_FLOAT32_ATI :: GLenum+gl_ALPHA_FLOAT32_ATI = 0x8816+gl_MAP1_TEXTURE_COORD_4 :: GLenum+gl_MAP1_TEXTURE_COORD_4 = 0x0D96+gl_CONSTANT_ALPHA :: GLenum+gl_CONSTANT_ALPHA = 0x8003+gl_PREVIOUS_EXT :: GLenum+gl_PREVIOUS_EXT = 0x8578+gl_PACK_COMPRESSED_SIZE_SGIX :: GLenum+gl_PACK_COMPRESSED_SIZE_SGIX = 0x831C+gl_IMAGE_2D_ARRAY_EXT :: GLenum+gl_IMAGE_2D_ARRAY_EXT = 0x9053+gl_ASYNC_TEX_IMAGE_SGIX :: GLenum+gl_ASYNC_TEX_IMAGE_SGIX = 0x835C+gl_QUERY_RESULT :: GLenum+gl_QUERY_RESULT = 0x8866+gl_MATRIX0_ARB :: GLenum+gl_MATRIX0_ARB = 0x88C0+gl_UNPACK_CMYK_HINT_EXT :: GLenum+gl_UNPACK_CMYK_HINT_EXT = 0x800F+gl_MAP1_TEXTURE_COORD_1 :: GLenum+gl_MAP1_TEXTURE_COORD_1 = 0x0D93+gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH :: GLenum+gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC+gl_PN_TRIANGLES_POINT_MODE_LINEAR_ATI :: GLenum+gl_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5+gl_TEXTURE_BLUE_SIZE_EXT :: GLenum+gl_TEXTURE_BLUE_SIZE_EXT = 0x805E+gl_VARIANT_EXT :: GLenum+gl_VARIANT_EXT = 0x87C1+gl_UNPACK_ROW_LENGTH :: GLenum+gl_UNPACK_ROW_LENGTH = 0x0CF2+gl_VARIANT_DATATYPE_EXT :: GLenum+gl_VARIANT_DATATYPE_EXT = 0x87E5+gl_LINEAR_MIPMAP_LINEAR :: GLenum+gl_LINEAR_MIPMAP_LINEAR = 0x2703+gl_ALPHA8I_EXT :: GLenum+gl_ALPHA8I_EXT = 0x8D90+gl_OUTPUT_TEXTURE_COORD20_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1+gl_EYE_LINEAR :: GLenum+gl_EYE_LINEAR = 0x2400+gl_VIEWPORT :: GLenum+gl_VIEWPORT = 0x0BA2+gl_SHADER_BINARY_DMP :: GLenum+gl_SHADER_BINARY_DMP = 0x9250+gl_TEXTURE25_ARB :: GLenum+gl_TEXTURE25_ARB = 0x84D9+gl_UNSIGNED_SHORT_4_4_4_4_EXT :: GLenum+gl_UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033+gl_PROXY_HISTOGRAM_EXT :: GLenum+gl_PROXY_HISTOGRAM_EXT = 0x8025+gl_SCALEBIAS_HINT_SGIX :: GLenum+gl_SCALEBIAS_HINT_SGIX = 0x8322+gl_MAP_INVALIDATE_RANGE_BIT_EXT :: GLenum+gl_MAP_INVALIDATE_RANGE_BIT_EXT = 0x0004+gl_FRAGMENT_PROGRAM_CALLBACK_MESA :: GLenum+gl_FRAGMENT_PROGRAM_CALLBACK_MESA = 0x8BB1+gl_TRANSLATE_3D_NV :: GLenum+gl_TRANSLATE_3D_NV = 0x9091+gl_PATH_COORD_COUNT_NV :: GLenum+gl_PATH_COORD_COUNT_NV = 0x909E+gl_MAX_ACTIVE_LIGHTS_SGIX :: GLenum+gl_MAX_ACTIVE_LIGHTS_SGIX = 0x8405+gl_TRANSFORM_FEEDBACK_OVERFLOW_ARB :: GLenum+gl_TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC+gl_REFERENCE_PLANE_EQUATION_SGIX :: GLenum+gl_REFERENCE_PLANE_EQUATION_SGIX = 0x817E+gl_PATH_TERMINAL_DASH_CAP_NV :: GLenum+gl_PATH_TERMINAL_DASH_CAP_NV = 0x907D+gl_INDEX_ARRAY :: GLenum+gl_INDEX_ARRAY = 0x8077+gl_INNOCENT_CONTEXT_RESET_ARB :: GLenum+gl_INNOCENT_CONTEXT_RESET_ARB = 0x8254+gl_TEXTURE_BINDING_1D :: GLenum+gl_TEXTURE_BINDING_1D = 0x8068+gl_TRANSFORM_FEEDBACK_BUFFER_STRIDE :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C+gl_QUERY_OBJECT_EXT :: GLenum+gl_QUERY_OBJECT_EXT = 0x9153+gl_UNIFORM_BLOCK :: GLenum+gl_UNIFORM_BLOCK = 0x92E2+gl_CONVOLUTION_HEIGHT :: GLenum+gl_CONVOLUTION_HEIGHT = 0x8019+gl_STENCIL_FAIL :: GLenum+gl_STENCIL_FAIL = 0x0B94+gl_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX :: GLenum+gl_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B+gl_TEXTURE_SAMPLES_IMG :: GLenum+gl_TEXTURE_SAMPLES_IMG = 0x9136+gl_REFLECTION_MAP_NV :: GLenum+gl_REFLECTION_MAP_NV = 0x8512+gl_GREEN_SCALE :: GLenum+gl_GREEN_SCALE = 0x0D18+gl_TRANSFORM_FEEDBACK_BUFFER_EXT :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E+gl_LIGHTEN_NV :: GLenum+gl_LIGHTEN_NV = 0x9298+gl_HISTOGRAM_ALPHA_SIZE_EXT :: GLenum+gl_HISTOGRAM_ALPHA_SIZE_EXT = 0x802B+gl_UNSIGNED_INT64_NV :: GLenum+gl_UNSIGNED_INT64_NV = 0x140F+gl_LINE_STIPPLE_REPEAT :: GLenum+gl_LINE_STIPPLE_REPEAT = 0x0B26+gl_YCBCR_MESA :: GLenum+gl_YCBCR_MESA = 0x8757+gl_LEQUAL :: GLenum+gl_LEQUAL = 0x0203+gl_BUFFER_USAGE_ARB :: GLenum+gl_BUFFER_USAGE_ARB = 0x8765+gl_MAP1_VERTEX_ATTRIB6_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666+gl_SAMPLER_BUFFER_AMD :: GLenum+gl_SAMPLER_BUFFER_AMD = 0x9001+gl_OBJECT_DISTANCE_TO_LINE_SGIS :: GLenum+gl_OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3+gl_PIXEL_COUNT_NV :: GLenum+gl_PIXEL_COUNT_NV = 0x8866+gl_VERTEX_PROGRAM_POSITION_MESA :: GLenum+gl_VERTEX_PROGRAM_POSITION_MESA = 0x8BB4+gl_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI :: GLenum+gl_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7+gl_POST_COLOR_MATRIX_BLUE_BIAS :: GLenum+gl_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA+gl_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX :: GLenum+gl_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX = 0x904B+gl_VERTEX_ATTRIB_MAP2_APPLE :: GLenum+gl_VERTEX_ATTRIB_MAP2_APPLE = 0x8A01+gl_PLUS_DARKER_NV :: GLenum+gl_PLUS_DARKER_NV = 0x9292+gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT :: GLenum+gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x906B+gl_FRAGMENT_SHADER_INVOCATIONS_ARB :: GLenum+gl_FRAGMENT_SHADER_INVOCATIONS_ARB = 0x82F4+gl_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT :: GLenum+gl_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = 0x9069+gl_PROXY_TEXTURE_CUBE_MAP_ARRAY :: GLenum+gl_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B+gl_UNSIGNED_INT_IMAGE_CUBE_EXT :: GLenum+gl_UNSIGNED_INT_IMAGE_CUBE_EXT = 0x9066+gl_DYNAMIC_DRAW_ARB :: GLenum+gl_DYNAMIC_DRAW_ARB = 0x88E8+gl_RGBA_SNORM :: GLenum+gl_RGBA_SNORM = 0x8F93+gl_MAX_UNIFORM_BLOCK_SIZE :: GLenum+gl_MAX_UNIFORM_BLOCK_SIZE = 0x8A30+gl_FUNC_REVERSE_SUBTRACT_EXT :: GLenum+gl_FUNC_REVERSE_SUBTRACT_EXT = 0x800B+gl_STENCIL_BUFFER_BIT1_QCOM :: GLenum+gl_STENCIL_BUFFER_BIT1_QCOM = 0x00020000+gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB+gl_TEXTURE_1D_BINDING_EXT :: GLenum+gl_TEXTURE_1D_BINDING_EXT = 0x8068+gl_RGBA4_EXT :: GLenum+gl_RGBA4_EXT = 0x8056+gl_PREFER_DOUBLEBUFFER_HINT_PGI :: GLenum+gl_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8+gl_UNKNOWN_CONTEXT_RESET_KHR :: GLenum+gl_UNKNOWN_CONTEXT_RESET_KHR = 0x8255+gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES :: GLenum+gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5C+gl_REFERENCED_BY_COMPUTE_SHADER :: GLenum+gl_REFERENCED_BY_COMPUTE_SHADER = 0x930B+gl_REG_17_ATI :: GLenum+gl_REG_17_ATI = 0x8932+gl_BUFFER_FLUSHING_UNMAP_APPLE :: GLenum+gl_BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13+gl_UNIFORM :: GLenum+gl_UNIFORM = 0x92E1+gl_TEXCOORD4_BIT_PGI :: GLenum+gl_TEXCOORD4_BIT_PGI = 0x80000000+gl_BIAS_BY_NEGATIVE_ONE_HALF_NV :: GLenum+gl_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541+gl_OP_FLOOR_EXT :: GLenum+gl_OP_FLOOR_EXT = 0x878F+gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV :: GLenum+gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9+gl_CURRENT_QUERY :: GLenum+gl_CURRENT_QUERY = 0x8865+gl_UNIFORM_BUFFER_START :: GLenum+gl_UNIFORM_BUFFER_START = 0x8A29+gl_DEBUG_SEVERITY_HIGH_KHR :: GLenum+gl_DEBUG_SEVERITY_HIGH_KHR = 0x9146+gl_T2F_C4UB_V3F :: GLenum+gl_T2F_C4UB_V3F = 0x2A29+gl_FONT_GLYPHS_AVAILABLE_NV :: GLenum+gl_FONT_GLYPHS_AVAILABLE_NV = 0x9368+gl_MAX_CONVOLUTION_HEIGHT_EXT :: GLenum+gl_MAX_CONVOLUTION_HEIGHT_EXT = 0x801B+gl_STENCIL_BUFFER_BIT3_QCOM :: GLenum+gl_STENCIL_BUFFER_BIT3_QCOM = 0x00080000+gl_MAP1_VERTEX_ATTRIB3_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663+gl_BLEND_EQUATION_ALPHA_EXT :: GLenum+gl_BLEND_EQUATION_ALPHA_EXT = 0x883D+gl_RGB_FLOAT32_APPLE :: GLenum+gl_RGB_FLOAT32_APPLE = 0x8815+gl_CONSTANT_BORDER :: GLenum+gl_CONSTANT_BORDER = 0x8151+gl_CON_0_ATI :: GLenum+gl_CON_0_ATI = 0x8941+gl_VERTEX_ARRAY_RANGE_POINTER_NV :: GLenum+gl_VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521+gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV :: GLenum+gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852+gl_INTERLACE_SGIX :: GLenum+gl_INTERLACE_SGIX = 0x8094+gl_UNPACK_CONSTANT_DATA_SUNX :: GLenum+gl_UNPACK_CONSTANT_DATA_SUNX = 0x81D5+gl_VERTEX_BINDING_STRIDE :: GLenum+gl_VERTEX_BINDING_STRIDE = 0x82D8+gl_IS_PER_PATCH :: GLenum+gl_IS_PER_PATCH = 0x92E7+gl_AVERAGE_HP :: GLenum+gl_AVERAGE_HP = 0x8160+gl_MAX_VERTEX_ATTRIBS :: GLenum+gl_MAX_VERTEX_ATTRIBS = 0x8869+gl_MAX_SAMPLES_ANGLE :: GLenum+gl_MAX_SAMPLES_ANGLE = 0x8D57+gl_RED_EXT :: GLenum+gl_RED_EXT = 0x1903+gl_MAP1_NORMAL :: GLenum+gl_MAP1_NORMAL = 0x0D92+gl_TEXTURE_COMPRESSED_BLOCK_HEIGHT :: GLenum+gl_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2+gl_MIN_SAMPLE_SHADING_VALUE_ARB :: GLenum+gl_MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37+gl_COMPRESSED_SLUMINANCE_EXT :: GLenum+gl_COMPRESSED_SLUMINANCE_EXT = 0x8C4A+gl_RGBA4 :: GLenum+gl_RGBA4 = 0x8056+gl_TEXTURE_VIEW_MIN_LAYER :: GLenum+gl_TEXTURE_VIEW_MIN_LAYER = 0x82DD+gl_ONE_EXT :: GLenum+gl_ONE_EXT = 0x87DE+gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES :: GLenum+gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES = 0x9277+gl_MODELVIEW31_ARB :: GLenum+gl_MODELVIEW31_ARB = 0x873F+gl_MAX_TEXTURE_IMAGE_UNITS :: GLenum+gl_MAX_TEXTURE_IMAGE_UNITS = 0x8872+gl_COLOR_ATTACHMENT3_NV :: GLenum+gl_COLOR_ATTACHMENT3_NV = 0x8CE3+gl_LUMINANCE6_ALPHA2 :: GLenum+gl_LUMINANCE6_ALPHA2 = 0x8044+gl_POINT_SPRITE_R_MODE_NV :: GLenum+gl_POINT_SPRITE_R_MODE_NV = 0x8863+gl_COMPARE_REF_TO_TEXTURE :: GLenum+gl_COMPARE_REF_TO_TEXTURE = 0x884E+gl_MAX_PROJECTION_STACK_DEPTH :: GLenum+gl_MAX_PROJECTION_STACK_DEPTH = 0x0D38+gl_BLEND_DST_ALPHA :: GLenum+gl_BLEND_DST_ALPHA = 0x80CA+gl_TEXTURE_1D_STACK_BINDING_MESAX :: GLenum+gl_TEXTURE_1D_STACK_BINDING_MESAX = 0x875D+gl_VERTEX_ATTRIB_ARRAY_LENGTH_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A+gl_PROGRAM_PARAMETER_NV :: GLenum+gl_PROGRAM_PARAMETER_NV = 0x8644+gl_VIDEO_CAPTURE_FRAME_WIDTH_NV :: GLenum+gl_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038+gl_MATRIX21_ARB :: GLenum+gl_MATRIX21_ARB = 0x88D5+gl_LIST_BASE :: GLenum+gl_LIST_BASE = 0x0B32+gl_COLOR_ATTACHMENT5 :: GLenum+gl_COLOR_ATTACHMENT5 = 0x8CE5+gl_VERTEX_ARRAY_BINDING_APPLE :: GLenum+gl_VERTEX_ARRAY_BINDING_APPLE = 0x85B5+gl_RELATIVE_LARGE_CW_ARC_TO_NV :: GLenum+gl_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19+gl_MAX_DEFORMATION_ORDER_SGIX :: GLenum+gl_MAX_DEFORMATION_ORDER_SGIX = 0x8197+gl_COVERAGE_AUTOMATIC_NV :: GLenum+gl_COVERAGE_AUTOMATIC_NV = 0x8ED7+gl_FOG_FUNC_SGIS :: GLenum+gl_FOG_FUNC_SGIS = 0x812A+gl_SAMPLER_BUFFER_EXT :: GLenum+gl_SAMPLER_BUFFER_EXT = 0x8DC2+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2+gl_RGB8 :: GLenum+gl_RGB8 = 0x8051+gl_PRIMARY_COLOR_NV :: GLenum+gl_PRIMARY_COLOR_NV = 0x852C+gl_DEPTH_TEXTURE_MODE_ARB :: GLenum+gl_DEPTH_TEXTURE_MODE_ARB = 0x884B+gl_LUMINANCE12_ALPHA4 :: GLenum+gl_LUMINANCE12_ALPHA4 = 0x8046+gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS :: GLenum+gl_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9+gl_TEXTURE_BUFFER_EXT :: GLenum+gl_TEXTURE_BUFFER_EXT = 0x8C2A+gl_LINK_STATUS :: GLenum+gl_LINK_STATUS = 0x8B82+gl_VERTEX_SHADER_EXT :: GLenum+gl_VERTEX_SHADER_EXT = 0x8780+gl_VERTEX_ARRAY_POINTER :: GLenum+gl_VERTEX_ARRAY_POINTER = 0x808E+gl_ONE_MINUS_SRC1_ALPHA :: GLenum+gl_ONE_MINUS_SRC1_ALPHA = 0x88FB+gl_TEXTURE_BUFFER_SIZE_EXT :: GLenum+gl_TEXTURE_BUFFER_SIZE_EXT = 0x919E+gl_DEBUG_SEVERITY_MEDIUM :: GLenum+gl_DEBUG_SEVERITY_MEDIUM = 0x9147+gl_ASYNC_READ_PIXELS_SGIX :: GLenum+gl_ASYNC_READ_PIXELS_SGIX = 0x835E+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1+gl_REPLACE_EXT :: GLenum+gl_REPLACE_EXT = 0x8062+gl_DEBUG_SOURCE_APPLICATION_ARB :: GLenum+gl_DEBUG_SOURCE_APPLICATION_ARB = 0x824A+gl_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB :: GLenum+gl_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = 0x9345+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = 0x93E1+gl_BROWSER_DEFAULT_WEBGL :: GLenum+gl_BROWSER_DEFAULT_WEBGL = 0x9244+gl_MULTISAMPLE_BUFFER_BIT0_QCOM :: GLenum+gl_MULTISAMPLE_BUFFER_BIT0_QCOM = 0x01000000+gl_DUAL_ALPHA8_SGIS :: GLenum+gl_DUAL_ALPHA8_SGIS = 0x8111+gl_COMPRESSED_RGB_FXT1_3DFX :: GLenum+gl_COMPRESSED_RGB_FXT1_3DFX = 0x86B0+gl_BLEND_SRC_RGB_OES :: GLenum+gl_BLEND_SRC_RGB_OES = 0x80C9+gl_T2F_IUI_V2F_EXT :: GLenum+gl_T2F_IUI_V2F_EXT = 0x81B1+gl_DRAW_BUFFER13_ARB :: GLenum+gl_DRAW_BUFFER13_ARB = 0x8832+gl_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV :: GLenum+gl_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = 0x84E3+gl_TEXTURE_INTENSITY_TYPE_ARB :: GLenum+gl_TEXTURE_INTENSITY_TYPE_ARB = 0x8C15+gl_DU8DV8_ATI :: GLenum+gl_DU8DV8_ATI = 0x877A+gl_MAP1_VERTEX_ATTRIB14_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E+gl_VARIANT_ARRAY_STRIDE_EXT :: GLenum+gl_VARIANT_ARRAY_STRIDE_EXT = 0x87E6+gl_RGB_S3TC :: GLenum+gl_RGB_S3TC = 0x83A0+gl_NORMAL_ARRAY_POINTER :: GLenum+gl_NORMAL_ARRAY_POINTER = 0x808F+gl_CONSTANT_ALPHA_EXT :: GLenum+gl_CONSTANT_ALPHA_EXT = 0x8003+gl_COLOR_ATTACHMENT8_NV :: GLenum+gl_COLOR_ATTACHMENT8_NV = 0x8CE8+gl_MAX_LIST_NESTING :: GLenum+gl_MAX_LIST_NESTING = 0x0B31+gl_FRAMEBUFFER_UNDEFINED :: GLenum+gl_FRAMEBUFFER_UNDEFINED = 0x8219+gl_ACTIVE_STENCIL_FACE_EXT :: GLenum+gl_ACTIVE_STENCIL_FACE_EXT = 0x8911+gl_DEPTH_SCALE :: GLenum+gl_DEPTH_SCALE = 0x0D1E+gl_READ_PIXELS_FORMAT :: GLenum+gl_READ_PIXELS_FORMAT = 0x828D+gl_QUADS_EXT :: GLenum+gl_QUADS_EXT = 0x0007+gl_MAX_COMBINED_SHADER_STORAGE_BLOCKS :: GLenum+gl_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC+gl_OUTPUT_VERTEX_EXT :: GLenum+gl_OUTPUT_VERTEX_EXT = 0x879A+gl_PROGRAM_ATTRIBS_ARB :: GLenum+gl_PROGRAM_ATTRIBS_ARB = 0x88AC+gl_MAP1_VERTEX_ATTRIB8_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668+gl_INVALID_ENUM :: GLenum+gl_INVALID_ENUM = 0x0500+gl_1PASS_EXT :: GLenum+gl_1PASS_EXT = 0x80A1+gl_FUNC_ADD_EXT :: GLenum+gl_FUNC_ADD_EXT = 0x8006+gl_DISTANCE_ATTENUATION_SGIS :: GLenum+gl_DISTANCE_ATTENUATION_SGIS = 0x8129+gl_REG_3_ATI :: GLenum+gl_REG_3_ATI = 0x8924+gl_INTERPOLATE :: GLenum+gl_INTERPOLATE = 0x8575+gl_MITER_TRUNCATE_NV :: GLenum+gl_MITER_TRUNCATE_NV = 0x90A8+gl_MAX_PROGRAM_NATIVE_ATTRIBS_ARB :: GLenum+gl_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF+gl_CONTEXT_COMPATIBILITY_PROFILE_BIT :: GLenum+gl_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002+gl_MATRIX_STRIDE :: GLenum+gl_MATRIX_STRIDE = 0x92FF+gl_FONT_Y_MIN_BOUNDS_BIT_NV :: GLenum+gl_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000+gl_COMBINER_BIAS_NV :: GLenum+gl_COMBINER_BIAS_NV = 0x8549+gl_TEXTURE_CUBE_MAP_POSITIVE_X_ARB :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515+gl_CIRCULAR_CW_ARC_TO_NV :: GLenum+gl_CIRCULAR_CW_ARC_TO_NV = 0xFA+gl_UNSIGNED_INT_IMAGE_1D_EXT :: GLenum+gl_UNSIGNED_INT_IMAGE_1D_EXT = 0x9062+gl_BLUE_SCALE :: GLenum+gl_BLUE_SCALE = 0x0D1A+gl_OFFSET_TEXTURE_SCALE_NV :: GLenum+gl_OFFSET_TEXTURE_SCALE_NV = 0x86E2+gl_OFFSET_TEXTURE_2D_NV :: GLenum+gl_OFFSET_TEXTURE_2D_NV = 0x86E8+gl_INTERNALFORMAT_DEPTH_SIZE :: GLenum+gl_INTERNALFORMAT_DEPTH_SIZE = 0x8275+gl_TIMEOUT_IGNORED :: GLenum+gl_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF+gl_BGRA_EXT :: GLenum+gl_BGRA_EXT = 0x80E1+gl_GEQUAL :: GLenum+gl_GEQUAL = 0x0206+gl_EXCLUSION_KHR :: GLenum+gl_EXCLUSION_KHR = 0x92A0+gl_LINES_ADJACENCY_ARB :: GLenum+gl_LINES_ADJACENCY_ARB = 0x000A+gl_MAX_COMPUTE_WORK_GROUP_COUNT :: GLenum+gl_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE+gl_RENDERBUFFER_EXT :: GLenum+gl_RENDERBUFFER_EXT = 0x8D41+gl_GENERATE_MIPMAP :: GLenum+gl_GENERATE_MIPMAP = 0x8191+gl_SOURCE1_ALPHA_EXT :: GLenum+gl_SOURCE1_ALPHA_EXT = 0x8589+gl_VERTEX_TEXTURE :: GLenum+gl_VERTEX_TEXTURE = 0x829B+gl_LIGHT1 :: GLenum+gl_LIGHT1 = 0x4001+gl_STATIC_READ_ARB :: GLenum+gl_STATIC_READ_ARB = 0x88E5+gl_INTERLACE_READ_INGR :: GLenum+gl_INTERLACE_READ_INGR = 0x8568+gl_COMPRESSED_R11_EAC_OES :: GLenum+gl_COMPRESSED_R11_EAC_OES = 0x9270+gl_FRAGMENT_SHADER_ARB :: GLenum+gl_FRAGMENT_SHADER_ARB = 0x8B30+gl_CURRENT_RASTER_POSITION :: GLenum+gl_CURRENT_RASTER_POSITION = 0x0B07+gl_WEIGHT_ARRAY_BUFFER_BINDING_OES :: GLenum+gl_WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E+gl_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT :: GLenum+gl_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C+gl_RGB_FLOAT32_ATI :: GLenum+gl_RGB_FLOAT32_ATI = 0x8815+gl_LUMINANCE16_ALPHA16_EXT :: GLenum+gl_LUMINANCE16_ALPHA16_EXT = 0x8048+gl_RENDERBUFFER_WIDTH_EXT :: GLenum+gl_RENDERBUFFER_WIDTH_EXT = 0x8D42+gl_DEPTH_RANGE :: GLenum+gl_DEPTH_RANGE = 0x0B70+gl_4_BYTES :: GLenum+gl_4_BYTES = 0x1409+gl_VERTEX_WEIGHTING_EXT :: GLenum+gl_VERTEX_WEIGHTING_EXT = 0x8509+gl_TEXTURE_SWIZZLE_B :: GLenum+gl_TEXTURE_SWIZZLE_B = 0x8E44+gl_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV :: GLenum+gl_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0+gl_FEEDBACK_BUFFER_POINTER :: GLenum+gl_FEEDBACK_BUFFER_POINTER = 0x0DF0+gl_CULL_VERTEX_IBM :: GLenum+gl_CULL_VERTEX_IBM = 103050+gl_UNPACK_SKIP_VOLUMES_SGIS :: GLenum+gl_UNPACK_SKIP_VOLUMES_SGIS = 0x8132+gl_PIXEL_CUBIC_WEIGHT_EXT :: GLenum+gl_PIXEL_CUBIC_WEIGHT_EXT = 0x8333+gl_DECR_WRAP_EXT :: GLenum+gl_DECR_WRAP_EXT = 0x8508+gl_TEXTURE31 :: GLenum+gl_TEXTURE31 = 0x84DF+gl_MAX_TESS_GEN_LEVEL :: GLenum+gl_MAX_TESS_GEN_LEVEL = 0x8E7E+gl_YCBAYCR8A_4224_NV :: GLenum+gl_YCBAYCR8A_4224_NV = 0x9032+gl_POINT_SPRITE_OES :: GLenum+gl_POINT_SPRITE_OES = 0x8861+gl_SAMPLER_EXTERNAL_OES :: GLenum+gl_SAMPLER_EXTERNAL_OES = 0x8D66+gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT :: GLenum+gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = 0x8F63+gl_PIXEL_PACK_BUFFER_BINDING_ARB :: GLenum+gl_PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED+gl_DEBUG_CATEGORY_API_ERROR_AMD :: GLenum+gl_DEBUG_CATEGORY_API_ERROR_AMD = 0x9149+gl_TEXCOORD3_BIT_PGI :: GLenum+gl_TEXCOORD3_BIT_PGI = 0x40000000+gl_UNIFORM_BUFFER_EXT :: GLenum+gl_UNIFORM_BUFFER_EXT = 0x8DEE+gl_COMPRESSED_RGBA8_ETC2_EAC :: GLenum+gl_COMPRESSED_RGBA8_ETC2_EAC = 0x9278+gl_COLOR_SUM_CLAMP_NV :: GLenum+gl_COLOR_SUM_CLAMP_NV = 0x854F+gl_SAMPLER_CUBE :: GLenum+gl_SAMPLER_CUBE = 0x8B60+gl_FRACTIONAL_ODD :: GLenum+gl_FRACTIONAL_ODD = 0x8E7B+gl_ONE_MINUS_DST_COLOR :: GLenum+gl_ONE_MINUS_DST_COLOR = 0x0307+gl_REG_9_ATI :: GLenum+gl_REG_9_ATI = 0x892A+gl_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV :: GLenum+gl_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035+gl_PIXEL_MAP_I_TO_G :: GLenum+gl_PIXEL_MAP_I_TO_G = 0x0C73+gl_FOG_COORD_ARRAY_STRIDE :: GLenum+gl_FOG_COORD_ARRAY_STRIDE = 0x8455+gl_TRIANGLES_ADJACENCY_EXT :: GLenum+gl_TRIANGLES_ADJACENCY_EXT = 0x000C+gl_DRAW_BUFFER14_EXT :: GLenum+gl_DRAW_BUFFER14_EXT = 0x8833+gl_TEXTURE_COMPARE_MODE_ARB :: GLenum+gl_TEXTURE_COMPARE_MODE_ARB = 0x884C+gl_REFLECTION_MAP_OES :: GLenum+gl_REFLECTION_MAP_OES = 0x8512+gl_WARPS_PER_SM_NV :: GLenum+gl_WARPS_PER_SM_NV = 0x933A+gl_QUERY_WAIT :: GLenum+gl_QUERY_WAIT = 0x8E13+gl_COMPRESSED_SLUMINANCE_ALPHA :: GLenum+gl_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B+gl_MAP2_TEXTURE_COORD_3 :: GLenum+gl_MAP2_TEXTURE_COORD_3 = 0x0DB5+gl_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV :: GLenum+gl_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08+gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV :: GLenum+gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1+gl_INTENSITY_FLOAT32_ATI :: GLenum+gl_INTENSITY_FLOAT32_ATI = 0x8817+gl_CLAMP_TO_BORDER_SGIS :: GLenum+gl_CLAMP_TO_BORDER_SGIS = 0x812D+gl_FIELDS_NV :: GLenum+gl_FIELDS_NV = 0x8E27+gl_MAX_GEOMETRY_OUTPUT_VERTICES :: GLenum+gl_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4+gl_INT_SAMPLER_CUBE_EXT :: GLenum+gl_INT_SAMPLER_CUBE_EXT = 0x8DCC+gl_SOURCE0_RGB_EXT :: GLenum+gl_SOURCE0_RGB_EXT = 0x8580+gl_DRAW_BUFFER10_ATI :: GLenum+gl_DRAW_BUFFER10_ATI = 0x882F+gl_VERTEX_ATTRIB_ARRAY_INTEGER_EXT :: GLenum+gl_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD+gl_COPY_WRITE_BUFFER_NV :: GLenum+gl_COPY_WRITE_BUFFER_NV = 0x8F37+gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV :: GLenum+gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54+gl_LUMINANCE8_OES :: GLenum+gl_LUMINANCE8_OES = 0x8040+gl_POST_CONVOLUTION_RED_BIAS_EXT :: GLenum+gl_POST_CONVOLUTION_RED_BIAS_EXT = 0x8020+gl_HSL_COLOR_KHR :: GLenum+gl_HSL_COLOR_KHR = 0x92AF+gl_SAMPLE_MASK_VALUE_NV :: GLenum+gl_SAMPLE_MASK_VALUE_NV = 0x8E52+gl_SLUMINANCE8_NV :: GLenum+gl_SLUMINANCE8_NV = 0x8C47+gl_ASYNC_MARKER_SGIX :: GLenum+gl_ASYNC_MARKER_SGIX = 0x8329+gl_TEXTURE17 :: GLenum+gl_TEXTURE17 = 0x84D1+gl_SYNC_CL_EVENT_COMPLETE_ARB :: GLenum+gl_SYNC_CL_EVENT_COMPLETE_ARB = 0x8241+gl_INVARIANT_VALUE_EXT :: GLenum+gl_INVARIANT_VALUE_EXT = 0x87EA+gl_BUMP_ROT_MATRIX_SIZE_ATI :: GLenum+gl_BUMP_ROT_MATRIX_SIZE_ATI = 0x8776+gl_ACTIVE_VARYING_MAX_LENGTH_NV :: GLenum+gl_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82+gl_DEPTH_COMPONENT16 :: GLenum+gl_DEPTH_COMPONENT16 = 0x81A5+gl_MODELVIEW25_ARB :: GLenum+gl_MODELVIEW25_ARB = 0x8739+gl_SHADER_BINARY_VIV :: GLenum+gl_SHADER_BINARY_VIV = 0x8FC4+gl_VERTEX_ARRAY_STRIDE_EXT :: GLenum+gl_VERTEX_ARRAY_STRIDE_EXT = 0x807C+gl_VERTEX_ATTRIB_ARRAY_POINTER_ARB :: GLenum+gl_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645+gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB :: GLenum+gl_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004+gl_MAX_PALETTE_MATRICES_ARB :: GLenum+gl_MAX_PALETTE_MATRICES_ARB = 0x8842+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER :: GLenum+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA+gl_DEPTH_COMPONENT32_ARB :: GLenum+gl_DEPTH_COMPONENT32_ARB = 0x81A7+gl_PRESERVE_ATI :: GLenum+gl_PRESERVE_ATI = 0x8762+gl_PIXEL_TEX_GEN_ALPHA_LS_SGIX :: GLenum+gl_PIXEL_TEX_GEN_ALPHA_LS_SGIX = 0x8189+gl_VERTEX_PROGRAM_TWO_SIDE_NV :: GLenum+gl_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643+gl_MAX_ELEMENTS_INDICES_EXT :: GLenum+gl_MAX_ELEMENTS_INDICES_EXT = 0x80E9+gl_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS :: GLenum+gl_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33+gl_CONTEXT_LOST :: GLenum+gl_CONTEXT_LOST = 0x0507+gl_VERTEX_SUBROUTINE_UNIFORM :: GLenum+gl_VERTEX_SUBROUTINE_UNIFORM = 0x92EE+gl_COMPRESSED_SRGB_EXT :: GLenum+gl_COMPRESSED_SRGB_EXT = 0x8C48+gl_SAMPLER_2D_MULTISAMPLE_ARRAY :: GLenum+gl_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B+gl_MAX_PROGRAM_ADDRESS_REGISTERS_ARB :: GLenum+gl_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1+gl_STENCIL_INDEX_OES :: GLenum+gl_STENCIL_INDEX_OES = 0x1901+gl_PATH_INITIAL_END_CAP_NV :: GLenum+gl_PATH_INITIAL_END_CAP_NV = 0x9077+gl_INTENSITY32F_ARB :: GLenum+gl_INTENSITY32F_ARB = 0x8817+gl_SAMPLES_PASSED :: GLenum+gl_SAMPLES_PASSED = 0x8914+gl_INT_IMAGE_2D_RECT_EXT :: GLenum+gl_INT_IMAGE_2D_RECT_EXT = 0x905A+gl_CLIP_PLANE2 :: GLenum+gl_CLIP_PLANE2 = 0x3002+gl_PALETTE8_RGB8_OES :: GLenum+gl_PALETTE8_RGB8_OES = 0x8B95+gl_ALPHA16I_EXT :: GLenum+gl_ALPHA16I_EXT = 0x8D8A+gl_VERTEX_ARRAY :: GLenum+gl_VERTEX_ARRAY = 0x8074+gl_TEXTURE23_ARB :: GLenum+gl_TEXTURE23_ARB = 0x84D7+gl_AMBIENT_AND_DIFFUSE :: GLenum+gl_AMBIENT_AND_DIFFUSE = 0x1602+gl_MULTISAMPLE_BUFFER_BIT2_QCOM :: GLenum+gl_MULTISAMPLE_BUFFER_BIT2_QCOM = 0x04000000+gl_LUMINANCE_FLOAT16_ATI :: GLenum+gl_LUMINANCE_FLOAT16_ATI = 0x881E+gl_INDEX_ARRAY_TYPE :: GLenum+gl_INDEX_ARRAY_TYPE = 0x8085+gl_COMPATIBLE_SUBROUTINES :: GLenum+gl_COMPATIBLE_SUBROUTINES = 0x8E4B+gl_VERTEX4_BIT_PGI :: GLenum+gl_VERTEX4_BIT_PGI = 0x00000008+gl_FOG_COORD_SRC :: GLenum+gl_FOG_COORD_SRC = 0x8450+gl_FULL_SUPPORT :: GLenum+gl_FULL_SUPPORT = 0x82B7+gl_STEREO :: GLenum+gl_STEREO = 0x0C33+gl_LUMINANCE_ALPHA16UI_EXT :: GLenum+gl_LUMINANCE_ALPHA16UI_EXT = 0x8D7B+gl_ONE_MINUS_SRC_COLOR :: GLenum+gl_ONE_MINUS_SRC_COLOR = 0x0301+gl_MAX_SHADER_STORAGE_BLOCK_SIZE :: GLenum+gl_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE+gl_REPLICATE_BORDER_HP :: GLenum+gl_REPLICATE_BORDER_HP = 0x8153+gl_VERTEX_ATTRIB_MAP1_ORDER_APPLE :: GLenum+gl_VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04+gl_CPU_OPTIMIZED_QCOM :: GLenum+gl_CPU_OPTIMIZED_QCOM = 0x8FB1+gl_FLOAT16_VEC2_NV :: GLenum+gl_FLOAT16_VEC2_NV = 0x8FF9+gl_SAMPLE_ALPHA_TO_ONE_SGIS :: GLenum+gl_SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F+gl_MAP2_VERTEX_ATTRIB12_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C+gl_COMBINER_MUX_SUM_NV :: GLenum+gl_COMBINER_MUX_SUM_NV = 0x8547+gl_UNSIGNED_SHORT_5_6_5_REV_EXT :: GLenum+gl_UNSIGNED_SHORT_5_6_5_REV_EXT = 0x8364+gl_TEXTURE20_ARB :: GLenum+gl_TEXTURE20_ARB = 0x84D4+gl_DOT3_RGB :: GLenum+gl_DOT3_RGB = 0x86AE+gl_STENCIL_BUFFER_BIT0_QCOM :: GLenum+gl_STENCIL_BUFFER_BIT0_QCOM = 0x00010000+gl_LO_SCALE_NV :: GLenum+gl_LO_SCALE_NV = 0x870F+gl_FONT_ASCENDER_BIT_NV :: GLenum+gl_FONT_ASCENDER_BIT_NV = 0x00200000+gl_DRAW_BUFFER9_EXT :: GLenum+gl_DRAW_BUFFER9_EXT = 0x882E+gl_UNSIGNED_INT_2_10_10_10_REV :: GLenum+gl_UNSIGNED_INT_2_10_10_10_REV = 0x8368+gl_BINNING_CONTROL_HINT_QCOM :: GLenum+gl_BINNING_CONTROL_HINT_QCOM = 0x8FB0+gl_PROGRAM_TEMPORARIES_ARB :: GLenum+gl_PROGRAM_TEMPORARIES_ARB = 0x88A4+gl_MODELVIEW27_ARB :: GLenum+gl_MODELVIEW27_ARB = 0x873B+gl_RGBA16F_EXT :: GLenum+gl_RGBA16F_EXT = 0x881A+gl_INDEX_ARRAY_TYPE_EXT :: GLenum+gl_INDEX_ARRAY_TYPE_EXT = 0x8085+gl_MAX_VERTEX_SHADER_LOCALS_EXT :: GLenum+gl_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9+gl_TEXTURE_CUBE_MAP_POSITIVE_Z_OES :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519+gl_COMP_BIT_ATI :: GLenum+gl_COMP_BIT_ATI = 0x00000002+gl_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT :: GLenum+gl_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = 0x8A2C+gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY :: GLenum+gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061+gl_RGB10_A2_EXT :: GLenum+gl_RGB10_A2_EXT = 0x8059+gl_MAP1_VERTEX_ATTRIB4_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664+gl_FLOAT_VEC3 :: GLenum+gl_FLOAT_VEC3 = 0x8B51+gl_DELETE_STATUS :: GLenum+gl_DELETE_STATUS = 0x8B80+gl_PN_TRIANGLES_TESSELATION_LEVEL_ATI :: GLenum+gl_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4+gl_UNCORRELATED_NV :: GLenum+gl_UNCORRELATED_NV = 0x9282+gl_RELATIVE_SMALL_CW_ARC_TO_NV :: GLenum+gl_RELATIVE_SMALL_CW_ARC_TO_NV = 0x15+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT :: GLenum+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F+gl_RGB_FLOAT16_ATI :: GLenum+gl_RGB_FLOAT16_ATI = 0x881B+gl_DRAW_BUFFER7_ATI :: GLenum+gl_DRAW_BUFFER7_ATI = 0x882C+gl_COMBINE_ALPHA_ARB :: GLenum+gl_COMBINE_ALPHA_ARB = 0x8572+gl_RESET_NOTIFICATION_STRATEGY_EXT :: GLenum+gl_RESET_NOTIFICATION_STRATEGY_EXT = 0x8256+gl_DRAW_BUFFER10_NV :: GLenum+gl_DRAW_BUFFER10_NV = 0x882F+gl_READ_PIXEL_DATA_RANGE_POINTER_NV :: GLenum+gl_READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D+gl_TRANSFORM_FEEDBACK_ACTIVE :: GLenum+gl_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4+gl_PROGRAM_PIPELINE_BINDING :: GLenum+gl_PROGRAM_PIPELINE_BINDING = 0x825A+gl_SRGB8_ALPHA8 :: GLenum+gl_SRGB8_ALPHA8 = 0x8C43+gl_COLOR_INDEX16_EXT :: GLenum+gl_COLOR_INDEX16_EXT = 0x80E7+gl_PHONG_WIN :: GLenum+gl_PHONG_WIN = 0x80EA+gl_MAX_TEXTURE_IMAGE_UNITS_NV :: GLenum+gl_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872+gl_DSDT8_MAG8_NV :: GLenum+gl_DSDT8_MAG8_NV = 0x870A+gl_COPY_READ_BUFFER :: GLenum+gl_COPY_READ_BUFFER = 0x8F36+gl_RGBA16F :: GLenum+gl_RGBA16F = 0x881A+gl_UNSIGNED_SHORT_5_6_5 :: GLenum+gl_UNSIGNED_SHORT_5_6_5 = 0x8363+gl_CLIP_DISTANCE5 :: GLenum+gl_CLIP_DISTANCE5 = 0x3005+gl_TEXTURE_BINDING_3D_OES :: GLenum+gl_TEXTURE_BINDING_3D_OES = 0x806A+gl_IUI_V2F_EXT :: GLenum+gl_IUI_V2F_EXT = 0x81AD+gl_OFFSET_HILO_TEXTURE_RECTANGLE_NV :: GLenum+gl_OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855+gl_ONE_MINUS_CONSTANT_ALPHA :: GLenum+gl_ONE_MINUS_CONSTANT_ALPHA = 0x8004+gl_SMALL_CW_ARC_TO_NV :: GLenum+gl_SMALL_CW_ARC_TO_NV = 0x14+gl_IMAGE_BINDING_NAME_EXT :: GLenum+gl_IMAGE_BINDING_NAME_EXT = 0x8F3A+gl_CURRENT_FOG_COORDINATE_EXT :: GLenum+gl_CURRENT_FOG_COORDINATE_EXT = 0x8453+gl_SKIP_COMPONENTS4_NV :: GLenum+gl_SKIP_COMPONENTS4_NV = -3+gl_CLIP_PLANE5_IMG :: GLenum+gl_CLIP_PLANE5_IMG = 0x3005+gl_PATH_MITER_LIMIT_NV :: GLenum+gl_PATH_MITER_LIMIT_NV = 0x907A+gl_TEXTURE_3D :: GLenum+gl_TEXTURE_3D = 0x806F+gl_MAX_COMPUTE_SHADER_STORAGE_BLOCKS :: GLenum+gl_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB+gl_COMPRESSED_LUMINANCE_LATC1_EXT :: GLenum+gl_COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70+gl_MULTISAMPLE_BUFFER_BIT3_QCOM :: GLenum+gl_MULTISAMPLE_BUFFER_BIT3_QCOM = 0x08000000+gl_SECONDARY_COLOR_ARRAY_SIZE :: GLenum+gl_SECONDARY_COLOR_ARRAY_SIZE = 0x845A+gl_RENDERBUFFER_SAMPLES_IMG :: GLenum+gl_RENDERBUFFER_SAMPLES_IMG = 0x9133+gl_R1UI_C4UB_V3F_SUN :: GLenum+gl_R1UI_C4UB_V3F_SUN = 0x85C5+gl_PIXEL_TEX_GEN_ALPHA_MS_SGIX :: GLenum+gl_PIXEL_TEX_GEN_ALPHA_MS_SGIX = 0x818A+gl_TRANSFORM_FEEDBACK_NV :: GLenum+gl_TRANSFORM_FEEDBACK_NV = 0x8E22+gl_FRAMEBUFFER_RENDERABLE :: GLenum+gl_FRAMEBUFFER_RENDERABLE = 0x8289+gl_HARDLIGHT_KHR :: GLenum+gl_HARDLIGHT_KHR = 0x929B+gl_SOURCE0_ALPHA :: GLenum+gl_SOURCE0_ALPHA = 0x8588+gl_COMBINER4_NV :: GLenum+gl_COMBINER4_NV = 0x8554+gl_ELEMENT_ARRAY_BUFFER_BINDING :: GLenum+gl_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895+gl_TEXTURE10_ARB :: GLenum+gl_TEXTURE10_ARB = 0x84CA+gl_CURRENT_BINORMAL_EXT :: GLenum+gl_CURRENT_BINORMAL_EXT = 0x843C+gl_REG_26_ATI :: GLenum+gl_REG_26_ATI = 0x893B+gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS :: GLenum+gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1+gl_ACTIVE_VARYINGS_NV :: GLenum+gl_ACTIVE_VARYINGS_NV = 0x8C81+gl_COMBINE_RGB_EXT :: GLenum+gl_COMBINE_RGB_EXT = 0x8571+gl_FRAMEBUFFER_COMPLETE_EXT :: GLenum+gl_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5+gl_MAX_WIDTH :: GLenum+gl_MAX_WIDTH = 0x827E+gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS :: GLenum+gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5+gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT :: GLenum+gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8+gl_COLORDODGE_KHR :: GLenum+gl_COLORDODGE_KHR = 0x9299+gl_PATH_GEN_COEFF_NV :: GLenum+gl_PATH_GEN_COEFF_NV = 0x90B1+gl_FLOAT_MAT4x3_NV :: GLenum+gl_FLOAT_MAT4x3_NV = 0x8B6A+gl_MINMAX_SINK :: GLenum+gl_MINMAX_SINK = 0x8030+gl_FRONT_AND_BACK :: GLenum+gl_FRONT_AND_BACK = 0x0408+gl_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT :: GLenum+gl_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x8E5A+gl_MATRIX1_ARB :: GLenum+gl_MATRIX1_ARB = 0x88C1+gl_VIEWPORT_SUBPIXEL_BITS :: GLenum+gl_VIEWPORT_SUBPIXEL_BITS = 0x825C+gl_MAX_DUAL_SOURCE_DRAW_BUFFERS :: GLenum+gl_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC+gl_BOOL_VEC3_ARB :: GLenum+gl_BOOL_VEC3_ARB = 0x8B58+gl_OPERAND2_ALPHA :: GLenum+gl_OPERAND2_ALPHA = 0x859A+gl_MAX_DEBUG_GROUP_STACK_DEPTH :: GLenum+gl_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC+gl_PROGRAM :: GLenum+gl_PROGRAM = 0x82E2+gl_WEIGHT_ARRAY_SIZE_ARB :: GLenum+gl_WEIGHT_ARRAY_SIZE_ARB = 0x86AB+gl_BUFFER_GPU_ADDRESS_NV :: GLenum+gl_BUFFER_GPU_ADDRESS_NV = 0x8F1D+gl_ALPHA8_EXT :: GLenum+gl_ALPHA8_EXT = 0x803C+gl_RGBA_MODE :: GLenum+gl_RGBA_MODE = 0x0C31+gl_DUDV_ATI :: GLenum+gl_DUDV_ATI = 0x8779+gl_VERTEX_ATTRIB_ARRAY_INTEGER_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD+gl_RESAMPLE_DECIMATE_OML :: GLenum+gl_RESAMPLE_DECIMATE_OML = 0x8989+gl_QUERY_BUFFER :: GLenum+gl_QUERY_BUFFER = 0x9192+gl_SINGLE_COLOR :: GLenum+gl_SINGLE_COLOR = 0x81F9+gl_INT_SAMPLER_RENDERBUFFER_NV :: GLenum+gl_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57+gl_MAT_COLOR_INDEXES_BIT_PGI :: GLenum+gl_MAT_COLOR_INDEXES_BIT_PGI = 0x01000000+gl_MODELVIEW3_ARB :: GLenum+gl_MODELVIEW3_ARB = 0x8723+gl_TESS_CONTROL_OUTPUT_VERTICES_EXT :: GLenum+gl_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75+gl_PIXEL_MAP_B_TO_B :: GLenum+gl_PIXEL_MAP_B_TO_B = 0x0C78+gl_VERTEX_ATTRIB_MAP1_SIZE_APPLE :: GLenum+gl_VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02+gl_DOUBLE_MAT3 :: GLenum+gl_DOUBLE_MAT3 = 0x8F47+gl_MAX_COMBINED_UNIFORM_BLOCKS :: GLenum+gl_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E+gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT :: GLenum+gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = 0x900D+gl_MAX_VERTEX_IMAGE_UNIFORMS :: GLenum+gl_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA+gl_QUERY_RESULT_NO_WAIT_AMD :: GLenum+gl_QUERY_RESULT_NO_WAIT_AMD = 0x9194+gl_MODELVIEW26_ARB :: GLenum+gl_MODELVIEW26_ARB = 0x873A+gl_DEPTH_COMPONENT24_OES :: GLenum+gl_DEPTH_COMPONENT24_OES = 0x81A6+gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB :: GLenum+gl_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E+gl_EVAL_VERTEX_ATTRIB6_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB6_NV = 0x86CC+gl_OUTPUT_TEXTURE_COORD24_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5+gl_COMPUTE_SHADER_BIT :: GLenum+gl_COMPUTE_SHADER_BIT = 0x00000020+gl_MATRIX7_ARB :: GLenum+gl_MATRIX7_ARB = 0x88C7+gl_RENDER :: GLenum+gl_RENDER = 0x1C00+gl_VERTEX_ATTRIB_BINDING :: GLenum+gl_VERTEX_ATTRIB_BINDING = 0x82D4+gl_VIDEO_CAPTURE_TO_422_SUPPORTED_NV :: GLenum+gl_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026+gl_TEXTURE_COORD_ARRAY_ADDRESS_NV :: GLenum+gl_TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25+gl_UNSIGNED_INT_SAMPLER_2D_RECT :: GLenum+gl_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5+gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB :: GLenum+gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29+gl_GENERATE_MIPMAP_SGIS :: GLenum+gl_GENERATE_MIPMAP_SGIS = 0x8191+gl_SHADER_IMAGE_STORE :: GLenum+gl_SHADER_IMAGE_STORE = 0x82A5+gl_INT_SAMPLER_3D :: GLenum+gl_INT_SAMPLER_3D = 0x8DCB+gl_PROGRAM_BINARY_LENGTH :: GLenum+gl_PROGRAM_BINARY_LENGTH = 0x8741+gl_REFERENCED_BY_GEOMETRY_SHADER :: GLenum+gl_REFERENCED_BY_GEOMETRY_SHADER = 0x9309+gl_SHADER_IMAGE_ACCESS_BARRIER_BIT :: GLenum+gl_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020+gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS :: GLenum+gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3+gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT :: GLenum+gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F+gl_LINE :: GLenum+gl_LINE = 0x1B01+gl_RENDERBUFFER_ALPHA_SIZE_EXT :: GLenum+gl_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53+gl_INTENSITY :: GLenum+gl_INTENSITY = 0x8049+gl_AFFINE_3D_NV :: GLenum+gl_AFFINE_3D_NV = 0x9094+gl_ADD_SIGNED_ARB :: GLenum+gl_ADD_SIGNED_ARB = 0x8574+gl_OBJECT_COMPILE_STATUS_ARB :: GLenum+gl_OBJECT_COMPILE_STATUS_ARB = 0x8B81+gl_RGB8I_EXT :: GLenum+gl_RGB8I_EXT = 0x8D8F+gl_COMMAND_BARRIER_BIT :: GLenum+gl_COMMAND_BARRIER_BIT = 0x00000040+gl_COMBINE_RGB :: GLenum+gl_COMBINE_RGB = 0x8571+gl_VERTEX_SHADER_BINDING_EXT :: GLenum+gl_VERTEX_SHADER_BINDING_EXT = 0x8781+gl_SECONDARY_COLOR_ARRAY_SIZE_EXT :: GLenum+gl_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A+gl_DEPTH_EXT :: GLenum+gl_DEPTH_EXT = 0x1801+gl_LINE_RESET_TOKEN :: GLenum+gl_LINE_RESET_TOKEN = 0x0707+gl_SMOOTH_POINT_SIZE_GRANULARITY :: GLenum+gl_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13+gl_SAMPLER_2D_MULTISAMPLE :: GLenum+gl_SAMPLER_2D_MULTISAMPLE = 0x9108+gl_PRIMARY_COLOR_ARB :: GLenum+gl_PRIMARY_COLOR_ARB = 0x8577+gl_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY :: GLenum+gl_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103+gl_GEOMETRY_TEXTURE :: GLenum+gl_GEOMETRY_TEXTURE = 0x829E+gl_SOURCE1_RGB_ARB :: GLenum+gl_SOURCE1_RGB_ARB = 0x8581+gl_COLOR_ATTACHMENT6_EXT :: GLenum+gl_COLOR_ATTACHMENT6_EXT = 0x8CE6+gl_PIXEL_MAP_I_TO_I :: GLenum+gl_PIXEL_MAP_I_TO_I = 0x0C70+gl_EVAL_VERTEX_ATTRIB7_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB7_NV = 0x86CD+gl_OP_MIN_EXT :: GLenum+gl_OP_MIN_EXT = 0x878B+gl_RGB16F_EXT :: GLenum+gl_RGB16F_EXT = 0x881B+gl_TEXTURE_CUBE_MAP_POSITIVE_Z :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519+gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS :: GLenum+gl_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39+gl_PACK_RESAMPLE_SGIX :: GLenum+gl_PACK_RESAMPLE_SGIX = 0x842C+gl_GREEN_BIAS :: GLenum+gl_GREEN_BIAS = 0x0D19+gl_DEPTH_STENCIL_NV :: GLenum+gl_DEPTH_STENCIL_NV = 0x84F9+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER :: GLenum+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8+gl_CON_29_ATI :: GLenum+gl_CON_29_ATI = 0x895E+gl_COLOR_ARRAY_STRIDE_EXT :: GLenum+gl_COLOR_ARRAY_STRIDE_EXT = 0x8083+gl_ISOLINES_EXT :: GLenum+gl_ISOLINES_EXT = 0x8E7A+gl_MODELVIEW4_ARB :: GLenum+gl_MODELVIEW4_ARB = 0x8724+gl_LINES_ADJACENCY :: GLenum+gl_LINES_ADJACENCY = 0x000A+gl_PATH_FILL_MASK_NV :: GLenum+gl_PATH_FILL_MASK_NV = 0x9081+gl_HISTOGRAM_LUMINANCE_SIZE :: GLenum+gl_HISTOGRAM_LUMINANCE_SIZE = 0x802C+gl_TEXTURE_BINDING_RENDERBUFFER_NV :: GLenum+gl_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53+gl_PIXEL_UNPACK_BUFFER_EXT :: GLenum+gl_PIXEL_UNPACK_BUFFER_EXT = 0x88EC+gl_RENDERBUFFER_GREEN_SIZE :: GLenum+gl_RENDERBUFFER_GREEN_SIZE = 0x8D51+gl_PASS_THROUGH_NV :: GLenum+gl_PASS_THROUGH_NV = 0x86E6+gl_GEOMETRY_VERTICES_OUT_EXT :: GLenum+gl_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA+gl_EVAL_VERTEX_ATTRIB12_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB12_NV = 0x86D2+gl_SMOOTH_QUADRATIC_CURVE_TO_NV :: GLenum+gl_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E+gl_TEXTURE_BUFFER_SIZE :: GLenum+gl_TEXTURE_BUFFER_SIZE = 0x919E+gl_READ_PIXEL_DATA_RANGE_NV :: GLenum+gl_READ_PIXEL_DATA_RANGE_NV = 0x8879+gl_ALIASED_LINE_WIDTH_RANGE :: GLenum+gl_ALIASED_LINE_WIDTH_RANGE = 0x846E+gl_TRACK_MATRIX_NV :: GLenum+gl_TRACK_MATRIX_NV = 0x8648+gl_COLOR_ARRAY_LIST_STRIDE_IBM :: GLenum+gl_COLOR_ARRAY_LIST_STRIDE_IBM = 103082+gl_WEIGHT_ARRAY_POINTER_ARB :: GLenum+gl_WEIGHT_ARRAY_POINTER_ARB = 0x86AC+gl_SMOOTH_LINE_WIDTH_GRANULARITY :: GLenum+gl_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23+gl_CLIP_DISTANCE6 :: GLenum+gl_CLIP_DISTANCE6 = 0x3006+gl_FRAMEBUFFER_BINDING :: GLenum+gl_FRAMEBUFFER_BINDING = 0x8CA6+gl_EVAL_VERTEX_ATTRIB4_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB4_NV = 0x86CA+gl_CURRENT_SECONDARY_COLOR_EXT :: GLenum+gl_CURRENT_SECONDARY_COLOR_EXT = 0x8459+gl_IMAGE_CLASS_2_X_32 :: GLenum+gl_IMAGE_CLASS_2_X_32 = 0x82BA+gl_PERSPECTIVE_CORRECTION_HINT :: GLenum+gl_PERSPECTIVE_CORRECTION_HINT = 0x0C50+gl_NATIVE_GRAPHICS_BEGIN_HINT_PGI :: GLenum+gl_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203+gl_SATURATE_BIT_ATI :: GLenum+gl_SATURATE_BIT_ATI = 0x00000040+gl_FONT_UNITS_PER_EM_BIT_NV :: GLenum+gl_FONT_UNITS_PER_EM_BIT_NV = 0x00100000+gl_EVAL_VERTEX_ATTRIB3_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB3_NV = 0x86C9+gl_R16UI :: GLenum+gl_R16UI = 0x8234+gl_OUTPUT_TEXTURE_COORD17_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE+gl_TEXTURE_MULTI_BUFFER_HINT_SGIX :: GLenum+gl_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E+gl_SKIP_MISSING_GLYPH_NV :: GLenum+gl_SKIP_MISSING_GLYPH_NV = 0x90A9+gl_MIRROR_CLAMP_TO_EDGE_EXT :: GLenum+gl_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743+gl_TEXTURE_TYPE_QCOM :: GLenum+gl_TEXTURE_TYPE_QCOM = 0x8BD7+gl_RGB5_A1 :: GLenum+gl_RGB5_A1 = 0x8057+gl_UNIFORM_BARRIER_BIT_EXT :: GLenum+gl_UNIFORM_BARRIER_BIT_EXT = 0x00000004+gl_MULTISAMPLE :: GLenum+gl_MULTISAMPLE = 0x809D+gl_SAMPLES_ARB :: GLenum+gl_SAMPLES_ARB = 0x80A9+gl_RGBA_INTEGER :: GLenum+gl_RGBA_INTEGER = 0x8D99+gl_STENCIL_COMPONENTS :: GLenum+gl_STENCIL_COMPONENTS = 0x8285+gl_DEBUG_SEVERITY_LOW :: GLenum+gl_DEBUG_SEVERITY_LOW = 0x9148+gl_TEXTURE_COMPARE_SGIX :: GLenum+gl_TEXTURE_COMPARE_SGIX = 0x819A+gl_COLOR_ARRAY_LIST_IBM :: GLenum+gl_COLOR_ARRAY_LIST_IBM = 103072+gl_COMPRESSED_SIGNED_RED_RGTC1 :: GLenum+gl_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC+gl_MATRIX3_NV :: GLenum+gl_MATRIX3_NV = 0x8633+gl_MAX_FRAGMENT_UNIFORM_BLOCKS :: GLenum+gl_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D+gl_INT_SAMPLER_3D_EXT :: GLenum+gl_INT_SAMPLER_3D_EXT = 0x8DCB+gl_MODELVIEW19_ARB :: GLenum+gl_MODELVIEW19_ARB = 0x8733+gl_SWIZZLE_STRQ_DQ_ATI :: GLenum+gl_SWIZZLE_STRQ_DQ_ATI = 0x897B+gl_COMBINE_ARB :: GLenum+gl_COMBINE_ARB = 0x8570+gl_FRAGMENT_COLOR_EXT :: GLenum+gl_FRAGMENT_COLOR_EXT = 0x834C+gl_RENDERBUFFER_WIDTH :: GLenum+gl_RENDERBUFFER_WIDTH = 0x8D42+gl_LUMINANCE4_EXT :: GLenum+gl_LUMINANCE4_EXT = 0x803F+gl_UNSIGNED_INT_SAMPLER_2D_EXT :: GLenum+gl_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2+gl_RGB_SCALE_EXT :: GLenum+gl_RGB_SCALE_EXT = 0x8573+gl_PIXEL_MAP_I_TO_R :: GLenum+gl_PIXEL_MAP_I_TO_R = 0x0C72+gl_DOT4_ATI :: GLenum+gl_DOT4_ATI = 0x8967+gl_MAP1_VERTEX_ATTRIB7_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667+gl_VERTEX_ATTRIB_ARRAY_ENABLED_ARB :: GLenum+gl_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622+gl_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB :: GLenum+gl_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C+gl_POST_COLOR_MATRIX_BLUE_SCALE_SGI :: GLenum+gl_POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6+gl_NUM_VIRTUAL_PAGE_SIZES_ARB :: GLenum+gl_NUM_VIRTUAL_PAGE_SIZES_ARB = 0x91A8+gl_RENDERBUFFER_FREE_MEMORY_ATI :: GLenum+gl_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD+gl_FRAMEBUFFER_DEFAULT_LAYERS :: GLenum+gl_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312+gl_COMPUTE_SUBROUTINE :: GLenum+gl_COMPUTE_SUBROUTINE = 0x92ED+gl_PROGRAM_TEX_INSTRUCTIONS_ARB :: GLenum+gl_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806+gl_SIGNALED_APPLE :: GLenum+gl_SIGNALED_APPLE = 0x9119+gl_MULTISAMPLE_3DFX :: GLenum+gl_MULTISAMPLE_3DFX = 0x86B2+gl_TEXTURE_INDEX_SIZE_EXT :: GLenum+gl_TEXTURE_INDEX_SIZE_EXT = 0x80ED+gl_LAYOUT_LINEAR_INTEL :: GLenum+gl_LAYOUT_LINEAR_INTEL = 1+gl_LERP_ATI :: GLenum+gl_LERP_ATI = 0x8969+gl_FACTOR_MAX_AMD :: GLenum+gl_FACTOR_MAX_AMD = 0x901D+gl_MATRIX2_ARB :: GLenum+gl_MATRIX2_ARB = 0x88C2+gl_EQUAL :: GLenum+gl_EQUAL = 0x0202+gl_COLOR_ATTACHMENT0_OES :: GLenum+gl_COLOR_ATTACHMENT0_OES = 0x8CE0+gl_MAX_COLOR_MATRIX_STACK_DEPTH_SGI :: GLenum+gl_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3+gl_RGB16 :: GLenum+gl_RGB16 = 0x8054+gl_COLOR_INDEX4_EXT :: GLenum+gl_COLOR_INDEX4_EXT = 0x80E4+gl_PROXY_TEXTURE_CUBE_MAP_EXT :: GLenum+gl_PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B+gl_STENCIL_BACK_FUNC_ATI :: GLenum+gl_STENCIL_BACK_FUNC_ATI = 0x8800+gl_DRAW_BUFFER8_EXT :: GLenum+gl_DRAW_BUFFER8_EXT = 0x882D+gl_DST_ALPHA :: GLenum+gl_DST_ALPHA = 0x0304+gl_DEBUG_SOURCE_SHADER_COMPILER_KHR :: GLenum+gl_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248+gl_C4UB_V2F :: GLenum+gl_C4UB_V2F = 0x2A22+gl_INTERNALFORMAT_BLUE_TYPE :: GLenum+gl_INTERNALFORMAT_BLUE_TYPE = 0x827A+gl_PIXEL_TILE_GRID_DEPTH_SGIX :: GLenum+gl_PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144+gl_DEPTH_BITS :: GLenum+gl_DEPTH_BITS = 0x0D56+gl_FLOAT16_VEC3_NV :: GLenum+gl_FLOAT16_VEC3_NV = 0x8FFA+gl_ARRAY_OBJECT_OFFSET_ATI :: GLenum+gl_ARRAY_OBJECT_OFFSET_ATI = 0x8767+gl_DOUBLE_MAT2_EXT :: GLenum+gl_DOUBLE_MAT2_EXT = 0x8F46+gl_TEXTURE_COLOR_SAMPLES_NV :: GLenum+gl_TEXTURE_COLOR_SAMPLES_NV = 0x9046+gl_NORMAL_ARRAY_EXT :: GLenum+gl_NORMAL_ARRAY_EXT = 0x8075+gl_MIRROR_CLAMP_TO_EDGE_ATI :: GLenum+gl_MIRROR_CLAMP_TO_EDGE_ATI = 0x8743+gl_EDGE_FLAG_ARRAY_POINTER :: GLenum+gl_EDGE_FLAG_ARRAY_POINTER = 0x8093+gl_UNSIGNED_INT_24_8_MESA :: GLenum+gl_UNSIGNED_INT_24_8_MESA = 0x8751+gl_IMAGE_COMPATIBILITY_CLASS :: GLenum+gl_IMAGE_COMPATIBILITY_CLASS = 0x82A8+gl_BACK_LEFT :: GLenum+gl_BACK_LEFT = 0x0402+gl_TESS_EVALUATION_SHADER_INVOCATIONS_ARB :: GLenum+gl_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = 0x82F2+gl_COLOR_TABLE_BIAS :: GLenum+gl_COLOR_TABLE_BIAS = 0x80D7+gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG :: GLenum+gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = 0x93F1+gl_DARKEN_KHR :: GLenum+gl_DARKEN_KHR = 0x9297+gl_OCCLUSION_TEST_RESULT_HP :: GLenum+gl_OCCLUSION_TEST_RESULT_HP = 0x8166+gl_DEBUG_TYPE_POP_GROUP_KHR :: GLenum+gl_DEBUG_TYPE_POP_GROUP_KHR = 0x826A+gl_CLAMP_TO_BORDER_ARB :: GLenum+gl_CLAMP_TO_BORDER_ARB = 0x812D+gl_UNSIGNED_BYTE_2_3_3_REV :: GLenum+gl_UNSIGNED_BYTE_2_3_3_REV = 0x8362+gl_SOURCE2_ALPHA_ARB :: GLenum+gl_SOURCE2_ALPHA_ARB = 0x858A+gl_SAMPLE_COVERAGE :: GLenum+gl_SAMPLE_COVERAGE = 0x80A0+gl_INTERLEAVED_ATTRIBS_EXT :: GLenum+gl_INTERLEAVED_ATTRIBS_EXT = 0x8C8C+gl_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL :: GLenum+gl_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB+gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING :: GLenum+gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F+gl_VERTEX_SHADER :: GLenum+gl_VERTEX_SHADER = 0x8B31+gl_INDEX_ARRAY_ADDRESS_NV :: GLenum+gl_INDEX_ARRAY_ADDRESS_NV = 0x8F24+gl_QUERY_COUNTER_BITS :: GLenum+gl_QUERY_COUNTER_BITS = 0x8864+gl_COMPRESSED_RGBA_ASTC_8x6_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6+gl_FRAMEBUFFER_BINDING_EXT :: GLenum+gl_FRAMEBUFFER_BINDING_EXT = 0x8CA6+gl_VERTEX_ELEMENT_SWIZZLE_AMD :: GLenum+gl_VERTEX_ELEMENT_SWIZZLE_AMD = 0x91A4+gl_DEBUG_CATEGORY_SHADER_COMPILER_AMD :: GLenum+gl_DEBUG_CATEGORY_SHADER_COMPILER_AMD = 0x914E+gl_ARRAY_OBJECT_BUFFER_ATI :: GLenum+gl_ARRAY_OBJECT_BUFFER_ATI = 0x8766+gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES :: GLenum+gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910C+gl_RENDERBUFFER_INTERNAL_FORMAT :: GLenum+gl_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44+gl_VIEW_CLASS_8_BITS :: GLenum+gl_VIEW_CLASS_8_BITS = 0x82CB+gl_TEXTURE_CUBE_MAP_POSITIVE_Y_OES :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517+gl_SHADER_IMAGE_ATOMIC :: GLenum+gl_SHADER_IMAGE_ATOMIC = 0x82A6+gl_MAX_GEOMETRY_OUTPUT_VERTICES_ARB :: GLenum+gl_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0+gl_COVERAGE_ATTACHMENT_NV :: GLenum+gl_COVERAGE_ATTACHMENT_NV = 0x8ED2+gl_NUM_PROGRAM_BINARY_FORMATS_OES :: GLenum+gl_NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE+gl_CURRENT_RASTER_TEXTURE_COORDS :: GLenum+gl_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06+gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS :: GLenum+gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86+gl_PIXEL_MAP_A_TO_A :: GLenum+gl_PIXEL_MAP_A_TO_A = 0x0C79+gl_TEXTURE_WRAP_T :: GLenum+gl_TEXTURE_WRAP_T = 0x2803+gl_LINE_SMOOTH_HINT :: GLenum+gl_LINE_SMOOTH_HINT = 0x0C52+gl_DRAW_BUFFER11_EXT :: GLenum+gl_DRAW_BUFFER11_EXT = 0x8830+gl_OFFSET_TEXTURE_RECTANGLE_SCALE_NV :: GLenum+gl_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D+gl_LUMINANCE16_SNORM :: GLenum+gl_LUMINANCE16_SNORM = 0x9019+gl_PERFQUERY_FLUSH_INTEL :: GLenum+gl_PERFQUERY_FLUSH_INTEL = 0x83FA+gl_HISTOGRAM_SINK :: GLenum+gl_HISTOGRAM_SINK = 0x802D+gl_MAP1_VERTEX_ATTRIB15_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F+gl_OUTPUT_TEXTURE_COORD7_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4+gl_HISTOGRAM_BLUE_SIZE :: GLenum+gl_HISTOGRAM_BLUE_SIZE = 0x802A+gl_LUMINANCE32F_EXT :: GLenum+gl_LUMINANCE32F_EXT = 0x8818+gl_RG16UI :: GLenum+gl_RG16UI = 0x823A+gl_TEXTURE_ALPHA_MODULATE_IMG :: GLenum+gl_TEXTURE_ALPHA_MODULATE_IMG = 0x8C06+gl_INT_SAMPLER_2D_RECT :: GLenum+gl_INT_SAMPLER_2D_RECT = 0x8DCD+gl_STENCIL_BACK_WRITEMASK :: GLenum+gl_STENCIL_BACK_WRITEMASK = 0x8CA5+gl_PIXEL_TRANSFORM_2D_MATRIX_EXT :: GLenum+gl_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338+gl_AUX3 :: GLenum+gl_AUX3 = 0x040C+gl_FRAMEBUFFER_UNSUPPORTED :: GLenum+gl_FRAMEBUFFER_UNSUPPORTED = 0x8CDD+gl_MAX_TEXTURE_MAX_ANISOTROPY_EXT :: GLenum+gl_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF+gl_TEXTURE_DEFORMATION_SGIX :: GLenum+gl_TEXTURE_DEFORMATION_SGIX = 0x8195+gl_CON_23_ATI :: GLenum+gl_CON_23_ATI = 0x8958+gl_CLIP_DISTANCE0 :: GLenum+gl_CLIP_DISTANCE0 = 0x3000+gl_COLOR_ATTACHMENT10 :: GLenum+gl_COLOR_ATTACHMENT10 = 0x8CEA+gl_POINT_SIZE_MAX_EXT :: GLenum+gl_POINT_SIZE_MAX_EXT = 0x8127+gl_TEXTURE5 :: GLenum+gl_TEXTURE5 = 0x84C5+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6+gl_PATH_MODELVIEW_MATRIX_NV :: GLenum+gl_PATH_MODELVIEW_MATRIX_NV = 0x0BA6+gl_LINE_LOOP :: GLenum+gl_LINE_LOOP = 0x0002+gl_MODELVIEW17_ARB :: GLenum+gl_MODELVIEW17_ARB = 0x8731+gl_UNSIGNED_INT16_VEC2_NV :: GLenum+gl_UNSIGNED_INT16_VEC2_NV = 0x8FF1+gl_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES :: GLenum+gl_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F+gl_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS :: GLenum+gl_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264+gl_DRAW_BUFFER3_EXT :: GLenum+gl_DRAW_BUFFER3_EXT = 0x8828+gl_TEXTURE_SHADOW :: GLenum+gl_TEXTURE_SHADOW = 0x82A1+gl_STENCIL_ATTACHMENT :: GLenum+gl_STENCIL_ATTACHMENT = 0x8D20+gl_MAP_STENCIL :: GLenum+gl_MAP_STENCIL = 0x0D11+gl_PATH_DASH_ARRAY_COUNT_NV :: GLenum+gl_PATH_DASH_ARRAY_COUNT_NV = 0x909F+gl_BLEND :: GLenum+gl_BLEND = 0x0BE2+gl_UNIFORM_BUFFER_OFFSET_ALIGNMENT :: GLenum+gl_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34+gl_TEXTURE_TARGET_QCOM :: GLenum+gl_TEXTURE_TARGET_QCOM = 0x8BDA+gl_NORMAL_MAP_OES :: GLenum+gl_NORMAL_MAP_OES = 0x8511+gl_UNSIGNED_SHORT_4_4_4_4_REV_EXT :: GLenum+gl_UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365+gl_TEXTURE20 :: GLenum+gl_TEXTURE20 = 0x84D4+gl_EDGE_FLAG_ARRAY_COUNT_EXT :: GLenum+gl_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D+gl_SMOOTH :: GLenum+gl_SMOOTH = 0x1D01+gl_SHADER_INCLUDE_ARB :: GLenum+gl_SHADER_INCLUDE_ARB = 0x8DAE+gl_CLAMP_TO_EDGE_SGIS :: GLenum+gl_CLAMP_TO_EDGE_SGIS = 0x812F+gl_COMPRESSED_ALPHA :: GLenum+gl_COMPRESSED_ALPHA = 0x84E9+gl_TEXTURE_IMAGE_FORMAT :: GLenum+gl_TEXTURE_IMAGE_FORMAT = 0x828F+gl_MAX_FRAMEBUFFER_LAYERS :: GLenum+gl_MAX_FRAMEBUFFER_LAYERS = 0x9317+gl_WRITEONLY_RENDERING_QCOM :: GLenum+gl_WRITEONLY_RENDERING_QCOM = 0x8823+gl_BACK_RIGHT :: GLenum+gl_BACK_RIGHT = 0x0403+gl_INVARIANT_DATATYPE_EXT :: GLenum+gl_INVARIANT_DATATYPE_EXT = 0x87EB+gl_LINE_TO_NV :: GLenum+gl_LINE_TO_NV = 0x04+gl_PIXEL_UNPACK_BUFFER_BINDING_ARB :: GLenum+gl_PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF+gl_LIST_BIT :: GLenum+gl_LIST_BIT = 0x00020000+gl_MAX_ATTRIB_STACK_DEPTH :: GLenum+gl_MAX_ATTRIB_STACK_DEPTH = 0x0D35+gl_FRAGMENT_SHADER :: GLenum+gl_FRAGMENT_SHADER = 0x8B30+gl_IMPLEMENTATION_COLOR_READ_FORMAT :: GLenum+gl_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B+gl_COLOR_TABLE_WIDTH_SGI :: GLenum+gl_COLOR_TABLE_WIDTH_SGI = 0x80D9+gl_DEBUG_OBJECT_MESA :: GLenum+gl_DEBUG_OBJECT_MESA = 0x8759+gl_EYE_LINE_SGIS :: GLenum+gl_EYE_LINE_SGIS = 0x81F6+gl_COMPRESSED_ALPHA_ARB :: GLenum+gl_COMPRESSED_ALPHA_ARB = 0x84E9+gl_DEPTH_BUFFER_BIT7_QCOM :: GLenum+gl_DEPTH_BUFFER_BIT7_QCOM = 0x00008000+gl_OPERAND2_RGB_ARB :: GLenum+gl_OPERAND2_RGB_ARB = 0x8592+gl_PROGRAM_BINARY_ANGLE :: GLenum+gl_PROGRAM_BINARY_ANGLE = 0x93A6+gl_MATRIX_EXT :: GLenum+gl_MATRIX_EXT = 0x87C0+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS :: GLenum+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80+gl_RED_NV :: GLenum+gl_RED_NV = 0x1903+gl_LIGHT7 :: GLenum+gl_LIGHT7 = 0x4007+gl_LOW_FLOAT :: GLenum+gl_LOW_FLOAT = 0x8DF0+gl_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F+gl_CON_18_ATI :: GLenum+gl_CON_18_ATI = 0x8953+gl_UNIFORM_BUFFER_ADDRESS_NV :: GLenum+gl_UNIFORM_BUFFER_ADDRESS_NV = 0x936F+gl_VERTEX_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896+gl_RED_BIT_ATI :: GLenum+gl_RED_BIT_ATI = 0x00000001+gl_TRACE_TEXTURES_BIT_MESA :: GLenum+gl_TRACE_TEXTURES_BIT_MESA = 0x0008+gl_GEOMETRY_SHADER :: GLenum+gl_GEOMETRY_SHADER = 0x8DD9+gl_VERTEX_ARRAY_ADDRESS_NV :: GLenum+gl_VERTEX_ARRAY_ADDRESS_NV = 0x8F21+gl_TIMEOUT_IGNORED_APPLE :: GLenum+gl_TIMEOUT_IGNORED_APPLE = 0xFFFFFFFFFFFFFFFF+gl_RENDERBUFFER_BINDING :: GLenum+gl_RENDERBUFFER_BINDING = 0x8CA7+gl_RGB16F :: GLenum+gl_RGB16F = 0x881B+gl_TEXTURE_COORD_ARRAY_LENGTH_NV :: GLenum+gl_TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F+gl_MAX_FRAMEBUFFER_LAYERS_EXT :: GLenum+gl_MAX_FRAMEBUFFER_LAYERS_EXT = 0x9317+gl_MODELVIEW23_ARB :: GLenum+gl_MODELVIEW23_ARB = 0x8737+gl_BGR_EXT :: GLenum+gl_BGR_EXT = 0x80E0+gl_ONE_MINUS_SRC1_COLOR :: GLenum+gl_ONE_MINUS_SRC1_COLOR = 0x88FA+gl_VARIANT_ARRAY_EXT :: GLenum+gl_VARIANT_ARRAY_EXT = 0x87E8+gl_RGB4 :: GLenum+gl_RGB4 = 0x804F+gl_RENDERBUFFER_DEPTH_SIZE_OES :: GLenum+gl_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54+gl_MAX_VARYING_COMPONENTS_EXT :: GLenum+gl_MAX_VARYING_COMPONENTS_EXT = 0x8B4B+gl_CURRENT_MATRIX_NV :: GLenum+gl_CURRENT_MATRIX_NV = 0x8641+gl_T2F_IUI_N3F_V3F_EXT :: GLenum+gl_T2F_IUI_N3F_V3F_EXT = 0x81B4+gl_SLUMINANCE8 :: GLenum+gl_SLUMINANCE8 = 0x8C47+gl_MODELVIEW1_MATRIX_EXT :: GLenum+gl_MODELVIEW1_MATRIX_EXT = 0x8506+gl_MODELVIEW29_ARB :: GLenum+gl_MODELVIEW29_ARB = 0x873D+gl_COLOR_ATTACHMENT5_EXT :: GLenum+gl_COLOR_ATTACHMENT5_EXT = 0x8CE5+gl_DOUBLE_MAT2 :: GLenum+gl_DOUBLE_MAT2 = 0x8F46+gl_RGBA12_EXT :: GLenum+gl_RGBA12_EXT = 0x805A+gl_ACCUM_BLUE_BITS :: GLenum+gl_ACCUM_BLUE_BITS = 0x0D5A+gl_INVARIANT_EXT :: GLenum+gl_INVARIANT_EXT = 0x87C2+gl_ACTIVE_UNIFORM_MAX_LENGTH :: GLenum+gl_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87+gl_FOG_SPECULAR_TEXTURE_WIN :: GLenum+gl_FOG_SPECULAR_TEXTURE_WIN = 0x80EC+gl_COLOR_TABLE_SCALE_SGI :: GLenum+gl_COLOR_TABLE_SCALE_SGI = 0x80D6+gl_IUI_V3F_EXT :: GLenum+gl_IUI_V3F_EXT = 0x81AE+gl_UNSIGNED_INT_IMAGE_3D_EXT :: GLenum+gl_UNSIGNED_INT_IMAGE_3D_EXT = 0x9064+gl_MAX_DEBUG_MESSAGE_LENGTH_KHR :: GLenum+gl_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143+gl_TEXTURE_CUBE_MAP_POSITIVE_Y :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517+gl_DOUBLE_VEC2 :: GLenum+gl_DOUBLE_VEC2 = 0x8FFC+gl_MAX_SAMPLE_MASK_WORDS :: GLenum+gl_MAX_SAMPLE_MASK_WORDS = 0x8E59+gl_DEBUG_OUTPUT :: GLenum+gl_DEBUG_OUTPUT = 0x92E0+gl_OBJECT_SHADER_SOURCE_LENGTH_ARB :: GLenum+gl_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88+gl_R32F_EXT :: GLenum+gl_R32F_EXT = 0x822E+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV :: GLenum+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = 0x8C4E+gl_COPY_WRITE_BUFFER_BINDING :: GLenum+gl_COPY_WRITE_BUFFER_BINDING = 0x8F37+gl_TEXTURE15_ARB :: GLenum+gl_TEXTURE15_ARB = 0x84CF+gl_UNIFORM_BLOCK_NAME_LENGTH :: GLenum+gl_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41+gl_COLOR_ATTACHMENT4_NV :: GLenum+gl_COLOR_ATTACHMENT4_NV = 0x8CE4+gl_DST_OVER_NV :: GLenum+gl_DST_OVER_NV = 0x9289+gl_ATOMIC_COUNTER_BUFFER :: GLenum+gl_ATOMIC_COUNTER_BUFFER = 0x92C0+gl_MAP1_VERTEX_ATTRIB12_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C+gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB :: GLenum+gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C+gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV :: GLenum+gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3+gl_RGB_RAW_422_APPLE :: GLenum+gl_RGB_RAW_422_APPLE = 0x8A51+gl_MAX_RECTANGLE_TEXTURE_SIZE :: GLenum+gl_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8+gl_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7+gl_FRAGMENT_COLOR_MATERIAL_SGIX :: GLenum+gl_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401+gl_POST_COLOR_MATRIX_RED_SCALE_SGI :: GLenum+gl_POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4+gl_VIBRANCE_SCALE_NV :: GLenum+gl_VIBRANCE_SCALE_NV = 0x8713+gl_POINT_FADE_THRESHOLD_SIZE :: GLenum+gl_POINT_FADE_THRESHOLD_SIZE = 0x8128+gl_QUERY_NO_WAIT_NV :: GLenum+gl_QUERY_NO_WAIT_NV = 0x8E14+gl_FRAGMENT_SHADER_DERIVATIVE_HINT_OES :: GLenum+gl_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B+gl_RESAMPLE_REPLICATE_OML :: GLenum+gl_RESAMPLE_REPLICATE_OML = 0x8986+gl_RENDERBUFFER_BINDING_ANGLE :: GLenum+gl_RENDERBUFFER_BINDING_ANGLE = 0x8CA7+gl_R1UI_V3F_SUN :: GLenum+gl_R1UI_V3F_SUN = 0x85C4+gl_CONVOLUTION_2D :: GLenum+gl_CONVOLUTION_2D = 0x8011+gl_OBJECT_TYPE :: GLenum+gl_OBJECT_TYPE = 0x9112+gl_MAX_MAP_TESSELLATION_NV :: GLenum+gl_MAX_MAP_TESSELLATION_NV = 0x86D6+gl_DOUBLE_MAT4x3_EXT :: GLenum+gl_DOUBLE_MAT4x3_EXT = 0x8F4E+gl_MULTISAMPLE_BUFFER_BIT4_QCOM :: GLenum+gl_MULTISAMPLE_BUFFER_BIT4_QCOM = 0x10000000+gl_UNSIGNED_INT64_AMD :: GLenum+gl_UNSIGNED_INT64_AMD = 0x8BC2+gl_MAX_PATCH_VERTICES :: GLenum+gl_MAX_PATCH_VERTICES = 0x8E7D+gl_TEXTURE_COMPONENTS :: GLenum+gl_TEXTURE_COMPONENTS = 0x1003+gl_ELEMENT_ARRAY_POINTER_APPLE :: GLenum+gl_ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E+gl_COLOR_ATTACHMENT6_NV :: GLenum+gl_COLOR_ATTACHMENT6_NV = 0x8CE6+gl_MODELVIEW_PROJECTION_NV :: GLenum+gl_MODELVIEW_PROJECTION_NV = 0x8629+gl_STATIC_ATI :: GLenum+gl_STATIC_ATI = 0x8760+gl_TEXTURE_CUBE_MAP_NEGATIVE_Z :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A+gl_CONVOLUTION_BORDER_MODE :: GLenum+gl_CONVOLUTION_BORDER_MODE = 0x8013+gl_2PASS_0_SGIS :: GLenum+gl_2PASS_0_SGIS = 0x80A2+gl_GREEN_INTEGER_EXT :: GLenum+gl_GREEN_INTEGER_EXT = 0x8D95+gl_DEBUG_TYPE_OTHER :: GLenum+gl_DEBUG_TYPE_OTHER = 0x8251+gl_FRAMEBUFFER_SRGB_EXT :: GLenum+gl_FRAMEBUFFER_SRGB_EXT = 0x8DB9+gl_COLOR_WRITEMASK :: GLenum+gl_COLOR_WRITEMASK = 0x0C23+gl_TANGENT_ARRAY_EXT :: GLenum+gl_TANGENT_ARRAY_EXT = 0x8439+gl_FONT_TARGET_UNAVAILABLE_NV :: GLenum+gl_FONT_TARGET_UNAVAILABLE_NV = 0x9369+gl_FONT_UNAVAILABLE_NV :: GLenum+gl_FONT_UNAVAILABLE_NV = 0x936A+gl_COMBINER2_NV :: GLenum+gl_COMBINER2_NV = 0x8552+gl_TEXTURE22_ARB :: GLenum+gl_TEXTURE22_ARB = 0x84D6+gl_PATH_INITIAL_DASH_CAP_NV :: GLenum+gl_PATH_INITIAL_DASH_CAP_NV = 0x907C+gl_SWIZZLE_STRQ_ATI :: GLenum+gl_SWIZZLE_STRQ_ATI = 0x897A+gl_OBJECT_LINE_SGIS :: GLenum+gl_OBJECT_LINE_SGIS = 0x81F7+gl_MAX_NUM_ACTIVE_VARIABLES :: GLenum+gl_MAX_NUM_ACTIVE_VARIABLES = 0x92F7+gl_COLOR_ATTACHMENT3_EXT :: GLenum+gl_COLOR_ATTACHMENT3_EXT = 0x8CE3+gl_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI :: GLenum+gl_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI = 0x8837+gl_SCREEN_KHR :: GLenum+gl_SCREEN_KHR = 0x9295+gl_ZOOM_X :: GLenum+gl_ZOOM_X = 0x0D16+gl_PROGRAM_MATRIX_EXT :: GLenum+gl_PROGRAM_MATRIX_EXT = 0x8E2D+gl_TEXTURE_VIEW :: GLenum+gl_TEXTURE_VIEW = 0x82B5+gl_NEGATIVE_ONE_TO_ONE :: GLenum+gl_NEGATIVE_ONE_TO_ONE = 0x935E+gl_CONVOLUTION_1D_EXT :: GLenum+gl_CONVOLUTION_1D_EXT = 0x8010+gl_CLAMP_READ_COLOR :: GLenum+gl_CLAMP_READ_COLOR = 0x891C+gl_REFLECTION_MAP :: GLenum+gl_REFLECTION_MAP = 0x8512+gl_PROXY_HISTOGRAM :: GLenum+gl_PROXY_HISTOGRAM = 0x8025+gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS :: GLenum+gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D+gl_HALF_FLOAT_ARB :: GLenum+gl_HALF_FLOAT_ARB = 0x140B+gl_LINE_QUALITY_HINT_SGIX :: GLenum+gl_LINE_QUALITY_HINT_SGIX = 0x835B+gl_MAP_WRITE_BIT_EXT :: GLenum+gl_MAP_WRITE_BIT_EXT = 0x0002+gl_PIXEL_TRANSFORM_2D_EXT :: GLenum+gl_PIXEL_TRANSFORM_2D_EXT = 0x8330+gl_INCR :: GLenum+gl_INCR = 0x1E02+gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = 0x93E0+gl_LUMINANCE_FLOAT32_ATI :: GLenum+gl_LUMINANCE_FLOAT32_ATI = 0x8818+gl_EVAL_VERTEX_ATTRIB11_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB11_NV = 0x86D1+gl_TEXTURE_COORD_ARRAY_SIZE :: GLenum+gl_TEXTURE_COORD_ARRAY_SIZE = 0x8088+gl_IMAGE_BINDING_LEVEL_EXT :: GLenum+gl_IMAGE_BINDING_LEVEL_EXT = 0x8F3B+gl_RGBA16I_EXT :: GLenum+gl_RGBA16I_EXT = 0x8D88+gl_T2F_IUI_N3F_V2F_EXT :: GLenum+gl_T2F_IUI_N3F_V2F_EXT = 0x81B3+gl_MIN_PROGRAM_TEXEL_OFFSET_NV :: GLenum+gl_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904+gl_EQUIV :: GLenum+gl_EQUIV = 0x1509+gl_TEXTURE_BINDING_CUBE_MAP_ARB :: GLenum+gl_TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514+gl_DRAW_BUFFER1_NV :: GLenum+gl_DRAW_BUFFER1_NV = 0x8826+gl_INTERLACE_READ_OML :: GLenum+gl_INTERLACE_READ_OML = 0x8981+gl_TEXTURE15 :: GLenum+gl_TEXTURE15 = 0x84CF+gl_NAND :: GLenum+gl_NAND = 0x150E+gl_VERTEX_ARRAY_RANGE_APPLE :: GLenum+gl_VERTEX_ARRAY_RANGE_APPLE = 0x851D+gl_CONDITION_SATISFIED_APPLE :: GLenum+gl_CONDITION_SATISFIED_APPLE = 0x911C+gl_DISPATCH_INDIRECT_BUFFER_BINDING :: GLenum+gl_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF+gl_RG16I :: GLenum+gl_RG16I = 0x8239+gl_EYE_RADIAL_NV :: GLenum+gl_EYE_RADIAL_NV = 0x855B+gl_SLUMINANCE_ALPHA_EXT :: GLenum+gl_SLUMINANCE_ALPHA_EXT = 0x8C44+gl_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL :: GLenum+gl_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5+gl_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT :: GLenum+gl_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = 0x88FE+gl_RG32F :: GLenum+gl_RG32F = 0x8230+gl_SRC1_ALPHA :: GLenum+gl_SRC1_ALPHA = 0x8589+gl_RGBA2 :: GLenum+gl_RGBA2 = 0x8055+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4+gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT :: GLenum+gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88+gl_TEXTURE_COORD_ARRAY_STRIDE_EXT :: GLenum+gl_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A+gl_OUTPUT_TEXTURE_COORD10_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7+gl_DEPTH_ATTACHMENT :: GLenum+gl_DEPTH_ATTACHMENT = 0x8D00+gl_NORMAL_ARRAY_POINTER_EXT :: GLenum+gl_NORMAL_ARRAY_POINTER_EXT = 0x808F+gl_OPERAND0_ALPHA_ARB :: GLenum+gl_OPERAND0_ALPHA_ARB = 0x8598+gl_COMPRESSED_LUMINANCE_ARB :: GLenum+gl_COMPRESSED_LUMINANCE_ARB = 0x84EA+gl_LIST_PRIORITY_SGIX :: GLenum+gl_LIST_PRIORITY_SGIX = 0x8182+gl_BOUNDING_BOX_NV :: GLenum+gl_BOUNDING_BOX_NV = 0x908D+gl_PATCH_VERTICES_EXT :: GLenum+gl_PATCH_VERTICES_EXT = 0x8E72+gl_COPY_INVERTED :: GLenum+gl_COPY_INVERTED = 0x150C+gl_FRAMEBUFFER_BARRIER_BIT_EXT :: GLenum+gl_FRAMEBUFFER_BARRIER_BIT_EXT = 0x00000400+gl_OBJECT_ACTIVE_ATTRIBUTES_ARB :: GLenum+gl_OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89+gl_DISCRETE_AMD :: GLenum+gl_DISCRETE_AMD = 0x9006+gl_DOT3_RGBA_ARB :: GLenum+gl_DOT3_RGBA_ARB = 0x86AF+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1+gl_SET :: GLenum+gl_SET = 0x150F+gl_TEXTURE_MAX_ANISOTROPY_EXT :: GLenum+gl_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE+gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: GLenum+gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276+gl_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB :: GLenum+gl_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B+gl_MAP2_GRID_DOMAIN :: GLenum+gl_MAP2_GRID_DOMAIN = 0x0DD2+gl_RENDERBUFFER_SAMPLES :: GLenum+gl_RENDERBUFFER_SAMPLES = 0x8CAB+gl_MAX_TEXTURE_LOD_BIAS :: GLenum+gl_MAX_TEXTURE_LOD_BIAS = 0x84FD+gl_DEPTH_PASS_INSTRUMENT_SGIX :: GLenum+gl_DEPTH_PASS_INSTRUMENT_SGIX = 0x8310+gl_TEXTURE_COORD_NV :: GLenum+gl_TEXTURE_COORD_NV = 0x8C79+gl_PROGRAM_ERROR_POSITION_NV :: GLenum+gl_PROGRAM_ERROR_POSITION_NV = 0x864B+gl_RENDERBUFFER_RED_SIZE_EXT :: GLenum+gl_RENDERBUFFER_RED_SIZE_EXT = 0x8D50+gl_INDEX_OFFSET :: GLenum+gl_INDEX_OFFSET = 0x0D13+gl_CURRENT_FOG_COORD :: GLenum+gl_CURRENT_FOG_COORD = 0x8453+gl_MIRRORED_REPEAT :: GLenum+gl_MIRRORED_REPEAT = 0x8370+gl_MAP_INVALIDATE_BUFFER_BIT :: GLenum+gl_MAP_INVALIDATE_BUFFER_BIT = 0x0008+gl_MATRIX_INDEX_ARRAY_OES :: GLenum+gl_MATRIX_INDEX_ARRAY_OES = 0x8844+gl_DRAW_BUFFER6_ATI :: GLenum+gl_DRAW_BUFFER6_ATI = 0x882B+gl_INTENSITY12 :: GLenum+gl_INTENSITY12 = 0x804C+gl_FLOAT_RGBA_NV :: GLenum+gl_FLOAT_RGBA_NV = 0x8883+gl_SMOOTH_POINT_SIZE_RANGE :: GLenum+gl_SMOOTH_POINT_SIZE_RANGE = 0x0B12+gl_COLOR_BUFFER_BIT1_QCOM :: GLenum+gl_COLOR_BUFFER_BIT1_QCOM = 0x00000002+gl_TEXT_FRAGMENT_SHADER_ATI :: GLenum+gl_TEXT_FRAGMENT_SHADER_ATI = 0x8200+gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8+gl_CLIP_PLANE3 :: GLenum+gl_CLIP_PLANE3 = 0x3003+gl_NAMED_STRING_TYPE_ARB :: GLenum+gl_NAMED_STRING_TYPE_ARB = 0x8DEA+gl_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB :: GLenum+gl_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = 0x90EB+gl_TEXTURE_VIEW_MIN_LEVEL :: GLenum+gl_TEXTURE_VIEW_MIN_LEVEL = 0x82DB+gl_SWIZZLE_STQ_ATI :: GLenum+gl_SWIZZLE_STQ_ATI = 0x8977+gl_RGBA_FLOAT_MODE_ARB :: GLenum+gl_RGBA_FLOAT_MODE_ARB = 0x8820+gl_RG8UI :: GLenum+gl_RG8UI = 0x8238+gl_FRAGMENT_DEPTH :: GLenum+gl_FRAGMENT_DEPTH = 0x8452+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2+gl_MULTISAMPLE_SGIS :: GLenum+gl_MULTISAMPLE_SGIS = 0x809D+gl_PROXY_TEXTURE_1D :: GLenum+gl_PROXY_TEXTURE_1D = 0x8063+gl_MODELVIEW0_ARB :: GLenum+gl_MODELVIEW0_ARB = 0x1700+gl_LINE_STRIP_ADJACENCY_EXT :: GLenum+gl_LINE_STRIP_ADJACENCY_EXT = 0x000B+gl_RGBA16UI :: GLenum+gl_RGBA16UI = 0x8D76+gl_SRC_ATOP_NV :: GLenum+gl_SRC_ATOP_NV = 0x928E+gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE :: GLenum+gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE+gl_REG_30_ATI :: GLenum+gl_REG_30_ATI = 0x893F+gl_4PASS_3_EXT :: GLenum+gl_4PASS_3_EXT = 0x80A7+gl_INT_IMAGE_3D_EXT :: GLenum+gl_INT_IMAGE_3D_EXT = 0x9059+gl_SYSTEM_FONT_NAME_NV :: GLenum+gl_SYSTEM_FONT_NAME_NV = 0x9073+gl_DRAW_BUFFER6 :: GLenum+gl_DRAW_BUFFER6 = 0x882B+gl_RG32I :: GLenum+gl_RG32I = 0x823B+gl_COLOR_BUFFER_BIT3_QCOM :: GLenum+gl_COLOR_BUFFER_BIT3_QCOM = 0x00000008+gl_CURRENT_OCCLUSION_QUERY_ID_NV :: GLenum+gl_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865+gl_INTERNALFORMAT_STENCIL_SIZE :: GLenum+gl_INTERNALFORMAT_STENCIL_SIZE = 0x8276+gl_STATIC_DRAW_ARB :: GLenum+gl_STATIC_DRAW_ARB = 0x88E4+gl_COMPRESSED_SRGB_ALPHA_EXT :: GLenum+gl_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49+gl_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI :: GLenum+gl_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000+gl_PALETTE8_RGBA4_OES :: GLenum+gl_PALETTE8_RGBA4_OES = 0x8B98+gl_FOG_START :: GLenum+gl_FOG_START = 0x0B63+gl_DEBUG_TYPE_POP_GROUP :: GLenum+gl_DEBUG_TYPE_POP_GROUP = 0x826A+gl_DRAW_BUFFER14_ATI :: GLenum+gl_DRAW_BUFFER14_ATI = 0x8833+gl_IMAGE_1D_ARRAY :: GLenum+gl_IMAGE_1D_ARRAY = 0x9052+gl_RELATIVE_LARGE_CCW_ARC_TO_NV :: GLenum+gl_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17+gl_FONT_MAX_ADVANCE_HEIGHT_BIT_NV :: GLenum+gl_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000+gl_EXCLUSION_NV :: GLenum+gl_EXCLUSION_NV = 0x92A0+gl_FONT_X_MAX_BOUNDS_BIT_NV :: GLenum+gl_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000+gl_PIXEL_TEX_GEN_Q_FLOOR_SGIX :: GLenum+gl_PIXEL_TEX_GEN_Q_FLOOR_SGIX = 0x8186+gl_DEPTH_BUFFER_BIT2_QCOM :: GLenum+gl_DEPTH_BUFFER_BIT2_QCOM = 0x00000400+gl_UNPACK_FLIP_Y_WEBGL :: GLenum+gl_UNPACK_FLIP_Y_WEBGL = 0x9240+gl_COLOR_ATTACHMENT15_NV :: GLenum+gl_COLOR_ATTACHMENT15_NV = 0x8CEF+gl_RG16F_EXT :: GLenum+gl_RG16F_EXT = 0x822F+gl_PRIMARY_COLOR :: GLenum+gl_PRIMARY_COLOR = 0x8577+gl_UNIFORM_BLOCK_DATA_SIZE :: GLenum+gl_UNIFORM_BLOCK_DATA_SIZE = 0x8A40+gl_INTERNALFORMAT_STENCIL_TYPE :: GLenum+gl_INTERNALFORMAT_STENCIL_TYPE = 0x827D+gl_COLOR_MATRIX_STACK_DEPTH_SGI :: GLenum+gl_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2+gl_AND :: GLenum+gl_AND = 0x1501+gl_GEOMETRY_INPUT_TYPE_ARB :: GLenum+gl_GEOMETRY_INPUT_TYPE_ARB = 0x8DDB+gl_SAMPLER_BUFFER :: GLenum+gl_SAMPLER_BUFFER = 0x8DC2+gl_COLOR_BUFFER_BIT2_QCOM :: GLenum+gl_COLOR_BUFFER_BIT2_QCOM = 0x00000004+gl_MAX_CLIP_DISTANCES :: GLenum+gl_MAX_CLIP_DISTANCES = 0x0D32+gl_OUTPUT_TEXTURE_COORD25_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6+gl_SLIM8U_SGIX :: GLenum+gl_SLIM8U_SGIX = 0x831D+gl_OP_DOT4_EXT :: GLenum+gl_OP_DOT4_EXT = 0x8785+gl_INFO_LOG_LENGTH :: GLenum+gl_INFO_LOG_LENGTH = 0x8B84+gl_REG_25_ATI :: GLenum+gl_REG_25_ATI = 0x893A+gl_MAX_PROGRAM_CALL_DEPTH_NV :: GLenum+gl_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5+gl_VIRTUAL_PAGE_SIZE_INDEX_ARB :: GLenum+gl_VIRTUAL_PAGE_SIZE_INDEX_ARB = 0x91A7+gl_MAX_PROGRAM_RESULT_COMPONENTS_NV :: GLenum+gl_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909+gl_RELATIVE_CONIC_CURVE_TO_NV :: GLenum+gl_RELATIVE_CONIC_CURVE_TO_NV = 0x1B+gl_CLIP_DISTANCE4 :: GLenum+gl_CLIP_DISTANCE4 = 0x3004+gl_UTF8_NV :: GLenum+gl_UTF8_NV = 0x909A+gl_INVALID_INDEX :: GLenum+gl_INVALID_INDEX = 0xFFFFFFFF+gl_DOT3_RGBA_IMG :: GLenum+gl_DOT3_RGBA_IMG = 0x86AF+gl_FRAGMENT_MATERIAL_EXT :: GLenum+gl_FRAGMENT_MATERIAL_EXT = 0x8349+gl_PACK_CMYK_HINT_EXT :: GLenum+gl_PACK_CMYK_HINT_EXT = 0x800E+gl_LUMINANCE_ALPHA8I_EXT :: GLenum+gl_LUMINANCE_ALPHA8I_EXT = 0x8D93+gl_PIXEL_BUFFER_BARRIER_BIT_EXT :: GLenum+gl_PIXEL_BUFFER_BARRIER_BIT_EXT = 0x00000080+gl_BUFFER_KHR :: GLenum+gl_BUFFER_KHR = 0x82E0+gl_STENCIL_BACK_OP_VALUE_AMD :: GLenum+gl_STENCIL_BACK_OP_VALUE_AMD = 0x874D+gl_DST_COLOR :: GLenum+gl_DST_COLOR = 0x0306+gl_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT :: GLenum+gl_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = 0x00000800+gl_ZERO :: GLenum+gl_ZERO = 0+gl_COORD_REPLACE :: GLenum+gl_COORD_REPLACE = 0x8862+gl_FRAMEBUFFER_SRGB :: GLenum+gl_FRAMEBUFFER_SRGB = 0x8DB9+gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES = 0x9279+gl_CONSTANT :: GLenum+gl_CONSTANT = 0x8576+gl_TEXTURE_CONSTANT_DATA_SUNX :: GLenum+gl_TEXTURE_CONSTANT_DATA_SUNX = 0x81D6+gl_MAX_DEBUG_MESSAGE_LENGTH :: GLenum+gl_MAX_DEBUG_MESSAGE_LENGTH = 0x9143+gl_MAX_VARYING_FLOATS :: GLenum+gl_MAX_VARYING_FLOATS = 0x8B4B+gl_PLUS_NV :: GLenum+gl_PLUS_NV = 0x9291+gl_UNIFORM_NAME_LENGTH :: GLenum+gl_UNIFORM_NAME_LENGTH = 0x8A39+gl_SECONDARY_COLOR_ARRAY_STRIDE :: GLenum+gl_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C+gl_MAP1_VERTEX_ATTRIB13_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D+gl_TRACK_MATRIX_TRANSFORM_NV :: GLenum+gl_TRACK_MATRIX_TRANSFORM_NV = 0x8649+gl_MAX_COMPUTE_UNIFORM_COMPONENTS :: GLenum+gl_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263+gl_DOUBLE_MAT4 :: GLenum+gl_DOUBLE_MAT4 = 0x8F48+gl_TEXTURE_SRGB_DECODE_EXT :: GLenum+gl_TEXTURE_SRGB_DECODE_EXT = 0x8A48+gl_TEXTURE_BORDER_COLOR :: GLenum+gl_TEXTURE_BORDER_COLOR = 0x1004+gl_DISPLAY_LIST :: GLenum+gl_DISPLAY_LIST = 0x82E7+gl_COLOR_ENCODING :: GLenum+gl_COLOR_ENCODING = 0x8296+gl_EXPAND_NEGATE_NV :: GLenum+gl_EXPAND_NEGATE_NV = 0x8539+gl_UNPACK_ROW_LENGTH_EXT :: GLenum+gl_UNPACK_ROW_LENGTH_EXT = 0x0CF2+gl_RGB_SCALE_ARB :: GLenum+gl_RGB_SCALE_ARB = 0x8573+gl_CURRENT_ATTRIB_NV :: GLenum+gl_CURRENT_ATTRIB_NV = 0x8626+gl_TEXTURE25 :: GLenum+gl_TEXTURE25 = 0x84D9+gl_DEPTH :: GLenum+gl_DEPTH = 0x1801+gl_DRAW_BUFFER2_ARB :: GLenum+gl_DRAW_BUFFER2_ARB = 0x8827+gl_FENCE_CONDITION_NV :: GLenum+gl_FENCE_CONDITION_NV = 0x84F4+gl_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB :: GLenum+gl_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E+gl_OP_POWER_EXT :: GLenum+gl_OP_POWER_EXT = 0x8793+gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB :: GLenum+gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E+gl_FRAMEBUFFER_DEFAULT :: GLenum+gl_FRAMEBUFFER_DEFAULT = 0x8218+gl_COLOR_ATTACHMENT13_EXT :: GLenum+gl_COLOR_ATTACHMENT13_EXT = 0x8CED+gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215+gl_CUBIC_HP :: GLenum+gl_CUBIC_HP = 0x815F+gl_GREATER :: GLenum+gl_GREATER = 0x0204+gl_OP_MOV_EXT :: GLenum+gl_OP_MOV_EXT = 0x8799+gl_RED_SNORM :: GLenum+gl_RED_SNORM = 0x8F90+gl_ALPHA_MAX_CLAMP_INGR :: GLenum+gl_ALPHA_MAX_CLAMP_INGR = 0x8567+gl_VERTEX_ATTRIB_ARRAY_LONG :: GLenum+gl_VERTEX_ATTRIB_ARRAY_LONG = 0x874E+gl_DEBUG_SEVERITY_LOW_ARB :: GLenum+gl_DEBUG_SEVERITY_LOW_ARB = 0x9148+gl_PURGEABLE_APPLE :: GLenum+gl_PURGEABLE_APPLE = 0x8A1D+gl_MAX_SHININESS_NV :: GLenum+gl_MAX_SHININESS_NV = 0x8504+gl_VERTEX_SHADER_INVARIANTS_EXT :: GLenum+gl_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1+gl_CLIP_DISTANCE1 :: GLenum+gl_CLIP_DISTANCE1 = 0x3001+gl_PROGRAM_NATIVE_PARAMETERS_ARB :: GLenum+gl_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA+gl_SRC_ALPHA_SATURATE :: GLenum+gl_SRC_ALPHA_SATURATE = 0x0308+gl_COLOR_RENDERABLE :: GLenum+gl_COLOR_RENDERABLE = 0x8286+gl_LINE_STIPPLE :: GLenum+gl_LINE_STIPPLE = 0x0B24+gl_COMPILE_AND_EXECUTE :: GLenum+gl_COMPILE_AND_EXECUTE = 0x1301+gl_FOG_COORDINATE :: GLenum+gl_FOG_COORDINATE = 0x8451+gl_MULTISAMPLE_COVERAGE_MODES_NV :: GLenum+gl_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12+gl_OUTPUT_TEXTURE_COORD16_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD+gl_SCALE_BY_FOUR_NV :: GLenum+gl_SCALE_BY_FOUR_NV = 0x853F+gl_INDEX_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899+gl_MAX_TEXTURE_IMAGE_UNITS_ARB :: GLenum+gl_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872+gl_HALF_BIAS_NEGATE_NV :: GLenum+gl_HALF_BIAS_NEGATE_NV = 0x853B+gl_INT_IMAGE_2D_MULTISAMPLE_EXT :: GLenum+gl_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x9060+gl_CON_30_ATI :: GLenum+gl_CON_30_ATI = 0x895F+gl_SAMPLE_ALPHA_TO_ONE_EXT :: GLenum+gl_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F+gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A+gl_STORAGE_CACHED_APPLE :: GLenum+gl_STORAGE_CACHED_APPLE = 0x85BE+gl_SAMPLER_2D_SHADOW :: GLenum+gl_SAMPLER_2D_SHADOW = 0x8B62+gl_ALPHA_FLOAT16_APPLE :: GLenum+gl_ALPHA_FLOAT16_APPLE = 0x881C+gl_PERFQUERY_COUNTER_EVENT_INTEL :: GLenum+gl_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0+gl_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB :: GLenum+gl_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = 0x91A9+gl_BACK_PRIMARY_COLOR_NV :: GLenum+gl_BACK_PRIMARY_COLOR_NV = 0x8C77+gl_PROGRAM_PARAMETERS_ARB :: GLenum+gl_PROGRAM_PARAMETERS_ARB = 0x88A8+gl_MIN_SPARSE_LEVEL_AMD :: GLenum+gl_MIN_SPARSE_LEVEL_AMD = 0x919B+gl_INT_SAMPLER_1D_ARRAY_EXT :: GLenum+gl_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE+gl_DOUBLEBUFFER :: GLenum+gl_DOUBLEBUFFER = 0x0C32+gl_NEGATIVE_W_EXT :: GLenum+gl_NEGATIVE_W_EXT = 0x87DC+gl_VIEW_CLASS_RGTC1_RED :: GLenum+gl_VIEW_CLASS_RGTC1_RED = 0x82D0+gl_PROGRAM_KHR :: GLenum+gl_PROGRAM_KHR = 0x82E2+gl_LINEARDODGE_NV :: GLenum+gl_LINEARDODGE_NV = 0x92A4+gl_NORMALIZED_RANGE_EXT :: GLenum+gl_NORMALIZED_RANGE_EXT = 0x87E0+gl_BUFFER_SERIALIZED_MODIFY_APPLE :: GLenum+gl_BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12+gl_TEXTURE3_ARB :: GLenum+gl_TEXTURE3_ARB = 0x84C3+gl_INDEX_TEST_FUNC_EXT :: GLenum+gl_INDEX_TEST_FUNC_EXT = 0x81B6+gl_COMPUTE_TEXTURE :: GLenum+gl_COMPUTE_TEXTURE = 0x82A0+gl_UNSIGNED_INT_IMAGE_BUFFER_EXT :: GLenum+gl_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067+gl_CON_9_ATI :: GLenum+gl_CON_9_ATI = 0x894A+gl_RELATIVE_LINE_TO_NV :: GLenum+gl_RELATIVE_LINE_TO_NV = 0x05+gl_TEXTURE_RECTANGLE_NV :: GLenum+gl_TEXTURE_RECTANGLE_NV = 0x84F5+gl_COMPRESSED_RGBA_S3TC_DXT5_ANGLE :: GLenum+gl_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3+gl_COMPRESSED_RGBA_ASTC_6x5_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3+gl_TEXTURE_LUMINANCE_SIZE :: GLenum+gl_TEXTURE_LUMINANCE_SIZE = 0x8060+gl_PROJECTION_MATRIX :: GLenum+gl_PROJECTION_MATRIX = 0x0BA7+gl_VIBRANCE_BIAS_NV :: GLenum+gl_VIBRANCE_BIAS_NV = 0x8719+gl_MAX_VERTEX_ATOMIC_COUNTERS :: GLenum+gl_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2+gl_FOG_COORD_ARRAY_POINTER :: GLenum+gl_FOG_COORD_ARRAY_POINTER = 0x8456+gl_POLYGON_OFFSET_BIAS_EXT :: GLenum+gl_POLYGON_OFFSET_BIAS_EXT = 0x8039+gl_DEBUG_SOURCE_OTHER :: GLenum+gl_DEBUG_SOURCE_OTHER = 0x824B+gl_LINEAR_SHARPEN_ALPHA_SGIS :: GLenum+gl_LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE+gl_AVERAGE_EXT :: GLenum+gl_AVERAGE_EXT = 0x8335+gl_PACK_SKIP_IMAGES_EXT :: GLenum+gl_PACK_SKIP_IMAGES_EXT = 0x806B+gl_BITMAP_TOKEN :: GLenum+gl_BITMAP_TOKEN = 0x0704+gl_TESSELLATION_MODE_AMD :: GLenum+gl_TESSELLATION_MODE_AMD = 0x9004+gl_POST_CONVOLUTION_COLOR_TABLE_SGI :: GLenum+gl_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1+gl_MODELVIEW1_EXT :: GLenum+gl_MODELVIEW1_EXT = 0x850A+gl_OPERAND1_RGB_ARB :: GLenum+gl_OPERAND1_RGB_ARB = 0x8591+gl_4D_COLOR_TEXTURE :: GLenum+gl_4D_COLOR_TEXTURE = 0x0604+gl_ACTIVE_ATTRIBUTES :: GLenum+gl_ACTIVE_ATTRIBUTES = 0x8B89+gl_BUFFER_BINDING :: GLenum+gl_BUFFER_BINDING = 0x9302+gl_VERTEX_STATE_PROGRAM_NV :: GLenum+gl_VERTEX_STATE_PROGRAM_NV = 0x8621+gl_DST_ATOP_NV :: GLenum+gl_DST_ATOP_NV = 0x928F+gl_TEXTURE_DEPTH_EXT :: GLenum+gl_TEXTURE_DEPTH_EXT = 0x8071+gl_UNSIGNED_INT_VEC4 :: GLenum+gl_UNSIGNED_INT_VEC4 = 0x8DC8+gl_GREEN_INTEGER :: GLenum+gl_GREEN_INTEGER = 0x8D95+gl_DOUBLE_MAT4x2_EXT :: GLenum+gl_DOUBLE_MAT4x2_EXT = 0x8F4D+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7+gl_INDEX_ARRAY_LIST_IBM :: GLenum+gl_INDEX_ARRAY_LIST_IBM = 103073+gl_SAMPLER_2D_ARRAY_SHADOW :: GLenum+gl_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4+gl_COMPRESSED_SRGB_S3TC_DXT1_NV :: GLenum+gl_COMPRESSED_SRGB_S3TC_DXT1_NV = 0x8C4C+gl_COMPRESSED_RGBA_ASTC_4x3x3_OES :: GLenum+gl_COMPRESSED_RGBA_ASTC_4x3x3_OES = 0x93C1+gl_DRAW_BUFFER3_ATI :: GLenum+gl_DRAW_BUFFER3_ATI = 0x8828+gl_MAX_FRAGMENT_UNIFORM_COMPONENTS :: GLenum+gl_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49+gl_PROXY_TEXTURE_3D_EXT :: GLenum+gl_PROXY_TEXTURE_3D_EXT = 0x8070+gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT :: GLenum+gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85+gl_PATH_COMPUTED_LENGTH_NV :: GLenum+gl_PATH_COMPUTED_LENGTH_NV = 0x90A0+gl_DEPTH_STENCIL_MESA :: GLenum+gl_DEPTH_STENCIL_MESA = 0x8750+gl_MAT_DIFFUSE_BIT_PGI :: GLenum+gl_MAT_DIFFUSE_BIT_PGI = 0x00400000+gl_TEXTURE_STENCIL_SIZE :: GLenum+gl_TEXTURE_STENCIL_SIZE = 0x88F1+gl_PATH_PROJECTION_NV :: GLenum+gl_PATH_PROJECTION_NV = 0x1701+gl_DUAL_TEXTURE_SELECT_SGIS :: GLenum+gl_DUAL_TEXTURE_SELECT_SGIS = 0x8124+gl_MATRIX14_ARB :: GLenum+gl_MATRIX14_ARB = 0x88CE+gl_PATH_OBJECT_BOUNDING_BOX_NV :: GLenum+gl_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A+gl_READ_PIXELS :: GLenum+gl_READ_PIXELS = 0x828C+gl_TRIANGLE_LIST_SUN :: GLenum+gl_TRIANGLE_LIST_SUN = 0x81D7+gl_COMPARE_R_TO_TEXTURE :: GLenum+gl_COMPARE_R_TO_TEXTURE = 0x884E+gl_INTENSITY8UI_EXT :: GLenum+gl_INTENSITY8UI_EXT = 0x8D7F+gl_DEBUG_OUTPUT_SYNCHRONOUS_ARB :: GLenum+gl_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242+gl_COLOR_TABLE_GREEN_SIZE :: GLenum+gl_COLOR_TABLE_GREEN_SIZE = 0x80DB+gl_CURRENT_VERTEX_ATTRIB :: GLenum+gl_CURRENT_VERTEX_ATTRIB = 0x8626+gl_POST_COLOR_MATRIX_GREEN_BIAS :: GLenum+gl_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9+gl_GPU_MEMORY_INFO_EVICTION_COUNT_NVX :: GLenum+gl_GPU_MEMORY_INFO_EVICTION_COUNT_NVX = 0x904A+gl_SUBSAMPLE_DISTANCE_AMD :: GLenum+gl_SUBSAMPLE_DISTANCE_AMD = 0x883F+gl_SRGB8_EXT :: GLenum+gl_SRGB8_EXT = 0x8C41+gl_DETAIL_TEXTURE_FUNC_POINTS_SGIS :: GLenum+gl_DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C+gl_INCR_WRAP_EXT :: GLenum+gl_INCR_WRAP_EXT = 0x8507+gl_UNPACK_COMPRESSED_BLOCK_SIZE :: GLenum+gl_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A+gl_OBJECT_VALIDATE_STATUS_ARB :: GLenum+gl_OBJECT_VALIDATE_STATUS_ARB = 0x8B83+gl_WEIGHT_ARRAY_STRIDE_ARB :: GLenum+gl_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA+gl_OUTPUT_TEXTURE_COORD3_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0+gl_TEXTURE16_ARB :: GLenum+gl_TEXTURE16_ARB = 0x84D0+gl_VIDEO_COLOR_CONVERSION_MATRIX_NV :: GLenum+gl_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029+gl_EYE_DISTANCE_TO_POINT_SGIS :: GLenum+gl_EYE_DISTANCE_TO_POINT_SGIS = 0x81F0+gl_TEXTURE_COMPARE_FUNC :: GLenum+gl_TEXTURE_COMPARE_FUNC = 0x884D+gl_DEPTH_BUFFER_FLOAT_MODE_NV :: GLenum+gl_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF+gl_TEXTURE_SWIZZLE_G :: GLenum+gl_TEXTURE_SWIZZLE_G = 0x8E43+gl_DEBUG_TYPE_OTHER_ARB :: GLenum+gl_DEBUG_TYPE_OTHER_ARB = 0x8251+gl_TESS_EVALUATION_SHADER_BIT_EXT :: GLenum+gl_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010+gl_VERTEX_PROGRAM_CALLBACK_DATA_MESA :: GLenum+gl_VERTEX_PROGRAM_CALLBACK_DATA_MESA = 0x8BB7+gl_INT_SAMPLER_BUFFER_EXT :: GLenum+gl_INT_SAMPLER_BUFFER_EXT = 0x8DD0+gl_OP_CLAMP_EXT :: GLenum+gl_OP_CLAMP_EXT = 0x878E+gl_POINT_SIZE_MIN :: GLenum+gl_POINT_SIZE_MIN = 0x8126+gl_UNSIGNED_BYTE_3_3_2_EXT :: GLenum+gl_UNSIGNED_BYTE_3_3_2_EXT = 0x8032+gl_TEXTURE_CLIPMAP_DEPTH_SGIX :: GLenum+gl_TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176+gl_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT :: GLenum+gl_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A+gl_DOUBLE_VEC4_EXT :: GLenum+gl_DOUBLE_VEC4_EXT = 0x8FFE+gl_SYNC_CONDITION_APPLE :: GLenum+gl_SYNC_CONDITION_APPLE = 0x9113+gl_MAX_TEXTURE_COORDS_NV :: GLenum+gl_MAX_TEXTURE_COORDS_NV = 0x8871+gl_RELATIVE_QUADRATIC_CURVE_TO_NV :: GLenum+gl_RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B+gl_DEBUG_GROUP_STACK_DEPTH_KHR :: GLenum+gl_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D+gl_CONTEXT_LOST_KHR :: GLenum+gl_CONTEXT_LOST_KHR = 0x0507+gl_QUADRATIC_CURVE_TO_NV :: GLenum+gl_QUADRATIC_CURVE_TO_NV = 0x0A+gl_MIN_EXT :: GLenum+gl_MIN_EXT = 0x8007+gl_VERTEX_ATTRIB_ARRAY11_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY11_NV = 0x865B+gl_FACTOR_ALPHA_MODULATE_IMG :: GLenum+gl_FACTOR_ALPHA_MODULATE_IMG = 0x8C07+gl_MAP1_GRID_DOMAIN :: GLenum+gl_MAP1_GRID_DOMAIN = 0x0DD0+gl_COLOR_MATRIX_STACK_DEPTH :: GLenum+gl_COLOR_MATRIX_STACK_DEPTH = 0x80B2+gl_IMAGE_PIXEL_FORMAT :: GLenum+gl_IMAGE_PIXEL_FORMAT = 0x82A9+gl_DRAW_BUFFER1_EXT :: GLenum+gl_DRAW_BUFFER1_EXT = 0x8826+gl_UNSIGNED_INT_VEC2 :: GLenum+gl_UNSIGNED_INT_VEC2 = 0x8DC6+gl_QUAD_LUMINANCE8_SGIS :: GLenum+gl_QUAD_LUMINANCE8_SGIS = 0x8121+gl_ELEMENT_ARRAY_UNIFIED_NV :: GLenum+gl_ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F+gl_COLOR_LOGIC_OP :: GLenum+gl_COLOR_LOGIC_OP = 0x0BF2+gl_GREEN_NV :: GLenum+gl_GREEN_NV = 0x1904+gl_DEPTH_COMPONENT :: GLenum+gl_DEPTH_COMPONENT = 0x1902+gl_TEXTURE18 :: GLenum+gl_TEXTURE18 = 0x84D2+gl_COMBINER_SUM_OUTPUT_NV :: GLenum+gl_COMBINER_SUM_OUTPUT_NV = 0x854C+gl_DUAL_LUMINANCE8_SGIS :: GLenum+gl_DUAL_LUMINANCE8_SGIS = 0x8115+gl_PATH_DASH_OFFSET_RESET_NV :: GLenum+gl_PATH_DASH_OFFSET_RESET_NV = 0x90B4+gl_INT_SAMPLER_BUFFER :: GLenum+gl_INT_SAMPLER_BUFFER = 0x8DD0+gl_DEBUG_SEVERITY_MEDIUM_ARB :: GLenum+gl_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147+gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT :: GLenum+gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76+gl_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX :: GLenum+gl_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A+gl_UNSIGNED_SHORT_15_1_MESA :: GLenum+gl_UNSIGNED_SHORT_15_1_MESA = 0x8753+gl_LUMINANCE32F_ARB :: GLenum+gl_LUMINANCE32F_ARB = 0x8818+gl_TRANSPOSE_NV :: GLenum+gl_TRANSPOSE_NV = 0x862C+gl_LUMINANCE8_EXT :: GLenum+gl_LUMINANCE8_EXT = 0x8040+gl_WRITE_DISCARD_NV :: GLenum+gl_WRITE_DISCARD_NV = 0x88BE+gl_STENCIL_BUFFER_BIT5_QCOM :: GLenum+gl_STENCIL_BUFFER_BIT5_QCOM = 0x00200000+gl_FOG_END :: GLenum+gl_FOG_END = 0x0B64+gl_DRAW_BUFFER9_NV :: GLenum+gl_DRAW_BUFFER9_NV = 0x882E+gl_PROVOKING_VERTEX_EXT :: GLenum+gl_PROVOKING_VERTEX_EXT = 0x8E4F+gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS :: GLenum+gl_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF+gl_2PASS_0_EXT :: GLenum+gl_2PASS_0_EXT = 0x80A2+gl_MAP_UNSYNCHRONIZED_BIT :: GLenum+gl_MAP_UNSYNCHRONIZED_BIT = 0x0020+gl_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI :: GLenum+gl_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8+gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV :: GLenum+gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5E+gl_SAMPLER_CUBE_SHADOW :: GLenum+gl_SAMPLER_CUBE_SHADOW = 0x8DC5+gl_V2F :: GLenum+gl_V2F = 0x2A20+gl_IMAGE_2D_EXT :: GLenum+gl_IMAGE_2D_EXT = 0x904D+gl_LUMINANCE32UI_EXT :: GLenum+gl_LUMINANCE32UI_EXT = 0x8D74+gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT :: GLenum+gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900F+gl_SLUMINANCE8_ALPHA8_NV :: GLenum+gl_SLUMINANCE8_ALPHA8_NV = 0x8C45+gl_MAX_ASYNC_DRAW_PIXELS_SGIX :: GLenum+gl_MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360+gl_POINT_SIZE_ARRAY_TYPE_OES :: GLenum+gl_POINT_SIZE_ARRAY_TYPE_OES = 0x898A+gl_SIGNED_LUMINANCE8_ALPHA8_NV :: GLenum+gl_SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704+gl_UNSIGNED_INT_24_8_EXT :: GLenum+gl_UNSIGNED_INT_24_8_EXT = 0x84FA+gl_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV :: GLenum+gl_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE+gl_CONIC_CURVE_TO_NV :: GLenum+gl_CONIC_CURVE_TO_NV = 0x1A+gl_STREAM_DRAW_ARB :: GLenum+gl_STREAM_DRAW_ARB = 0x88E0+gl_ACTIVE_PROGRAM_EXT :: GLenum+gl_ACTIVE_PROGRAM_EXT = 0x8B8D+gl_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB :: GLenum+gl_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = 0x91BF+gl_PROGRAM_RESIDENT_NV :: GLenum+gl_PROGRAM_RESIDENT_NV = 0x8647+gl_COLOR_TABLE_ALPHA_SIZE_SGI :: GLenum+gl_COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD+gl_INT_IMAGE_2D_ARRAY_EXT :: GLenum+gl_INT_IMAGE_2D_ARRAY_EXT = 0x905E+gl_OUTPUT_TEXTURE_COORD15_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC+gl_SRC_OUT_NV :: GLenum+gl_SRC_OUT_NV = 0x928C+gl_MAP_FLUSH_EXPLICIT_BIT :: GLenum+gl_MAP_FLUSH_EXPLICIT_BIT = 0x0010+gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB :: GLenum+gl_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F+gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS :: GLenum+gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85+gl_EVAL_VERTEX_ATTRIB2_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB2_NV = 0x86C8+gl_PIXEL_TILE_WIDTH_SGIX :: GLenum+gl_PIXEL_TILE_WIDTH_SGIX = 0x8140+gl_PROXY_TEXTURE_RECTANGLE :: GLenum+gl_PROXY_TEXTURE_RECTANGLE = 0x84F7+gl_VERTEX_ARRAY_BINDING :: GLenum+gl_VERTEX_ARRAY_BINDING = 0x85B5+gl_CLIP_PLANE4 :: GLenum+gl_CLIP_PLANE4 = 0x3004+gl_EVAL_VERTEX_ATTRIB15_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB15_NV = 0x86D5+gl_POINT_FADE_THRESHOLD_SIZE_ARB :: GLenum+gl_POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128+gl_UNSIGNED_INT_5_9_9_9_REV_EXT :: GLenum+gl_UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E+gl_DEBUG_GROUP_STACK_DEPTH :: GLenum+gl_DEBUG_GROUP_STACK_DEPTH = 0x826D+gl_QUERY_WAIT_INVERTED :: GLenum+gl_QUERY_WAIT_INVERTED = 0x8E17+gl_DRAW_PIXEL_TOKEN :: GLenum+gl_DRAW_PIXEL_TOKEN = 0x0705+gl_OPERAND2_ALPHA_ARB :: GLenum+gl_OPERAND2_ALPHA_ARB = 0x859A+gl_STACK_UNDERFLOW :: GLenum+gl_STACK_UNDERFLOW = 0x0504+gl_FLOAT_VEC4_ARB :: GLenum+gl_FLOAT_VEC4_ARB = 0x8B52+gl_OBJECT_INFO_LOG_LENGTH_ARB :: GLenum+gl_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84+gl_DRAW_BUFFER15_EXT :: GLenum+gl_DRAW_BUFFER15_EXT = 0x8834+gl_PATH_PROJECTION_MATRIX_NV :: GLenum+gl_PATH_PROJECTION_MATRIX_NV = 0x0BA7+gl_ADD_SIGNED :: GLenum+gl_ADD_SIGNED = 0x8574+gl_FRAGMENT_INTERPOLATION_OFFSET_BITS :: GLenum+gl_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D+gl_VERTEX_SHADER_INSTRUCTIONS_EXT :: GLenum+gl_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF+gl_NEXT_BUFFER_NV :: GLenum+gl_NEXT_BUFFER_NV = -2+gl_TRIANGLE_STRIP_ADJACENCY_ARB :: GLenum+gl_TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D+gl_UNSIGNED_BYTE_2_3_3_REV_EXT :: GLenum+gl_UNSIGNED_BYTE_2_3_3_REV_EXT = 0x8362+gl_QUERY_RESULT_NO_WAIT :: GLenum+gl_QUERY_RESULT_NO_WAIT = 0x9194+gl_SECONDARY_COLOR_ARRAY_ADDRESS_NV :: GLenum+gl_SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27+gl_ALPHA16_SNORM :: GLenum+gl_ALPHA16_SNORM = 0x9018+gl_COLOR_ARRAY_LENGTH_NV :: GLenum+gl_COLOR_ARRAY_LENGTH_NV = 0x8F2D+gl_SLUMINANCE_EXT :: GLenum+gl_SLUMINANCE_EXT = 0x8C46+gl_DOT_PRODUCT_TEXTURE_2D_NV :: GLenum+gl_DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE+gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7+gl_INT_IMAGE_2D_ARRAY :: GLenum+gl_INT_IMAGE_2D_ARRAY = 0x905E+gl_POLYGON_OFFSET_LINE :: GLenum+gl_POLYGON_OFFSET_LINE = 0x2A02+gl_ONE_MINUS_DST_ALPHA :: GLenum+gl_ONE_MINUS_DST_ALPHA = 0x0305+gl_ACCUM_BUFFER_BIT :: GLenum+gl_ACCUM_BUFFER_BIT = 0x00000200+gl_SOURCE1_ALPHA_ARB :: GLenum+gl_SOURCE1_ALPHA_ARB = 0x8589+gl_HISTOGRAM_WIDTH_EXT :: GLenum+gl_HISTOGRAM_WIDTH_EXT = 0x8026+gl_RENDERBUFFER_SAMPLES_EXT :: GLenum+gl_RENDERBUFFER_SAMPLES_EXT = 0x8CAB+gl_FRAGMENT_LIGHTING_SGIX :: GLenum+gl_FRAGMENT_LIGHTING_SGIX = 0x8400+gl_TEXTURE_WIDTH_QCOM :: GLenum+gl_TEXTURE_WIDTH_QCOM = 0x8BD2+gl_TEXTURE_BUFFER_FORMAT_EXT :: GLenum+gl_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E+gl_VERTEX_PROGRAM_TWO_SIDE :: GLenum+gl_VERTEX_PROGRAM_TWO_SIDE = 0x8643+gl_DEBUG_TYPE_OTHER_KHR :: GLenum+gl_DEBUG_TYPE_OTHER_KHR = 0x8251+gl_PRIMARY_COLOR_EXT :: GLenum+gl_PRIMARY_COLOR_EXT = 0x8577+gl_TEXTURE_COMPRESSED_ARB :: GLenum+gl_TEXTURE_COMPRESSED_ARB = 0x86A1+gl_PROXY_TEXTURE_1D_ARRAY_EXT :: GLenum+gl_PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19+gl_NORMAL_ARRAY_TYPE :: GLenum+gl_NORMAL_ARRAY_TYPE = 0x807E+gl_POST_COLOR_MATRIX_RED_BIAS_SGI :: GLenum+gl_POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8+gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB :: GLenum+gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F+gl_VERTEX_ATTRIB_ARRAY7_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY7_NV = 0x8657+gl_MAX_VERTEX_ATTRIB_STRIDE :: GLenum+gl_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5+gl_COLOR :: GLenum+gl_COLOR = 0x1800+gl_YCBCR_422_APPLE :: GLenum+gl_YCBCR_422_APPLE = 0x85B9+gl_TESS_GEN_SPACING :: GLenum+gl_TESS_GEN_SPACING = 0x8E77+gl_VERTEX_SHADER_INVOCATIONS_ARB :: GLenum+gl_VERTEX_SHADER_INVOCATIONS_ARB = 0x82F0+gl_STENCIL_INDEX4_OES :: GLenum+gl_STENCIL_INDEX4_OES = 0x8D47+gl_COMBINER_CD_DOT_PRODUCT_NV :: GLenum+gl_COMBINER_CD_DOT_PRODUCT_NV = 0x8546+gl_VIRTUAL_PAGE_SIZE_Z_ARB :: GLenum+gl_VIRTUAL_PAGE_SIZE_Z_ARB = 0x9197+gl_RIGHT :: GLenum+gl_RIGHT = 0x0407+gl_ALPHA16F_ARB :: GLenum+gl_ALPHA16F_ARB = 0x881C+gl_TANGENT_ARRAY_TYPE_EXT :: GLenum+gl_TANGENT_ARRAY_TYPE_EXT = 0x843E+gl_READ_FRAMEBUFFER_NV :: GLenum+gl_READ_FRAMEBUFFER_NV = 0x8CA8+gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT :: GLenum+gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29+gl_PALETTE4_RGB8_OES :: GLenum+gl_PALETTE4_RGB8_OES = 0x8B90+gl_UNSIGNED_INT_IMAGE_3D :: GLenum+gl_UNSIGNED_INT_IMAGE_3D = 0x9064+gl_NORMAL_ARRAY_ADDRESS_NV :: GLenum+gl_NORMAL_ARRAY_ADDRESS_NV = 0x8F22+gl_NO_RESET_NOTIFICATION_EXT :: GLenum+gl_NO_RESET_NOTIFICATION_EXT = 0x8261+gl_RGB4_S3TC :: GLenum+gl_RGB4_S3TC = 0x83A1+gl_AUX1 :: GLenum+gl_AUX1 = 0x040A+gl_MODELVIEW1_ARB :: GLenum+gl_MODELVIEW1_ARB = 0x850A+gl_OP_NEGATE_EXT :: GLenum+gl_OP_NEGATE_EXT = 0x8783+gl_PACK_COMPRESSED_BLOCK_HEIGHT :: GLenum+gl_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C+gl_RENDERBUFFER_BINDING_OES :: GLenum+gl_RENDERBUFFER_BINDING_OES = 0x8CA7+gl_INT_IMAGE_1D :: GLenum+gl_INT_IMAGE_1D = 0x9057+gl_TEXTURE_GEQUAL_R_SGIX :: GLenum+gl_TEXTURE_GEQUAL_R_SGIX = 0x819D+gl_VERTEX_BINDING_DIVISOR :: GLenum+gl_VERTEX_BINDING_DIVISOR = 0x82D6+gl_BLEND_SRC_ALPHA_OES :: GLenum+gl_BLEND_SRC_ALPHA_OES = 0x80CB+gl_READ_BUFFER_NV :: GLenum+gl_READ_BUFFER_NV = 0x0C02+gl_DEBUG_TYPE_ERROR_KHR :: GLenum+gl_DEBUG_TYPE_ERROR_KHR = 0x824C+gl_INT_IMAGE_CUBE_EXT :: GLenum+gl_INT_IMAGE_CUBE_EXT = 0x905B+gl_COMPRESSED_RGBA_ASTC_6x6x6_OES :: GLenum+gl_COMPRESSED_RGBA_ASTC_6x6x6_OES = 0x93C9+gl_IMAGE_MIN_FILTER_HP :: GLenum+gl_IMAGE_MIN_FILTER_HP = 0x815D+gl_QUAD_ALPHA8_SGIS :: GLenum+gl_QUAD_ALPHA8_SGIS = 0x811F+gl_IMAGE_BINDING_LEVEL :: GLenum+gl_IMAGE_BINDING_LEVEL = 0x8F3B+gl_DOT3_RGB_EXT :: GLenum+gl_DOT3_RGB_EXT = 0x8740+gl_SAMPLER_3D_OES :: GLenum+gl_SAMPLER_3D_OES = 0x8B5F+gl_INT_VEC4 :: GLenum+gl_INT_VEC4 = 0x8B55+gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC+gl_NO_RESET_NOTIFICATION_ARB :: GLenum+gl_NO_RESET_NOTIFICATION_ARB = 0x8261+gl_IMAGE_MAG_FILTER_HP :: GLenum+gl_IMAGE_MAG_FILTER_HP = 0x815C+gl_COLOR4_BIT_PGI :: GLenum+gl_COLOR4_BIT_PGI = 0x00020000+gl_MAX_CLIPMAP_DEPTH_SGIX :: GLenum+gl_MAX_CLIPMAP_DEPTH_SGIX = 0x8177+gl_DEBUG_CATEGORY_OTHER_AMD :: GLenum+gl_DEBUG_CATEGORY_OTHER_AMD = 0x9150+gl_INT_IMAGE_2D_MULTISAMPLE :: GLenum+gl_INT_IMAGE_2D_MULTISAMPLE = 0x9060+gl_PERFQUERY_COUNTER_DATA_FLOAT_INTEL :: GLenum+gl_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA+gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB :: GLenum+gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3+gl_BINORMAL_ARRAY_EXT :: GLenum+gl_BINORMAL_ARRAY_EXT = 0x843A+gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211+gl_DRAW_BUFFER9_ARB :: GLenum+gl_DRAW_BUFFER9_ARB = 0x882E+gl_DSDT8_NV :: GLenum+gl_DSDT8_NV = 0x8709+gl_MAP1_VERTEX_ATTRIB9_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669+gl_PROGRAM_OBJECT_ARB :: GLenum+gl_PROGRAM_OBJECT_ARB = 0x8B40+gl_FONT_UNDERLINE_POSITION_BIT_NV :: GLenum+gl_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000+gl_SHADER_OPERATION_NV :: GLenum+gl_SHADER_OPERATION_NV = 0x86DF+gl_QUERY_RESULT_AVAILABLE_EXT :: GLenum+gl_QUERY_RESULT_AVAILABLE_EXT = 0x8867+gl_VIVIDLIGHT_NV :: GLenum+gl_VIVIDLIGHT_NV = 0x92A6+gl_HSL_HUE_NV :: GLenum+gl_HSL_HUE_NV = 0x92AD+gl_EMBOSS_MAP_NV :: GLenum+gl_EMBOSS_MAP_NV = 0x855F+gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB :: GLenum+gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D+gl_ALL_BARRIER_BITS :: GLenum+gl_ALL_BARRIER_BITS = 0xFFFFFFFF+gl_TEXTURE11_ARB :: GLenum+gl_TEXTURE11_ARB = 0x84CB+gl_BOLD_BIT_NV :: GLenum+gl_BOLD_BIT_NV = 0x01+gl_SAMPLE_BUFFERS_3DFX :: GLenum+gl_SAMPLE_BUFFERS_3DFX = 0x86B3+gl_INTERNALFORMAT_ALPHA_SIZE :: GLenum+gl_INTERNALFORMAT_ALPHA_SIZE = 0x8274+gl_COMPRESSED_RGBA_ASTC_8x8_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7+gl_VIRTUAL_PAGE_SIZE_Z_AMD :: GLenum+gl_VIRTUAL_PAGE_SIZE_Z_AMD = 0x9197+gl_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE :: GLenum+gl_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09+gl_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB :: GLenum+gl_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = 0x82F3+gl_DRAW_PIXELS_APPLE :: GLenum+gl_DRAW_PIXELS_APPLE = 0x8A0A+gl_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519+gl_FRAGMENT_COLOR_MATERIAL_FACE_SGIX :: GLenum+gl_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402+gl_DRAW_INDIRECT_ADDRESS_NV :: GLenum+gl_DRAW_INDIRECT_ADDRESS_NV = 0x8F41+gl_COVERAGE_BUFFER_BIT_NV :: GLenum+gl_COVERAGE_BUFFER_BIT_NV = 0x00008000+gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT :: GLenum+gl_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC+gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9+gl_BLUE_NV :: GLenum+gl_BLUE_NV = 0x1905+gl_TEXTURE0_ARB :: GLenum+gl_TEXTURE0_ARB = 0x84C0+gl_DEBUG_SOURCE_THIRD_PARTY_ARB :: GLenum+gl_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249+gl_TEXTURE_NORMAL_EXT :: GLenum+gl_TEXTURE_NORMAL_EXT = 0x85AF+gl_TEXTURE_BUFFER_FORMAT_ARB :: GLenum+gl_TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E+gl_OPERAND0_ALPHA :: GLenum+gl_OPERAND0_ALPHA = 0x8598+gl_FLOAT_MAT2x3 :: GLenum+gl_FLOAT_MAT2x3 = 0x8B65+gl_TEXTURE_BINDING :: GLenum+gl_TEXTURE_BINDING = 0x82EB+gl_INT_SAMPLER_2D :: GLenum+gl_INT_SAMPLER_2D = 0x8DCA+gl_OR :: GLenum+gl_OR = 0x1507+gl_INT16_VEC2_NV :: GLenum+gl_INT16_VEC2_NV = 0x8FE5+gl_DUAL_ALPHA4_SGIS :: GLenum+gl_DUAL_ALPHA4_SGIS = 0x8110+gl_FRAMEZOOM_FACTOR_SGIX :: GLenum+gl_FRAMEZOOM_FACTOR_SGIX = 0x818C+gl_IMAGE_2D_MULTISAMPLE_ARRAY_EXT :: GLenum+gl_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9056+gl_RGB_INTEGER :: GLenum+gl_RGB_INTEGER = 0x8D98+gl_UNSIGNED_INT64_VEC2_NV :: GLenum+gl_UNSIGNED_INT64_VEC2_NV = 0x8FF5+gl_OUTPUT_TEXTURE_COORD21_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2+gl_ENABLE_BIT :: GLenum+gl_ENABLE_BIT = 0x00002000+gl_POLYGON_OFFSET_EXT :: GLenum+gl_POLYGON_OFFSET_EXT = 0x8037+gl_PIXEL_TEX_GEN_MODE_SGIX :: GLenum+gl_PIXEL_TEX_GEN_MODE_SGIX = 0x832B+gl_LINE_SMOOTH :: GLenum+gl_LINE_SMOOTH = 0x0B20+gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB :: GLenum+gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = 0x919A+gl_COLOR_TABLE_LUMINANCE_SIZE_SGI :: GLenum+gl_COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE+gl_COLOR_BUFFER_BIT7_QCOM :: GLenum+gl_COLOR_BUFFER_BIT7_QCOM = 0x00000080+gl_PATH_FILL_MODE_NV :: GLenum+gl_PATH_FILL_MODE_NV = 0x9080+gl_IMAGE_CUBE :: GLenum+gl_IMAGE_CUBE = 0x9050+gl_CON_5_ATI :: GLenum+gl_CON_5_ATI = 0x8946+gl_COLOR_ATTACHMENT2_EXT :: GLenum+gl_COLOR_ATTACHMENT2_EXT = 0x8CE2+gl_FAILURE_NV :: GLenum+gl_FAILURE_NV = 0x9030+gl_VERTEX_ARRAY_LIST_STRIDE_IBM :: GLenum+gl_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080+gl_MAX_SPARSE_TEXTURE_SIZE_ARB :: GLenum+gl_MAX_SPARSE_TEXTURE_SIZE_ARB = 0x9198+gl_VERSION_ES_CL_1_1 :: GLenum+gl_VERSION_ES_CL_1_1 = 1+gl_PERFMON_GLOBAL_MODE_QCOM :: GLenum+gl_PERFMON_GLOBAL_MODE_QCOM = 0x8FA0+gl_DEPTH_COMPONENT32F :: GLenum+gl_DEPTH_COMPONENT32F = 0x8CAC+gl_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT :: GLenum+gl_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = 0x9124+gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS :: GLenum+gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F+gl_IMAGE_2D_MULTISAMPLE_EXT :: GLenum+gl_IMAGE_2D_MULTISAMPLE_EXT = 0x9055+gl_FRAMEBUFFER_OES :: GLenum+gl_FRAMEBUFFER_OES = 0x8D40+gl_TRANSPOSE_PROJECTION_MATRIX :: GLenum+gl_TRANSPOSE_PROJECTION_MATRIX = 0x84E4+gl_BUFFER_MAP_POINTER :: GLenum+gl_BUFFER_MAP_POINTER = 0x88BD+gl_INT_10_10_10_2_OES :: GLenum+gl_INT_10_10_10_2_OES = 0x8DF7+gl_PROGRAM_PIPELINE_OBJECT_EXT :: GLenum+gl_PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F+gl_GEOMETRY_SHADER_INVOCATIONS_EXT :: GLenum+gl_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x887F+gl_SPRITE_AXIS_SGIX :: GLenum+gl_SPRITE_AXIS_SGIX = 0x814A+gl_RED_INTEGER_EXT :: GLenum+gl_RED_INTEGER_EXT = 0x8D94+gl_COMPRESSED_RGBA_ASTC_10x6_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9+gl_TEXTURE_COORD_ARRAY_COUNT_EXT :: GLenum+gl_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B+gl_SIGNED_RGB_NV :: GLenum+gl_SIGNED_RGB_NV = 0x86FE+gl_CW :: GLenum+gl_CW = 0x0900+gl_PACK_SUBSAMPLE_RATE_SGIX :: GLenum+gl_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0+gl_TEXTURE14_ARB :: GLenum+gl_TEXTURE14_ARB = 0x84CE+gl_OUTPUT_TEXTURE_COORD26_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7+gl_DRAW_BUFFER :: GLenum+gl_DRAW_BUFFER = 0x0C01+gl_PACK_ROW_BYTES_APPLE :: GLenum+gl_PACK_ROW_BYTES_APPLE = 0x8A15+gl_BLUE_INTEGER_EXT :: GLenum+gl_BLUE_INTEGER_EXT = 0x8D96+gl_STORAGE_CLIENT_APPLE :: GLenum+gl_STORAGE_CLIENT_APPLE = 0x85B4+gl_ALL_SHADER_BITS :: GLenum+gl_ALL_SHADER_BITS = 0xFFFFFFFF+gl_FOG_COORDINATE_ARRAY_POINTER :: GLenum+gl_FOG_COORDINATE_ARRAY_POINTER = 0x8456+gl_ACTIVE_PROGRAM :: GLenum+gl_ACTIVE_PROGRAM = 0x8259+gl_RGBA32F_ARB :: GLenum+gl_RGBA32F_ARB = 0x8814+gl_VERTEX_ATTRIB_ARRAY_INTEGER :: GLenum+gl_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD+gl_MAP2_VERTEX_ATTRIB13_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D+gl_SAMPLER_2D :: GLenum+gl_SAMPLER_2D = 0x8B5E+gl_QUERY :: GLenum+gl_QUERY = 0x82E3+gl_GEOMETRY_INPUT_TYPE_EXT :: GLenum+gl_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB+gl_RGB5_A1_OES :: GLenum+gl_RGB5_A1_OES = 0x8057+gl_MATRIX15_ARB :: GLenum+gl_MATRIX15_ARB = 0x88CF+gl_INT_IMAGE_CUBE_MAP_ARRAY :: GLenum+gl_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F+gl_STACK_OVERFLOW :: GLenum+gl_STACK_OVERFLOW = 0x0503+gl_NORMAL_ARRAY_LENGTH_NV :: GLenum+gl_NORMAL_ARRAY_LENGTH_NV = 0x8F2C+gl_RENDERBUFFER_BLUE_SIZE_EXT :: GLenum+gl_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52+gl_TEXTURE_INTENSITY_SIZE_EXT :: GLenum+gl_TEXTURE_INTENSITY_SIZE_EXT = 0x8061+gl_POINT_SIZE_MIN_SGIS :: GLenum+gl_POINT_SIZE_MIN_SGIS = 0x8126+gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW :: GLenum+gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D+gl_BEVEL_NV :: GLenum+gl_BEVEL_NV = 0x90A6+gl_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX :: GLenum+gl_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = 0x8311+gl_SIGNED_RGBA_NV :: GLenum+gl_SIGNED_RGBA_NV = 0x86FB+gl_COLOR_CLEAR_VALUE :: GLenum+gl_COLOR_CLEAR_VALUE = 0x0C22+gl_ARRAY_BUFFER :: GLenum+gl_ARRAY_BUFFER = 0x8892+gl_CLIP_PLANE2_IMG :: GLenum+gl_CLIP_PLANE2_IMG = 0x3002+gl_POLYGON_OFFSET_UNITS :: GLenum+gl_POLYGON_OFFSET_UNITS = 0x2A00+gl_COLOR_ARRAY_POINTER_EXT :: GLenum+gl_COLOR_ARRAY_POINTER_EXT = 0x8090+gl_POST_COLOR_MATRIX_COLOR_TABLE :: GLenum+gl_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2+gl_SHADOW_AMBIENT_SGIX :: GLenum+gl_SHADOW_AMBIENT_SGIX = 0x80BF+gl_SAMPLES :: GLenum+gl_SAMPLES = 0x80A9+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = 0x93E4+gl_MIRRORED_REPEAT_IBM :: GLenum+gl_MIRRORED_REPEAT_IBM = 0x8370+gl_TEXTURE_2D_MULTISAMPLE_ARRAY_OES :: GLenum+gl_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = 0x9102+gl_FRAMEBUFFER_DEFAULT_WIDTH :: GLenum+gl_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310+gl_TEXTURE_GEN_MODE_OES :: GLenum+gl_TEXTURE_GEN_MODE_OES = 0x2500+gl_BLEND_SRC_ALPHA_EXT :: GLenum+gl_BLEND_SRC_ALPHA_EXT = 0x80CB+gl_OUTPUT_COLOR0_EXT :: GLenum+gl_OUTPUT_COLOR0_EXT = 0x879B+gl_SLUMINANCE8_ALPHA8 :: GLenum+gl_SLUMINANCE8_ALPHA8 = 0x8C45+gl_SAMPLER_3D_ARB :: GLenum+gl_SAMPLER_3D_ARB = 0x8B5F+gl_UNSIGNED_INT_SAMPLER_3D :: GLenum+gl_UNSIGNED_INT_SAMPLER_3D = 0x8DD3+gl_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA+gl_PATH_FORMAT_SVG_NV :: GLenum+gl_PATH_FORMAT_SVG_NV = 0x9070+gl_MAP1_BINORMAL_EXT :: GLenum+gl_MAP1_BINORMAL_EXT = 0x8446+gl_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX :: GLenum+gl_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = 0x8188+gl_COLOR_ARRAY_BUFFER_BINDING :: GLenum+gl_COLOR_ARRAY_BUFFER_BINDING = 0x8898+gl_MATRIX_INDEX_ARRAY_TYPE_OES :: GLenum+gl_MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847+gl_PROJECTION_STACK_DEPTH :: GLenum+gl_PROJECTION_STACK_DEPTH = 0x0BA4+gl_AUTO_NORMAL :: GLenum+gl_AUTO_NORMAL = 0x0D80+gl_FRAGMENT_SHADER_ATI :: GLenum+gl_FRAGMENT_SHADER_ATI = 0x8920+gl_SAMPLE_BUFFERS_EXT :: GLenum+gl_SAMPLE_BUFFERS_EXT = 0x80A8+gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT :: GLenum+gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x906C+gl_UNSIGNED_INT_10_10_10_2 :: GLenum+gl_UNSIGNED_INT_10_10_10_2 = 0x8036+gl_COMPRESSED_RG11_EAC_OES :: GLenum+gl_COMPRESSED_RG11_EAC_OES = 0x9272+gl_LUMINANCE8I_EXT :: GLenum+gl_LUMINANCE8I_EXT = 0x8D92+gl_VERTEX_ATTRIB_ARRAY13_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY13_NV = 0x865D+gl_UNIFORM_BUFFER_SIZE :: GLenum+gl_UNIFORM_BUFFER_SIZE = 0x8A2A+gl_TEXTURE2_ARB :: GLenum+gl_TEXTURE2_ARB = 0x84C2+gl_COMPRESSED_RGBA_BPTC_UNORM_ARB :: GLenum+gl_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C+gl_POLYGON :: GLenum+gl_POLYGON = 0x0009+gl_CLIENT_MAPPED_BUFFER_BARRIER_BIT :: GLenum+gl_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000+gl_ELEMENT_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895+gl_SAMPLE_BUFFERS_ARB :: GLenum+gl_SAMPLE_BUFFERS_ARB = 0x80A8+gl_RGBA4_DXT5_S3TC :: GLenum+gl_RGBA4_DXT5_S3TC = 0x83A5+gl_STREAM_READ :: GLenum+gl_STREAM_READ = 0x88E1+gl_STATIC_READ :: GLenum+gl_STATIC_READ = 0x88E5+gl_MAX_FRAGMENT_ATOMIC_COUNTERS :: GLenum+gl_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6+gl_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT :: GLenum+gl_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72+gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST :: GLenum+gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD+gl_COUNT_DOWN_NV :: GLenum+gl_COUNT_DOWN_NV = 0x9089+gl_SLUMINANCE :: GLenum+gl_SLUMINANCE = 0x8C46+gl_INNOCENT_CONTEXT_RESET :: GLenum+gl_INNOCENT_CONTEXT_RESET = 0x8254+gl_DRAW_FRAMEBUFFER_BINDING_NV :: GLenum+gl_DRAW_FRAMEBUFFER_BINDING_NV = 0x8CA6+gl_VERTEX_STREAM3_ATI :: GLenum+gl_VERTEX_STREAM3_ATI = 0x876F+gl_TRIANGULAR_NV :: GLenum+gl_TRIANGULAR_NV = 0x90A5+gl_SAMPLER_2D_RECT_ARB :: GLenum+gl_SAMPLER_2D_RECT_ARB = 0x8B63+gl_POST_CONVOLUTION_GREEN_SCALE_EXT :: GLenum+gl_POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D+gl_SKIP_COMPONENTS2_NV :: GLenum+gl_SKIP_COMPONENTS2_NV = -5+gl_IMAGE_1D :: GLenum+gl_IMAGE_1D = 0x904C+gl_ATTRIB_ARRAY_TYPE_NV :: GLenum+gl_ATTRIB_ARRAY_TYPE_NV = 0x8625+gl_ORDER :: GLenum+gl_ORDER = 0x0A01+gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB :: GLenum+gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E+gl_RGB4_EXT :: GLenum+gl_RGB4_EXT = 0x804F+gl_COMPRESSED_TEXTURE_FORMATS_ARB :: GLenum+gl_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3+gl_STENCIL_INDEX16_EXT :: GLenum+gl_STENCIL_INDEX16_EXT = 0x8D49+gl_OP_RECIP_SQRT_EXT :: GLenum+gl_OP_RECIP_SQRT_EXT = 0x8795+gl_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS :: GLenum+gl_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1+gl_MAX_PROGRAM_TEXEL_OFFSET :: GLenum+gl_MAX_PROGRAM_TEXEL_OFFSET = 0x8905+gl_POST_TEXTURE_FILTER_BIAS_SGIX :: GLenum+gl_POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179+gl_RGB32F_EXT :: GLenum+gl_RGB32F_EXT = 0x8815+gl_SURFACE_REGISTERED_NV :: GLenum+gl_SURFACE_REGISTERED_NV = 0x86FD+gl_RGBA_FLOAT16_APPLE :: GLenum+gl_RGBA_FLOAT16_APPLE = 0x881A+gl_VIDEO_BUFFER_BINDING_NV :: GLenum+gl_VIDEO_BUFFER_BINDING_NV = 0x9021+gl_PRIMITIVE_RESTART_INDEX :: GLenum+gl_PRIMITIVE_RESTART_INDEX = 0x8F9E+gl_DOT3_RGB_ARB :: GLenum+gl_DOT3_RGB_ARB = 0x86AE+gl_INT64_VEC4_NV :: GLenum+gl_INT64_VEC4_NV = 0x8FEB+gl_DRAW_BUFFER12_ATI :: GLenum+gl_DRAW_BUFFER12_ATI = 0x8831+gl_RESAMPLE_REPLICATE_SGIX :: GLenum+gl_RESAMPLE_REPLICATE_SGIX = 0x842E+gl_ALPHA :: GLenum+gl_ALPHA = 0x1906+gl_MATRIX22_ARB :: GLenum+gl_MATRIX22_ARB = 0x88D6+gl_DEPTH_TEST :: GLenum+gl_DEPTH_TEST = 0x0B71+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5+gl_BLEND_SRC_ALPHA :: GLenum+gl_BLEND_SRC_ALPHA = 0x80CB+gl_MIRROR_CLAMP_ATI :: GLenum+gl_MIRROR_CLAMP_ATI = 0x8742+gl_COMBINER3_NV :: GLenum+gl_COMBINER3_NV = 0x8553+gl_TEXTURE_BINDING_1D_ARRAY_EXT :: GLenum+gl_TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C+gl_MIRROR_CLAMP_TO_BORDER_EXT :: GLenum+gl_MIRROR_CLAMP_TO_BORDER_EXT = 0x8912+gl_MAP1_INDEX :: GLenum+gl_MAP1_INDEX = 0x0D91+gl_VIEW_CLASS_BPTC_FLOAT :: GLenum+gl_VIEW_CLASS_BPTC_FLOAT = 0x82D3+gl_TRANSPOSE_AFFINE_2D_NV :: GLenum+gl_TRANSPOSE_AFFINE_2D_NV = 0x9096+gl_IMAGE_CLASS_2_X_8 :: GLenum+gl_IMAGE_CLASS_2_X_8 = 0x82C0+gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB :: GLenum+gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808+gl_EYE_POINT_SGIS :: GLenum+gl_EYE_POINT_SGIS = 0x81F4+gl_TEXTURE_DEPTH_SIZE_ARB :: GLenum+gl_TEXTURE_DEPTH_SIZE_ARB = 0x884A+gl_GLYPH_HAS_KERNING_BIT_NV :: GLenum+gl_GLYPH_HAS_KERNING_BIT_NV = 0x100+gl_ACTIVE_SUBROUTINES :: GLenum+gl_ACTIVE_SUBROUTINES = 0x8DE5+gl_MVP_MATRIX_EXT :: GLenum+gl_MVP_MATRIX_EXT = 0x87E3+gl_READ_FRAMEBUFFER_BINDING :: GLenum+gl_READ_FRAMEBUFFER_BINDING = 0x8CAA+gl_GUILTY_CONTEXT_RESET_EXT :: GLenum+gl_GUILTY_CONTEXT_RESET_EXT = 0x8253+gl_ALPHA16UI_EXT :: GLenum+gl_ALPHA16UI_EXT = 0x8D78+gl_TEXTURE_SWIZZLE_B_EXT :: GLenum+gl_TEXTURE_SWIZZLE_B_EXT = 0x8E44+gl_RGB16I_EXT :: GLenum+gl_RGB16I_EXT = 0x8D89+gl_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B+gl_VERTEX_WEIGHT_ARRAY_EXT :: GLenum+gl_VERTEX_WEIGHT_ARRAY_EXT = 0x850C+gl_SWIZZLE_STR_DR_ATI :: GLenum+gl_SWIZZLE_STR_DR_ATI = 0x8978+gl_READ_FRAMEBUFFER :: GLenum+gl_READ_FRAMEBUFFER = 0x8CA8+gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI :: GLenum+gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5+gl_COORD_REPLACE_NV :: GLenum+gl_COORD_REPLACE_NV = 0x8862+gl_MAX_CLIP_PLANES :: GLenum+gl_MAX_CLIP_PLANES = 0x0D32+gl_DRAW_BUFFER0 :: GLenum+gl_DRAW_BUFFER0 = 0x8825+gl_SPRITE_OBJECT_ALIGNED_SGIX :: GLenum+gl_SPRITE_OBJECT_ALIGNED_SGIX = 0x814D+gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX :: GLenum+gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B+gl_CONSERVE_MEMORY_HINT_PGI :: GLenum+gl_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD+gl_GET_TEXTURE_IMAGE_FORMAT :: GLenum+gl_GET_TEXTURE_IMAGE_FORMAT = 0x8291+gl_MOVE_TO_RESETS_NV :: GLenum+gl_MOVE_TO_RESETS_NV = 0x90B5+gl_SHADER_CONSISTENT_NV :: GLenum+gl_SHADER_CONSISTENT_NV = 0x86DD+gl_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516+gl_PACK_ALIGNMENT :: GLenum+gl_PACK_ALIGNMENT = 0x0D05+gl_HISTOGRAM_ALPHA_SIZE :: GLenum+gl_HISTOGRAM_ALPHA_SIZE = 0x802B+gl_SHARED_TEXTURE_PALETTE_EXT :: GLenum+gl_SHARED_TEXTURE_PALETTE_EXT = 0x81FB+gl_MODELVIEW0_MATRIX_EXT :: GLenum+gl_MODELVIEW0_MATRIX_EXT = 0x0BA6+gl_MAX_NAME_LENGTH :: GLenum+gl_MAX_NAME_LENGTH = 0x92F6+gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY :: GLenum+gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105+gl_IMAGE_2D :: GLenum+gl_IMAGE_2D = 0x904D+gl_QUERY_BUFFER_AMD :: GLenum+gl_QUERY_BUFFER_AMD = 0x9192+gl_BUMP_ENVMAP_ATI :: GLenum+gl_BUMP_ENVMAP_ATI = 0x877B+gl_POINTS :: GLenum+gl_POINTS = 0x0000+gl_ARRAY_SIZE :: GLenum+gl_ARRAY_SIZE = 0x92FB+gl_MAX_CLIP_PLANES_IMG :: GLenum+gl_MAX_CLIP_PLANES_IMG = 0x0D32+gl_TRIANGLE_STRIP_ADJACENCY_EXT :: GLenum+gl_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D+gl_VERTEX_STREAM6_ATI :: GLenum+gl_VERTEX_STREAM6_ATI = 0x8772+gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR :: GLenum+gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E+gl_TEXTURE22 :: GLenum+gl_TEXTURE22 = 0x84D6+gl_CURRENT_FOG_COORDINATE :: GLenum+gl_CURRENT_FOG_COORDINATE = 0x8453+gl_CON_27_ATI :: GLenum+gl_CON_27_ATI = 0x895C+gl_MAX_VERTEX_UNITS_OES :: GLenum+gl_MAX_VERTEX_UNITS_OES = 0x86A4+gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT :: GLenum+gl_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF+gl_SIGNED_INTENSITY8_NV :: GLenum+gl_SIGNED_INTENSITY8_NV = 0x8708+gl_MAX_EVAL_ORDER :: GLenum+gl_MAX_EVAL_ORDER = 0x0D30+gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518+gl_DYNAMIC_READ_ARB :: GLenum+gl_DYNAMIC_READ_ARB = 0x88E9+gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV :: GLenum+gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D+gl_FLOAT16_NV :: GLenum+gl_FLOAT16_NV = 0x8FF8+gl_COMPUTE_SHADER_INVOCATIONS_ARB :: GLenum+gl_COMPUTE_SHADER_INVOCATIONS_ARB = 0x82F5+gl_VERTEX_SHADER_OPTIMIZED_EXT :: GLenum+gl_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4+gl_TEXTURE_LOD_BIAS_EXT :: GLenum+gl_TEXTURE_LOD_BIAS_EXT = 0x8501+gl_INT8_VEC3_NV :: GLenum+gl_INT8_VEC3_NV = 0x8FE2+gl_4PASS_0_SGIS :: GLenum+gl_4PASS_0_SGIS = 0x80A4+gl_HISTOGRAM_EXT :: GLenum+gl_HISTOGRAM_EXT = 0x8024+gl_ALLOW_DRAW_WIN_HINT_PGI :: GLenum+gl_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F+gl_TEXTURE_GREEN_SIZE_EXT :: GLenum+gl_TEXTURE_GREEN_SIZE_EXT = 0x805D+gl_R32I :: GLenum+gl_R32I = 0x8235+gl_REG_22_ATI :: GLenum+gl_REG_22_ATI = 0x8937+gl_UNSIGNED_INT_ATOMIC_COUNTER :: GLenum+gl_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB+gl_COLOR_ATTACHMENT2 :: GLenum+gl_COLOR_ATTACHMENT2 = 0x8CE2+gl_INTENSITY8 :: GLenum+gl_INTENSITY8 = 0x804B+gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS :: GLenum+gl_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7+gl_FOG_DENSITY :: GLenum+gl_FOG_DENSITY = 0x0B62+gl_RENDERBUFFER_HEIGHT_EXT :: GLenum+gl_RENDERBUFFER_HEIGHT_EXT = 0x8D43+gl_Z_EXT :: GLenum+gl_Z_EXT = 0x87D7+gl_TEXTURE_FETCH_BARRIER_BIT :: GLenum+gl_TEXTURE_FETCH_BARRIER_BIT = 0x00000008+gl_PROGRAM_BINARY_FORMATS :: GLenum+gl_PROGRAM_BINARY_FORMATS = 0x87FF+gl_UNSIGNED_INT_IMAGE_BUFFER :: GLenum+gl_UNSIGNED_INT_IMAGE_BUFFER = 0x9067+gl_OPERAND0_RGB :: GLenum+gl_OPERAND0_RGB = 0x8590+gl_COVERAGE_COMPONENT_NV :: GLenum+gl_COVERAGE_COMPONENT_NV = 0x8ED0+gl_NEGATE_BIT_ATI :: GLenum+gl_NEGATE_BIT_ATI = 0x00000004+gl_DEBUG_TYPE_PUSH_GROUP :: GLenum+gl_DEBUG_TYPE_PUSH_GROUP = 0x8269+gl_SELECT :: GLenum+gl_SELECT = 0x1C02+gl_IMAGE_BINDING_ACCESS_EXT :: GLenum+gl_IMAGE_BINDING_ACCESS_EXT = 0x8F3E+gl_TEXTURE_GEN_STR_OES :: GLenum+gl_TEXTURE_GEN_STR_OES = 0x8D60+gl_OCCLUSION_TEST_HP :: GLenum+gl_OCCLUSION_TEST_HP = 0x8165+gl_BLEND_DST_RGB_OES :: GLenum+gl_BLEND_DST_RGB_OES = 0x80C8+gl_IMAGE_BINDING_NAME :: GLenum+gl_IMAGE_BINDING_NAME = 0x8F3A+gl_DUAL_LUMINANCE_ALPHA8_SGIS :: GLenum+gl_DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D+gl_POLYGON_BIT :: GLenum+gl_POLYGON_BIT = 0x00000008+gl_POST_COLOR_MATRIX_GREEN_BIAS_SGI :: GLenum+gl_POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9+gl_COLOR_ATTACHMENT8_EXT :: GLenum+gl_COLOR_ATTACHMENT8_EXT = 0x8CE8+gl_BLUE_BIAS :: GLenum+gl_BLUE_BIAS = 0x0D1B+gl_EMISSION :: GLenum+gl_EMISSION = 0x1600+gl_DEPTH_ATTACHMENT_OES :: GLenum+gl_DEPTH_ATTACHMENT_OES = 0x8D00+gl_POLYGON_OFFSET_FACTOR_EXT :: GLenum+gl_POLYGON_OFFSET_FACTOR_EXT = 0x8038+gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT :: GLenum+gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4+gl_TEXTURE_MATERIAL_FACE_EXT :: GLenum+gl_TEXTURE_MATERIAL_FACE_EXT = 0x8351+gl_PN_TRIANGLES_POINT_MODE_CUBIC_ATI :: GLenum+gl_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6+gl_DRAW_FRAMEBUFFER_ANGLE :: GLenum+gl_DRAW_FRAMEBUFFER_ANGLE = 0x8CA9+gl_DEPTH_BUFFER_BIT3_QCOM :: GLenum+gl_DEPTH_BUFFER_BIT3_QCOM = 0x00000800+gl_DISTANCE_ATTENUATION_EXT :: GLenum+gl_DISTANCE_ATTENUATION_EXT = 0x8129+gl_TRACE_ARRAYS_BIT_MESA :: GLenum+gl_TRACE_ARRAYS_BIT_MESA = 0x0004+gl_MOVE_TO_NV :: GLenum+gl_MOVE_TO_NV = 0x02+gl_2PASS_1_SGIS :: GLenum+gl_2PASS_1_SGIS = 0x80A3+gl_DUAL_LUMINANCE4_SGIS :: GLenum+gl_DUAL_LUMINANCE4_SGIS = 0x8114+gl_PRIMITIVES_SUBMITTED_ARB :: GLenum+gl_PRIMITIVES_SUBMITTED_ARB = 0x82EF+gl_TOP_LEVEL_ARRAY_STRIDE :: GLenum+gl_TOP_LEVEL_ARRAY_STRIDE = 0x930D+gl_NORMAL_ARRAY_STRIDE :: GLenum+gl_NORMAL_ARRAY_STRIDE = 0x807F+gl_TEXTURE_2D_ARRAY_EXT :: GLenum+gl_TEXTURE_2D_ARRAY_EXT = 0x8C1A+gl_UNPACK_COMPRESSED_BLOCK_WIDTH :: GLenum+gl_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127+gl_TEXTURE_FIXED_SAMPLE_LOCATIONS :: GLenum+gl_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107+gl_YCRCBA_SGIX :: GLenum+gl_YCRCBA_SGIX = 0x8319+gl_LOCATION_COMPONENT :: GLenum+gl_LOCATION_COMPONENT = 0x934A+gl_TEXTURE27 :: GLenum+gl_TEXTURE27 = 0x84DB+gl_CONTEXT_FLAG_DEBUG_BIT_KHR :: GLenum+gl_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002+gl_FOG_COORDINATE_EXT :: GLenum+gl_FOG_COORDINATE_EXT = 0x8451+gl_DEBUG_CALLBACK_USER_PARAM_KHR :: GLenum+gl_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245+gl_MIRRORED_REPEAT_OES :: GLenum+gl_MIRRORED_REPEAT_OES = 0x8370+gl_SYNC_GPU_COMMANDS_COMPLETE :: GLenum+gl_SYNC_GPU_COMMANDS_COMPLETE = 0x9117+gl_SLUMINANCE8_ALPHA8_EXT :: GLenum+gl_SLUMINANCE8_ALPHA8_EXT = 0x8C45+gl_TEXTURE_BUFFER_OFFSET :: GLenum+gl_TEXTURE_BUFFER_OFFSET = 0x919D+gl_PROXY_COLOR_TABLE :: GLenum+gl_PROXY_COLOR_TABLE = 0x80D3+gl_FIXED :: GLenum+gl_FIXED = 0x140C+gl_SRGB8 :: GLenum+gl_SRGB8 = 0x8C41+gl_COMPRESSED_RGBA :: GLenum+gl_COMPRESSED_RGBA = 0x84EE+gl_IMAGE_BINDING_FORMAT :: GLenum+gl_IMAGE_BINDING_FORMAT = 0x906E+gl_MAX_RENDERBUFFER_SIZE_OES :: GLenum+gl_MAX_RENDERBUFFER_SIZE_OES = 0x84E8+gl_DEBUG_SOURCE_API :: GLenum+gl_DEBUG_SOURCE_API = 0x8246+gl_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH :: GLenum+gl_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49+gl_CLIP_PLANE3_IMG :: GLenum+gl_CLIP_PLANE3_IMG = 0x3003+gl_TEXTURE16 :: GLenum+gl_TEXTURE16 = 0x84D0+gl_FRAGMENTS_INSTRUMENT_SGIX :: GLenum+gl_FRAGMENTS_INSTRUMENT_SGIX = 0x8313+gl_MATRIX8_ARB :: GLenum+gl_MATRIX8_ARB = 0x88C8+gl_DOUBLE_MAT2x4 :: GLenum+gl_DOUBLE_MAT2x4 = 0x8F4A+gl_DRAW_BUFFER9_ATI :: GLenum+gl_DRAW_BUFFER9_ATI = 0x882E+gl_CURRENT_TEXTURE_COORDS :: GLenum+gl_CURRENT_TEXTURE_COORDS = 0x0B03+gl_DOT_PRODUCT_TEXTURE_3D_NV :: GLenum+gl_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF+gl_SECONDARY_COLOR_ARRAY_STRIDE_EXT :: GLenum+gl_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C+gl_UNSIGNED_INT_IMAGE_2D_ARRAY :: GLenum+gl_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069+gl_FRAMEBUFFER_BARRIER_BIT :: GLenum+gl_FRAMEBUFFER_BARRIER_BIT = 0x00000400+gl_MAX_SAMPLES_IMG :: GLenum+gl_MAX_SAMPLES_IMG = 0x9135+gl_TESS_CONTROL_SHADER_BIT_EXT :: GLenum+gl_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008+gl_PROGRAM_NATIVE_TEMPORARIES_ARB :: GLenum+gl_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6+gl_COMPRESSED_RGB_PVRTC_4BPPV1_IMG :: GLenum+gl_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00+gl_VERTEX_PROGRAM_ARB :: GLenum+gl_VERTEX_PROGRAM_ARB = 0x8620+gl_MAP2_BINORMAL_EXT :: GLenum+gl_MAP2_BINORMAL_EXT = 0x8447+gl_ETC1_RGB8_OES :: GLenum+gl_ETC1_RGB8_OES = 0x8D64+gl_PROGRAM_MATRIX_STACK_DEPTH_EXT :: GLenum+gl_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F+gl_TEXTURE_USAGE_ANGLE :: GLenum+gl_TEXTURE_USAGE_ANGLE = 0x93A2+gl_TEXTURE_MATRIX :: GLenum+gl_TEXTURE_MATRIX = 0x0BA8+gl_INT_SAMPLER_CUBE_MAP_ARRAY_EXT :: GLenum+gl_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900E+gl_INDEX_ARRAY_STRIDE :: GLenum+gl_INDEX_ARRAY_STRIDE = 0x8086+gl_POST_COLOR_MATRIX_BLUE_SCALE :: GLenum+gl_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6+gl_TESS_CONTROL_OUTPUT_VERTICES :: GLenum+gl_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75+gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET :: GLenum+gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E+gl_COMPRESSED_RGBA_ASTC_6x6_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4+gl_INTERNALFORMAT_SHARED_SIZE :: GLenum+gl_INTERNALFORMAT_SHARED_SIZE = 0x8277+gl_SOURCE1_RGB_EXT :: GLenum+gl_SOURCE1_RGB_EXT = 0x8581+gl_STENCIL_PASS_DEPTH_FAIL :: GLenum+gl_STENCIL_PASS_DEPTH_FAIL = 0x0B95+gl_MATRIX_PALETTE_OES :: GLenum+gl_MATRIX_PALETTE_OES = 0x8840+gl_MIN_FRAGMENT_INTERPOLATION_OFFSET :: GLenum+gl_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B+gl_DOT3_RGBA_EXT :: GLenum+gl_DOT3_RGBA_EXT = 0x8741+gl_CLIP_VOLUME_CLIPPING_HINT_EXT :: GLenum+gl_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0+gl_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV :: GLenum+gl_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80+gl_FONT_X_MIN_BOUNDS_BIT_NV :: GLenum+gl_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000+gl_WRAP_BORDER_SUN :: GLenum+gl_WRAP_BORDER_SUN = 0x81D4+gl_MAP_INVALIDATE_RANGE_BIT :: GLenum+gl_MAP_INVALIDATE_RANGE_BIT = 0x0004+gl_PATH_MODELVIEW_NV :: GLenum+gl_PATH_MODELVIEW_NV = 0x1700+gl_TESS_CONTROL_SHADER :: GLenum+gl_TESS_CONTROL_SHADER = 0x8E88+gl_VERTEX_STREAM1_ATI :: GLenum+gl_VERTEX_STREAM1_ATI = 0x876D+gl_R3_G3_B2 :: GLenum+gl_R3_G3_B2 = 0x2A10+gl_LARGE_CW_ARC_TO_NV :: GLenum+gl_LARGE_CW_ARC_TO_NV = 0x18+gl_PRIMITIVE_BOUNDING_BOX_EXT :: GLenum+gl_PRIMITIVE_BOUNDING_BOX_EXT = 0x92BE+gl_ALPHA_BIAS :: GLenum+gl_ALPHA_BIAS = 0x0D1D+gl_DST_IN_NV :: GLenum+gl_DST_IN_NV = 0x928B+gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT :: GLenum+gl_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3+gl_NUM_FILL_STREAMS_NV :: GLenum+gl_NUM_FILL_STREAMS_NV = 0x8E29+gl_ATTRIB_ARRAY_POINTER_NV :: GLenum+gl_ATTRIB_ARRAY_POINTER_NV = 0x8645+gl_SOURCE0_RGB_ARB :: GLenum+gl_SOURCE0_RGB_ARB = 0x8580+gl_MAX_PROGRAM_TEXEL_OFFSET_EXT :: GLenum+gl_MAX_PROGRAM_TEXEL_OFFSET_EXT = 0x8905+gl_MATRIX27_ARB :: GLenum+gl_MATRIX27_ARB = 0x88DB+gl_R11F_G11F_B10F :: GLenum+gl_R11F_G11F_B10F = 0x8C3A+gl_ATOMIC_COUNTER_BUFFER_INDEX :: GLenum+gl_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301+gl_TEXTURE_SWIZZLE_R_EXT :: GLenum+gl_TEXTURE_SWIZZLE_R_EXT = 0x8E42+gl_MAX_ASYNC_READ_PIXELS_SGIX :: GLenum+gl_MAX_ASYNC_READ_PIXELS_SGIX = 0x8361+gl_ACTIVE_TEXTURE_ARB :: GLenum+gl_ACTIVE_TEXTURE_ARB = 0x84E0+gl_VERTEX_SHADER_LOCAL_CONSTANTS_EXT :: GLenum+gl_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2+gl_REFERENCE_PLANE_SGIX :: GLenum+gl_REFERENCE_PLANE_SGIX = 0x817D+gl_UNPACK_CLIENT_STORAGE_APPLE :: GLenum+gl_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2+gl_SKIP_DECODE_EXT :: GLenum+gl_SKIP_DECODE_EXT = 0x8A4A+gl_MAP2_VERTEX_ATTRIB10_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A+gl_ALIASED_POINT_SIZE_RANGE :: GLenum+gl_ALIASED_POINT_SIZE_RANGE = 0x846D+gl_MATRIX1_NV :: GLenum+gl_MATRIX1_NV = 0x8631+gl_CCW :: GLenum+gl_CCW = 0x0901+gl_SIGNED_RGB_UNSIGNED_ALPHA_NV :: GLenum+gl_SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C+gl_TEXTURE_BUFFER_BINDING_EXT :: GLenum+gl_TEXTURE_BUFFER_BINDING_EXT = 0x8C2A+gl_LINEAR_ATTENUATION :: GLenum+gl_LINEAR_ATTENUATION = 0x1208+gl_FACTOR_MIN_AMD :: GLenum+gl_FACTOR_MIN_AMD = 0x901C+gl_POINT_SPRITE_NV :: GLenum+gl_POINT_SPRITE_NV = 0x8861+gl_IMAGE_FORMAT_COMPATIBILITY_TYPE :: GLenum+gl_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7+gl_QUERY_DEPTH_FAIL_EVENT_BIT_AMD :: GLenum+gl_QUERY_DEPTH_FAIL_EVENT_BIT_AMD = 0x00000002+gl_MAP2_VERTEX_ATTRIB4_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674+gl_PATCHES_EXT :: GLenum+gl_PATCHES_EXT = 0x000E+gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS :: GLenum+gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A+gl_OUTPUT_TEXTURE_COORD14_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB+gl_V3F :: GLenum+gl_V3F = 0x2A21+gl_4PASS_2_EXT :: GLenum+gl_4PASS_2_EXT = 0x80A6+gl_SAMPLES_3DFX :: GLenum+gl_SAMPLES_3DFX = 0x86B4+gl_MINOR_VERSION :: GLenum+gl_MINOR_VERSION = 0x821C+gl_MAX_DEBUG_LOGGED_MESSAGES_ARB :: GLenum+gl_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144+gl_FUNC_REVERSE_SUBTRACT :: GLenum+gl_FUNC_REVERSE_SUBTRACT = 0x800B+gl_LAYOUT_LINEAR_CPU_CACHED_INTEL :: GLenum+gl_LAYOUT_LINEAR_CPU_CACHED_INTEL = 2+gl_MULTISAMPLE_BUFFER_BIT1_QCOM :: GLenum+gl_MULTISAMPLE_BUFFER_BIT1_QCOM = 0x02000000+gl_SIGNED_RGB8_UNSIGNED_ALPHA8_NV :: GLenum+gl_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D+gl_PATH_COVER_DEPTH_FUNC_NV :: GLenum+gl_PATH_COVER_DEPTH_FUNC_NV = 0x90BF+gl_MAX_FRAGMENT_IMAGE_UNIFORMS :: GLenum+gl_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE+gl_PROXY_TEXTURE_COLOR_TABLE_SGI :: GLenum+gl_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD+gl_PIXEL_MAP_I_TO_A_SIZE :: GLenum+gl_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5+gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX :: GLenum+gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0+gl_FRAME_NV :: GLenum+gl_FRAME_NV = 0x8E26+gl_FLOAT_R_NV :: GLenum+gl_FLOAT_R_NV = 0x8880+gl_REFLECTION_MAP_EXT :: GLenum+gl_REFLECTION_MAP_EXT = 0x8512+gl_RG_SNORM :: GLenum+gl_RG_SNORM = 0x8F91+gl_REPLACE_MIDDLE_SUN :: GLenum+gl_REPLACE_MIDDLE_SUN = 0x0002+gl_COMBINER_MAPPING_NV :: GLenum+gl_COMBINER_MAPPING_NV = 0x8543+gl_ELEMENT_ARRAY_BUFFER_ARB :: GLenum+gl_ELEMENT_ARRAY_BUFFER_ARB = 0x8893+gl_SECONDARY_COLOR_ARRAY_LENGTH_NV :: GLenum+gl_SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31+gl_INTERPOLATE_ARB :: GLenum+gl_INTERPOLATE_ARB = 0x8575+gl_POSITION :: GLenum+gl_POSITION = 0x1203+gl_PIXEL_MAP_S_TO_S :: GLenum+gl_PIXEL_MAP_S_TO_S = 0x0C71+gl_READ_ONLY_ARB :: GLenum+gl_READ_ONLY_ARB = 0x88B8+gl_INVALID_FRAMEBUFFER_OPERATION_OES :: GLenum+gl_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506+gl_3DC_X_AMD :: GLenum+gl_3DC_X_AMD = 0x87F9+gl_FRAGMENT_LIGHT2_SGIX :: GLenum+gl_FRAGMENT_LIGHT2_SGIX = 0x840E+gl_IMAGE_SCALE_Y_HP :: GLenum+gl_IMAGE_SCALE_Y_HP = 0x8156+gl_READ_FRAMEBUFFER_APPLE :: GLenum+gl_READ_FRAMEBUFFER_APPLE = 0x8CA8+gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES :: GLenum+gl_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6+gl_INDEX_MATERIAL_PARAMETER_EXT :: GLenum+gl_INDEX_MATERIAL_PARAMETER_EXT = 0x81B9+gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH :: GLenum+gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76+gl_CUBIC_CURVE_TO_NV :: GLenum+gl_CUBIC_CURVE_TO_NV = 0x0C+gl_QUAD_ALPHA4_SGIS :: GLenum+gl_QUAD_ALPHA4_SGIS = 0x811E+gl_FORCE_BLUE_TO_ONE_NV :: GLenum+gl_FORCE_BLUE_TO_ONE_NV = 0x8860+gl_DOT_PRODUCT_DEPTH_REPLACE_NV :: GLenum+gl_DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED+gl_MAX_VERTEX_OUTPUT_COMPONENTS :: GLenum+gl_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122+gl_COMPRESSED_RGBA_ASTC_4x4x3_OES :: GLenum+gl_COMPRESSED_RGBA_ASTC_4x4x3_OES = 0x93C2+gl_COLOR_INDEX1_EXT :: GLenum+gl_COLOR_INDEX1_EXT = 0x80E2+gl_RELATIVE_CUBIC_CURVE_TO_NV :: GLenum+gl_RELATIVE_CUBIC_CURVE_TO_NV = 0x0D+gl_NOR :: GLenum+gl_NOR = 0x1508+gl_CLIPPING_OUTPUT_PRIMITIVES_ARB :: GLenum+gl_CLIPPING_OUTPUT_PRIMITIVES_ARB = 0x82F7+gl_VERTEX_ATTRIB_ARRAY12_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY12_NV = 0x865C+gl_LINE_BIT :: GLenum+gl_LINE_BIT = 0x00000004+gl_FOG_COORDINATE_ARRAY_STRIDE :: GLenum+gl_FOG_COORDINATE_ARRAY_STRIDE = 0x8455+gl_DUP_FIRST_CUBIC_CURVE_TO_NV :: GLenum+gl_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2+gl_FRAMEBUFFER_INCOMPLETE_FORMATS_OES :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA+gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS :: GLenum+gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E+gl_PATH_MAX_MODELVIEW_STACK_DEPTH_NV :: GLenum+gl_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = 0x0D36+gl_FRAGMENT_LIGHT1_SGIX :: GLenum+gl_FRAGMENT_LIGHT1_SGIX = 0x840D+gl_PALETTE8_R5_G6_B5_OES :: GLenum+gl_PALETTE8_R5_G6_B5_OES = 0x8B97+gl_DUAL_INTENSITY4_SGIS :: GLenum+gl_DUAL_INTENSITY4_SGIS = 0x8118+gl_TEXTURE_RANGE_LENGTH_APPLE :: GLenum+gl_TEXTURE_RANGE_LENGTH_APPLE = 0x85B7+gl_TEXTURE_RECTANGLE_ARB :: GLenum+gl_TEXTURE_RECTANGLE_ARB = 0x84F5+gl_LUMINANCE16F_EXT :: GLenum+gl_LUMINANCE16F_EXT = 0x881E+gl_DEPTH_COMPONENT16_ARB :: GLenum+gl_DEPTH_COMPONENT16_ARB = 0x81A5+gl_BUMP_TARGET_ATI :: GLenum+gl_BUMP_TARGET_ATI = 0x877C+gl_MAX_CUBE_MAP_TEXTURE_SIZE_ARB :: GLenum+gl_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C+gl_DOUBLE_MAT3_EXT :: GLenum+gl_DOUBLE_MAT3_EXT = 0x8F47+gl_QUERY_BY_REGION_NO_WAIT_INVERTED :: GLenum+gl_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A+gl_MAX_PROGRAM_TEX_INDIRECTIONS_ARB :: GLenum+gl_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D+gl_QUADS :: GLenum+gl_QUADS = 0x0007+gl_ALPHA_INTEGER_EXT :: GLenum+gl_ALPHA_INTEGER_EXT = 0x8D97+gl_VERTEX_SHADER_BIT_EXT :: GLenum+gl_VERTEX_SHADER_BIT_EXT = 0x00000001+gl_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX :: GLenum+gl_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175+gl_COLOR_MATERIAL_FACE :: GLenum+gl_COLOR_MATERIAL_FACE = 0x0B55+gl_LIGHT_MODEL_TWO_SIDE :: GLenum+gl_LIGHT_MODEL_TWO_SIDE = 0x0B52+gl_INTERLEAVED_ATTRIBS :: GLenum+gl_INTERLEAVED_ATTRIBS = 0x8C8C+gl_RGBA16I :: GLenum+gl_RGBA16I = 0x8D88+gl_VERTEX_ATTRIB_ARRAY_TYPE_ARB :: GLenum+gl_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625+gl_DEBUG_SEVERITY_LOW_AMD :: GLenum+gl_DEBUG_SEVERITY_LOW_AMD = 0x9148+gl_POINT_SPRITE_COORD_ORIGIN :: GLenum+gl_POINT_SPRITE_COORD_ORIGIN = 0x8CA0+gl_DRAW_BUFFER8 :: GLenum+gl_DRAW_BUFFER8 = 0x882D+gl_SPOT_DIRECTION :: GLenum+gl_SPOT_DIRECTION = 0x1204+gl_SAMPLE_COVERAGE_INVERT_ARB :: GLenum+gl_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB+gl_PERFQUERY_COUNTER_RAW_INTEL :: GLenum+gl_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4+gl_STRICT_SCISSOR_HINT_PGI :: GLenum+gl_STRICT_SCISSOR_HINT_PGI = 0x1A218+gl_LUMINANCE16_EXT :: GLenum+gl_LUMINANCE16_EXT = 0x8042+gl_UNPACK_ALIGNMENT :: GLenum+gl_UNPACK_ALIGNMENT = 0x0CF5+gl_BIAS_BIT_ATI :: GLenum+gl_BIAS_BIT_ATI = 0x00000008+gl_LARGE_CCW_ARC_TO_NV :: GLenum+gl_LARGE_CCW_ARC_TO_NV = 0x16+gl_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB :: GLenum+gl_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0+gl_FASTEST :: GLenum+gl_FASTEST = 0x1101+gl_LUMINANCE8_ALPHA8 :: GLenum+gl_LUMINANCE8_ALPHA8 = 0x8045+gl_CONVOLUTION_FILTER_BIAS_EXT :: GLenum+gl_CONVOLUTION_FILTER_BIAS_EXT = 0x8015+gl_VIEW_CLASS_S3TC_DXT5_RGBA :: GLenum+gl_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF+gl_DEPTH32F_STENCIL8_NV :: GLenum+gl_DEPTH32F_STENCIL8_NV = 0x8DAC+gl_TRACE_OPERATIONS_BIT_MESA :: GLenum+gl_TRACE_OPERATIONS_BIT_MESA = 0x0001+gl_QUERY_RESULT_EXT :: GLenum+gl_QUERY_RESULT_EXT = 0x8866+gl_TRANSFORM_FEEDBACK_BINDING_NV :: GLenum+gl_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25+gl_REG_10_ATI :: GLenum+gl_REG_10_ATI = 0x892B+gl_MATRIX16_ARB :: GLenum+gl_MATRIX16_ARB = 0x88D0+gl_FONT_HAS_KERNING_BIT_NV :: GLenum+gl_FONT_HAS_KERNING_BIT_NV = 0x10000000+gl_INNOCENT_CONTEXT_RESET_EXT :: GLenum+gl_INNOCENT_CONTEXT_RESET_EXT = 0x8254+gl_VIDEO_CAPTURE_FRAME_HEIGHT_NV :: GLenum+gl_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039+gl_NATIVE_GRAPHICS_END_HINT_PGI :: GLenum+gl_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204+gl_HISTOGRAM_LUMINANCE_SIZE_EXT :: GLenum+gl_HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C+gl_COMBINER0_NV :: GLenum+gl_COMBINER0_NV = 0x8550+gl_COORD_REPLACE_OES :: GLenum+gl_COORD_REPLACE_OES = 0x8862+gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT :: GLenum+gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80+gl_TIMESTAMP_EXT :: GLenum+gl_TIMESTAMP_EXT = 0x8E28+gl_MAX_IMAGE_UNITS_EXT :: GLenum+gl_MAX_IMAGE_UNITS_EXT = 0x8F38+gl_POINT_SIZE_MAX_ARB :: GLenum+gl_POINT_SIZE_MAX_ARB = 0x8127+gl_DEPTH_WRITEMASK :: GLenum+gl_DEPTH_WRITEMASK = 0x0B72+gl_FOG_COORDINATE_ARRAY_STRIDE_EXT :: GLenum+gl_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455+gl_BUMP_NUM_TEX_UNITS_ATI :: GLenum+gl_BUMP_NUM_TEX_UNITS_ATI = 0x8777+gl_INT_SAMPLER_1D_EXT :: GLenum+gl_INT_SAMPLER_1D_EXT = 0x8DC9+gl_INDEX_MODE :: GLenum+gl_INDEX_MODE = 0x0C30+gl_422_EXT :: GLenum+gl_422_EXT = 0x80CC+gl_ATOMIC_COUNTER_BUFFER_START :: GLenum+gl_ATOMIC_COUNTER_BUFFER_START = 0x92C2+gl_GPU_ADDRESS_NV :: GLenum+gl_GPU_ADDRESS_NV = 0x8F34+gl_REG_19_ATI :: GLenum+gl_REG_19_ATI = 0x8934+gl_IMAGE_BUFFER :: GLenum+gl_IMAGE_BUFFER = 0x9051+gl_HISTOGRAM_GREEN_SIZE :: GLenum+gl_HISTOGRAM_GREEN_SIZE = 0x8029+gl_VERTEX_ATTRIB_ARRAY_ADDRESS_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20+gl_INTENSITY8_SNORM :: GLenum+gl_INTENSITY8_SNORM = 0x9017+gl_DEBUG_TYPE_MARKER :: GLenum+gl_DEBUG_TYPE_MARKER = 0x8268+gl_VERTEX_PROGRAM_TWO_SIDE_ARB :: GLenum+gl_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643+gl_INDEX_MATERIAL_FACE_EXT :: GLenum+gl_INDEX_MATERIAL_FACE_EXT = 0x81BA+gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB :: GLenum+gl_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D+gl_CMYKA_EXT :: GLenum+gl_CMYKA_EXT = 0x800D+gl_MAP_ATTRIB_V_ORDER_NV :: GLenum+gl_MAP_ATTRIB_V_ORDER_NV = 0x86C4+gl_OFFSET_HILO_TEXTURE_2D_NV :: GLenum+gl_OFFSET_HILO_TEXTURE_2D_NV = 0x8854+gl_CALLIGRAPHIC_FRAGMENT_SGIX :: GLenum+gl_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183+gl_MAX_PROGRAM_PARAMETERS_ARB :: GLenum+gl_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9+gl_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV :: GLenum+gl_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F+gl_MAP_READ_BIT :: GLenum+gl_MAP_READ_BIT = 0x0001+gl_IMAGE_1D_EXT :: GLenum+gl_IMAGE_1D_EXT = 0x904C+gl_READ_BUFFER :: GLenum+gl_READ_BUFFER = 0x0C02+gl_POST_CONVOLUTION_RED_SCALE :: GLenum+gl_POST_CONVOLUTION_RED_SCALE = 0x801C+gl_MATRIX23_ARB :: GLenum+gl_MATRIX23_ARB = 0x88D7+gl_MAX_SAMPLES_NV :: GLenum+gl_MAX_SAMPLES_NV = 0x8D57+gl_RGB8_SNORM :: GLenum+gl_RGB8_SNORM = 0x8F96+gl_MATRIX5_NV :: GLenum+gl_MATRIX5_NV = 0x8635+gl_UNPACK_SWAP_BYTES :: GLenum+gl_UNPACK_SWAP_BYTES = 0x0CF0+gl_TABLE_TOO_LARGE :: GLenum+gl_TABLE_TOO_LARGE = 0x8031+gl_MIN_SAMPLE_SHADING_VALUE_OES :: GLenum+gl_MIN_SAMPLE_SHADING_VALUE_OES = 0x8C37+gl_SWIZZLE_STQ_DQ_ATI :: GLenum+gl_SWIZZLE_STQ_DQ_ATI = 0x8979+gl_BUFFER_IMMUTABLE_STORAGE :: GLenum+gl_BUFFER_IMMUTABLE_STORAGE = 0x821F+gl_ELEMENT_ARRAY_TYPE_APPLE :: GLenum+gl_ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D+gl_POST_COLOR_MATRIX_BLUE_BIAS_SGI :: GLenum+gl_POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA+gl_PARTIAL_SUCCESS_NV :: GLenum+gl_PARTIAL_SUCCESS_NV = 0x902E+gl_LOCAL_CONSTANT_EXT :: GLenum+gl_LOCAL_CONSTANT_EXT = 0x87C3+gl_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517+gl_GEOMETRY_DEFORMATION_SGIX :: GLenum+gl_GEOMETRY_DEFORMATION_SGIX = 0x8194+gl_SAMPLER_CUBE_MAP_ARRAY_EXT :: GLenum+gl_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900C+gl_STENCIL_BACK_PASS_DEPTH_PASS_ATI :: GLenum+gl_STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803+gl_DISJOINT_NV :: GLenum+gl_DISJOINT_NV = 0x9283+gl_FLOAT_MAT4x3 :: GLenum+gl_FLOAT_MAT4x3 = 0x8B6A+gl_TRANSFORM_FEEDBACK_PAUSED :: GLenum+gl_TRANSFORM_FEEDBACK_PAUSED = 0x8E23+gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION :: GLenum+gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C+gl_RG8_EXT :: GLenum+gl_RG8_EXT = 0x822B+gl_RECT_NV :: GLenum+gl_RECT_NV = 0xF6+gl_GEOMETRY_OUTPUT_TYPE_ARB :: GLenum+gl_GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC+gl_DEBUG_SOURCE_API_ARB :: GLenum+gl_DEBUG_SOURCE_API_ARB = 0x8246+gl_COLOR_ATTACHMENT15 :: GLenum+gl_COLOR_ATTACHMENT15 = 0x8CEF+gl_MAX_VARYING_FLOATS_ARB :: GLenum+gl_MAX_VARYING_FLOATS_ARB = 0x8B4B+gl_MAX_DRAW_BUFFERS_NV :: GLenum+gl_MAX_DRAW_BUFFERS_NV = 0x8824+gl_VERTEX_BLEND_ARB :: GLenum+gl_VERTEX_BLEND_ARB = 0x86A7+gl_DOUBLE_MAT2x3_EXT :: GLenum+gl_DOUBLE_MAT2x3_EXT = 0x8F49+gl_MAX_DEBUG_LOGGED_MESSAGES_AMD :: GLenum+gl_MAX_DEBUG_LOGGED_MESSAGES_AMD = 0x9144+gl_VERTICES_SUBMITTED_ARB :: GLenum+gl_VERTICES_SUBMITTED_ARB = 0x82EE+gl_UNSIGNED_SHORT_4_4_4_4_REV_IMG :: GLenum+gl_UNSIGNED_SHORT_4_4_4_4_REV_IMG = 0x8365+gl_STATE_RESTORE :: GLenum+gl_STATE_RESTORE = 0x8BDC+gl_MAX_COLOR_ATTACHMENTS_EXT :: GLenum+gl_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF+gl_INDEX_LOGIC_OP :: GLenum+gl_INDEX_LOGIC_OP = 0x0BF1+gl_PRIMITIVE_RESTART_NV :: GLenum+gl_PRIMITIVE_RESTART_NV = 0x8558+gl_FLOAT_MAT3x2_NV :: GLenum+gl_FLOAT_MAT3x2_NV = 0x8B67+gl_VERTEX_CONSISTENT_HINT_PGI :: GLenum+gl_VERTEX_CONSISTENT_HINT_PGI = 0x1A22B+gl_LUMINANCE_ALPHA16F_EXT :: GLenum+gl_LUMINANCE_ALPHA16F_EXT = 0x881F+gl_FLOAT_VEC2_ARB :: GLenum+gl_FLOAT_VEC2_ARB = 0x8B50+gl_TEXTURE_SWIZZLE_RGBA :: GLenum+gl_TEXTURE_SWIZZLE_RGBA = 0x8E46+gl_PROGRAM_SEPARABLE_EXT :: GLenum+gl_PROGRAM_SEPARABLE_EXT = 0x8258+gl_COMPRESSED_RGBA_ASTC_10x8_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA+gl_DEPTH_ATTACHMENT_EXT :: GLenum+gl_DEPTH_ATTACHMENT_EXT = 0x8D00+gl_FRAMEBUFFER_UNSUPPORTED_OES :: GLenum+gl_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD+gl_OPERAND1_ALPHA :: GLenum+gl_OPERAND1_ALPHA = 0x8599+gl_PIXEL_MAP_I_TO_B_SIZE :: GLenum+gl_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4+gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT :: GLenum+gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A+gl_EVAL_2D_NV :: GLenum+gl_EVAL_2D_NV = 0x86C0+gl_GREEN_MIN_CLAMP_INGR :: GLenum+gl_GREEN_MIN_CLAMP_INGR = 0x8561+gl_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS :: GLenum+gl_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0+gl_VERTEX_ARRAY_RANGE_NV :: GLenum+gl_VERTEX_ARRAY_RANGE_NV = 0x851D+gl_CONTEXT_LOST_WEBGL :: GLenum+gl_CONTEXT_LOST_WEBGL = 0x9242+gl_MAX_VERTEX_UNIFORM_BLOCKS :: GLenum+gl_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B+gl_VERTEX_ATTRIB_MAP2_COEFF_APPLE :: GLenum+gl_VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07+gl_TEXTURE_MAX_CLAMP_T_SGIX :: GLenum+gl_TEXTURE_MAX_CLAMP_T_SGIX = 0x836A+gl_LUMINANCE_SNORM :: GLenum+gl_LUMINANCE_SNORM = 0x9011+gl_PIXEL_UNPACK_BUFFER_BINDING :: GLenum+gl_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF+gl_RGBA8_SNORM :: GLenum+gl_RGBA8_SNORM = 0x8F97+gl_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX :: GLenum+gl_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX = 0x9048+gl_PIXEL_SUBSAMPLE_2424_SGIX :: GLenum+gl_PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3+gl_TEXTURE_GATHER_SHADOW :: GLenum+gl_TEXTURE_GATHER_SHADOW = 0x82A3+gl_VIEWPORT_INDEX_PROVOKING_VERTEX :: GLenum+gl_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F+gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT :: GLenum+gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB+gl_UNSIGNED_INT_IMAGE_CUBE :: GLenum+gl_UNSIGNED_INT_IMAGE_CUBE = 0x9066+gl_WEIGHT_ARRAY_POINTER_OES :: GLenum+gl_WEIGHT_ARRAY_POINTER_OES = 0x86AC+gl_ALL_ATTRIB_BITS :: GLenum+gl_ALL_ATTRIB_BITS = 0xFFFFFFFF+gl_PERFQUERY_COUNTER_TIMESTAMP_INTEL :: GLenum+gl_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5+gl_TESS_EVALUATION_SHADER_EXT :: GLenum+gl_TESS_EVALUATION_SHADER_EXT = 0x8E87+gl_BUFFER_OBJECT_EXT :: GLenum+gl_BUFFER_OBJECT_EXT = 0x9151+gl_TIMESTAMP :: GLenum+gl_TIMESTAMP = 0x8E28+gl_RGBA_INTEGER_EXT :: GLenum+gl_RGBA_INTEGER_EXT = 0x8D99+gl_RGB16UI :: GLenum+gl_RGB16UI = 0x8D77+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4+gl_SAMPLE_SHADING_OES :: GLenum+gl_SAMPLE_SHADING_OES = 0x8C36+gl_CONVOLUTION_BORDER_COLOR :: GLenum+gl_CONVOLUTION_BORDER_COLOR = 0x8154+gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV :: GLenum+gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1+gl_VERTEX_ARRAY_BUFFER_BINDING :: GLenum+gl_VERTEX_ARRAY_BUFFER_BINDING = 0x8896+gl_DEPTH_CLAMP_NEAR_AMD :: GLenum+gl_DEPTH_CLAMP_NEAR_AMD = 0x901E+gl_POLYGON_TOKEN :: GLenum+gl_POLYGON_TOKEN = 0x0703+gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C+gl_R8_SNORM :: GLenum+gl_R8_SNORM = 0x8F94+gl_DS_BIAS_NV :: GLenum+gl_DS_BIAS_NV = 0x8716+gl_2X_BIT_ATI :: GLenum+gl_2X_BIT_ATI = 0x00000001+gl_ALREADY_SIGNALED :: GLenum+gl_ALREADY_SIGNALED = 0x911A+gl_2D :: GLenum+gl_2D = 0x0600+gl_MAX_VERTEX_UNIFORM_COMPONENTS :: GLenum+gl_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A+gl_DEBUG_CATEGORY_PERFORMANCE_AMD :: GLenum+gl_DEBUG_CATEGORY_PERFORMANCE_AMD = 0x914D+gl_OVERLAY_NV :: GLenum+gl_OVERLAY_NV = 0x9296+gl_ATOMIC_COUNTER_BUFFER_SIZE :: GLenum+gl_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3+gl_COLOR_ATTACHMENT10_EXT :: GLenum+gl_COLOR_ATTACHMENT10_EXT = 0x8CEA+gl_COLOR_TABLE_BLUE_SIZE_SGI :: GLenum+gl_COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC+gl_ADD_SIGNED_EXT :: GLenum+gl_ADD_SIGNED_EXT = 0x8574+gl_INT_SAMPLER_2D_ARRAY_EXT :: GLenum+gl_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF+gl_TRANSFORM_FEEDBACK_BUFFER_INDEX :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B+gl_REFERENCED_BY_TESS_CONTROL_SHADER :: GLenum+gl_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307+gl_FIELD_LOWER_NV :: GLenum+gl_FIELD_LOWER_NV = 0x9023+gl_POST_COLOR_MATRIX_RED_SCALE :: GLenum+gl_POST_COLOR_MATRIX_RED_SCALE = 0x80B4+gl_IMAGE_BUFFER_EXT :: GLenum+gl_IMAGE_BUFFER_EXT = 0x9051+gl_3D_COLOR_TEXTURE :: GLenum+gl_3D_COLOR_TEXTURE = 0x0603+gl_DEBUG_CALLBACK_FUNCTION_KHR :: GLenum+gl_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244+gl_SCISSOR_BIT :: GLenum+gl_SCISSOR_BIT = 0x00080000+gl_IMAGE_TRANSLATE_X_HP :: GLenum+gl_IMAGE_TRANSLATE_X_HP = 0x8157+gl_PIXEL_MAP_I_TO_A :: GLenum+gl_PIXEL_MAP_I_TO_A = 0x0C75+gl_VERTEX_SUBROUTINE :: GLenum+gl_VERTEX_SUBROUTINE = 0x92E8+gl_TEXTURE4_ARB :: GLenum+gl_TEXTURE4_ARB = 0x84C4+gl_PACK_COMPRESSED_BLOCK_DEPTH :: GLenum+gl_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D+gl_SHADER_STORAGE_BLOCK :: GLenum+gl_SHADER_STORAGE_BLOCK = 0x92E6+gl_SIGNED_ALPHA_NV :: GLenum+gl_SIGNED_ALPHA_NV = 0x8705+gl_BLEND_DST_ALPHA_EXT :: GLenum+gl_BLEND_DST_ALPHA_EXT = 0x80CA+gl_MAP2_VERTEX_ATTRIB9_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679+gl_HILO8_NV :: GLenum+gl_HILO8_NV = 0x885E+gl_SHADER_BINARY_FORMATS :: GLenum+gl_SHADER_BINARY_FORMATS = 0x8DF8+gl_DEBUG_OUTPUT_SYNCHRONOUS :: GLenum+gl_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242+gl_TEXTURE_GEN_R :: GLenum+gl_TEXTURE_GEN_R = 0x0C62+gl_PERFORMANCE_MONITOR_AMD :: GLenum+gl_PERFORMANCE_MONITOR_AMD = 0x9152+gl_INTENSITY_FLOAT16_APPLE :: GLenum+gl_INTENSITY_FLOAT16_APPLE = 0x881D+gl_PROGRAM_PIPELINE :: GLenum+gl_PROGRAM_PIPELINE = 0x82E4+gl_COLOR_BUFFER_BIT5_QCOM :: GLenum+gl_COLOR_BUFFER_BIT5_QCOM = 0x00000020+gl_MAX_GEOMETRY_VARYING_COMPONENTS_EXT :: GLenum+gl_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD+gl_DEBUG_TYPE_PORTABILITY_KHR :: GLenum+gl_DEBUG_TYPE_PORTABILITY_KHR = 0x824F+gl_RGB16F_ARB :: GLenum+gl_RGB16F_ARB = 0x881B+gl_PRIMITIVES_GENERATED_EXT :: GLenum+gl_PRIMITIVES_GENERATED_EXT = 0x8C87+gl_PROGRAM_BINARY_FORMATS_OES :: GLenum+gl_PROGRAM_BINARY_FORMATS_OES = 0x87FF+gl_AMBIENT :: GLenum+gl_AMBIENT = 0x1200+gl_QUERY_BY_REGION_NO_WAIT_NV :: GLenum+gl_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16+gl_VIEW_CLASS_RGTC2_RG :: GLenum+gl_VIEW_CLASS_RGTC2_RG = 0x82D1+gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT :: GLenum+gl_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = 0x8A57+gl_DRAW_BUFFER2_EXT :: GLenum+gl_DRAW_BUFFER2_EXT = 0x8827+gl_TEXTURE_BUFFER_BINDING :: GLenum+gl_TEXTURE_BUFFER_BINDING = 0x8C2A+gl_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT :: GLenum+gl_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = 0x8A55+gl_OPERAND3_ALPHA_NV :: GLenum+gl_OPERAND3_ALPHA_NV = 0x859B+gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV :: GLenum+gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58+gl_LINEAR_SHARPEN_SGIS :: GLenum+gl_LINEAR_SHARPEN_SGIS = 0x80AD+gl_MAP_UNSYNCHRONIZED_BIT_EXT :: GLenum+gl_MAP_UNSYNCHRONIZED_BIT_EXT = 0x0020+gl_MODELVIEW28_ARB :: GLenum+gl_MODELVIEW28_ARB = 0x873C+gl_EDGE_FLAG_ARRAY_LIST_IBM :: GLenum+gl_EDGE_FLAG_ARRAY_LIST_IBM = 103075+gl_PALETTE4_RGB5_A1_OES :: GLenum+gl_PALETTE4_RGB5_A1_OES = 0x8B94+gl_MULTIPLY_KHR :: GLenum+gl_MULTIPLY_KHR = 0x9294+gl_GPU_OPTIMIZED_QCOM :: GLenum+gl_GPU_OPTIMIZED_QCOM = 0x8FB2+gl_FOG_FUNC_POINTS_SGIS :: GLenum+gl_FOG_FUNC_POINTS_SGIS = 0x812B+gl_MAX_IMAGE_SAMPLES :: GLenum+gl_MAX_IMAGE_SAMPLES = 0x906D+gl_DRAW_BUFFER3_NV :: GLenum+gl_DRAW_BUFFER3_NV = 0x8828+gl_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS :: GLenum+gl_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47+gl_RESET_NOTIFICATION_STRATEGY_ARB :: GLenum+gl_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256+gl_MAX_TEXTURE_STACK_DEPTH :: GLenum+gl_MAX_TEXTURE_STACK_DEPTH = 0x0D39+gl_INT64_NV :: GLenum+gl_INT64_NV = 0x140E+gl_DEBUG_SOURCE_APPLICATION :: GLenum+gl_DEBUG_SOURCE_APPLICATION = 0x824A+gl_STENCIL_CLEAR_VALUE :: GLenum+gl_STENCIL_CLEAR_VALUE = 0x0B91+gl_SRC1_COLOR :: GLenum+gl_SRC1_COLOR = 0x88F9+gl_LIGHT4 :: GLenum+gl_LIGHT4 = 0x4004+gl_PIXEL_PACK_BUFFER_BINDING :: GLenum+gl_PIXEL_PACK_BUFFER_BINDING = 0x88ED+gl_MAX_LIGHTS :: GLenum+gl_MAX_LIGHTS = 0x0D31+gl_OPERAND1_ALPHA_EXT :: GLenum+gl_OPERAND1_ALPHA_EXT = 0x8599+gl_PIXEL_MAP_B_TO_B_SIZE :: GLenum+gl_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8+gl_COLOR_TABLE_FORMAT_SGI :: GLenum+gl_COLOR_TABLE_FORMAT_SGI = 0x80D8+gl_MODELVIEW22_ARB :: GLenum+gl_MODELVIEW22_ARB = 0x8736+gl_UNSIGNED_INT64_VEC4_NV :: GLenum+gl_UNSIGNED_INT64_VEC4_NV = 0x8FF7+gl_COLOR_ARRAY_TYPE_EXT :: GLenum+gl_COLOR_ARRAY_TYPE_EXT = 0x8082+gl_LOSE_CONTEXT_ON_RESET_EXT :: GLenum+gl_LOSE_CONTEXT_ON_RESET_EXT = 0x8252+gl_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV :: GLenum+gl_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034+gl_TEXTURE_PRIORITY_EXT :: GLenum+gl_TEXTURE_PRIORITY_EXT = 0x8066+gl_UNPACK_COMPRESSED_SIZE_SGIX :: GLenum+gl_UNPACK_COMPRESSED_SIZE_SGIX = 0x831A+gl_SEPARATE_ATTRIBS_EXT :: GLenum+gl_SEPARATE_ATTRIBS_EXT = 0x8C8D+gl_IMAGE_BINDING_LAYERED :: GLenum+gl_IMAGE_BINDING_LAYERED = 0x8F3C+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8+gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE :: GLenum+gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B+gl_READ_ONLY :: GLenum+gl_READ_ONLY = 0x88B8+gl_TEXTURE_3D_BINDING_OES :: GLenum+gl_TEXTURE_3D_BINDING_OES = 0x806A+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER :: GLenum+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7+gl_COVERAGE_ALL_FRAGMENTS_NV :: GLenum+gl_COVERAGE_ALL_FRAGMENTS_NV = 0x8ED5+gl_SRC2_ALPHA :: GLenum+gl_SRC2_ALPHA = 0x858A+gl_PRIMITIVE_ID_NV :: GLenum+gl_PRIMITIVE_ID_NV = 0x8C7C+gl_VIDEO_COLOR_CONVERSION_MAX_NV :: GLenum+gl_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A+gl_MAP2_TANGENT_EXT :: GLenum+gl_MAP2_TANGENT_EXT = 0x8445+gl_LIGHTING :: GLenum+gl_LIGHTING = 0x0B50+gl_PROGRAM_UNDER_NATIVE_LIMITS_ARB :: GLenum+gl_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6+gl_VERTEX_ATTRIB_ARRAY2_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY2_NV = 0x8652+gl_PRESENT_TIME_NV :: GLenum+gl_PRESENT_TIME_NV = 0x8E2A+gl_PATCH_DEFAULT_INNER_LEVEL :: GLenum+gl_PATCH_DEFAULT_INNER_LEVEL = 0x8E73+gl_NEVER :: GLenum+gl_NEVER = 0x0200+gl_PATH_STROKE_WIDTH_NV :: GLenum+gl_PATH_STROKE_WIDTH_NV = 0x9075+gl_INVERT_RGB_NV :: GLenum+gl_INVERT_RGB_NV = 0x92A3+gl_BUFFER_MAP_POINTER_ARB :: GLenum+gl_BUFFER_MAP_POINTER_ARB = 0x88BD+gl_MAP2_GRID_SEGMENTS :: GLenum+gl_MAP2_GRID_SEGMENTS = 0x0DD3+gl_INVALID_VALUE :: GLenum+gl_INVALID_VALUE = 0x0501+gl_BLEND_EQUATION_ALPHA_OES :: GLenum+gl_BLEND_EQUATION_ALPHA_OES = 0x883D+gl_MAX_RATIONAL_EVAL_ORDER_NV :: GLenum+gl_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7+gl_VERTEX_ATTRIB_ARRAY10_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY10_NV = 0x865A+gl_UNPACK_IMAGE_DEPTH_SGIS :: GLenum+gl_UNPACK_IMAGE_DEPTH_SGIS = 0x8133+gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES = 0x8CDC+gl_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS :: GLenum+gl_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266+gl_TRANSPOSE_PROJECTION_MATRIX_ARB :: GLenum+gl_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4+gl_REDUCE_EXT :: GLenum+gl_REDUCE_EXT = 0x8016+gl_RGB8UI_EXT :: GLenum+gl_RGB8UI_EXT = 0x8D7D+gl_MAX_CLIENT_ATTRIB_STACK_DEPTH :: GLenum+gl_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B+gl_RGB9_E5_EXT :: GLenum+gl_RGB9_E5_EXT = 0x8C3D+gl_OUTPUT_TEXTURE_COORD18_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF+gl_COLOR_ATTACHMENT0_EXT :: GLenum+gl_COLOR_ATTACHMENT0_EXT = 0x8CE0+gl_ALPHA_SCALE :: GLenum+gl_ALPHA_SCALE = 0x0D1C+gl_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV :: GLenum+gl_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD+gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216+gl_BLEND_SRC :: GLenum+gl_BLEND_SRC = 0x0BE1+gl_TEXTURE_MAX_CLAMP_R_SGIX :: GLenum+gl_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B+gl_MAX_PROGRAM_TEXEL_OFFSET_NV :: GLenum+gl_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905+gl_TEXTURE_LOD_BIAS_R_SGIX :: GLenum+gl_TEXTURE_LOD_BIAS_R_SGIX = 0x8190+gl_UNSIGNED_INT_SAMPLER_2D :: GLenum+gl_UNSIGNED_INT_SAMPLER_2D = 0x8DD2+gl_TEXTURE_FILTER_CONTROL_EXT :: GLenum+gl_TEXTURE_FILTER_CONTROL_EXT = 0x8500+gl_VARIABLE_G_NV :: GLenum+gl_VARIABLE_G_NV = 0x8529+gl_SELECTION_BUFFER_POINTER :: GLenum+gl_SELECTION_BUFFER_POINTER = 0x0DF3+gl_INT_SAMPLER_1D :: GLenum+gl_INT_SAMPLER_1D = 0x8DC9+gl_COMBINE_ALPHA :: GLenum+gl_COMBINE_ALPHA = 0x8572+gl_FONT_Y_MAX_BOUNDS_BIT_NV :: GLenum+gl_FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000+gl_UNIFORM_BARRIER_BIT :: GLenum+gl_UNIFORM_BARRIER_BIT = 0x00000004+gl_TEXTURE_BLUE_TYPE_ARB :: GLenum+gl_TEXTURE_BLUE_TYPE_ARB = 0x8C12+gl_STENCIL_INDEX16 :: GLenum+gl_STENCIL_INDEX16 = 0x8D49+gl_SRC_OVER_NV :: GLenum+gl_SRC_OVER_NV = 0x9288+gl_INT_SAMPLER_2D_MULTISAMPLE :: GLenum+gl_INT_SAMPLER_2D_MULTISAMPLE = 0x9109+gl_COLOR_TABLE_GREEN_SIZE_SGI :: GLenum+gl_COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB+gl_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV :: GLenum+gl_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4+gl_TEXTURE_COMPRESSED_IMAGE_SIZE :: GLenum+gl_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0+gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV :: GLenum+gl_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5C+gl_REFERENCED_BY_TESS_EVALUATION_SHADER :: GLenum+gl_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308+gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210+gl_MAX_HEIGHT :: GLenum+gl_MAX_HEIGHT = 0x827F+gl_ALPHA32F_ARB :: GLenum+gl_ALPHA32F_ARB = 0x8816+gl_COLOR_ATTACHMENT13 :: GLenum+gl_COLOR_ATTACHMENT13 = 0x8CED+gl_OP_SET_GE_EXT :: GLenum+gl_OP_SET_GE_EXT = 0x878C+gl_RGBA16_EXT :: GLenum+gl_RGBA16_EXT = 0x805B+gl_OPERAND3_RGB_NV :: GLenum+gl_OPERAND3_RGB_NV = 0x8593+gl_RENDERBUFFER_BLUE_SIZE_OES :: GLenum+gl_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52+gl_LUMINANCE_ALPHA_FLOAT16_ATI :: GLenum+gl_LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F+gl_VERTEX_ATTRIB_ARRAY_DIVISOR_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = 0x88FE+gl_PERFQUERY_COUNTER_DURATION_RAW_INTEL :: GLenum+gl_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2+gl_MAX_DEPTH :: GLenum+gl_MAX_DEPTH = 0x8280+gl_LINEAR_MIPMAP_NEAREST :: GLenum+gl_LINEAR_MIPMAP_NEAREST = 0x2701+gl_UNSIGNED_INT_8_8_S8_S8_REV_NV :: GLenum+gl_UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB+gl_N3F_V3F :: GLenum+gl_N3F_V3F = 0x2A25+gl_PACK_MAX_COMPRESSED_SIZE_SGIX :: GLenum+gl_PACK_MAX_COMPRESSED_SIZE_SGIX = 0x831B+gl_QUERY_BUFFER_BINDING_AMD :: GLenum+gl_QUERY_BUFFER_BINDING_AMD = 0x9193+gl_FOG_MODE :: GLenum+gl_FOG_MODE = 0x0B65+gl_RGBA32F :: GLenum+gl_RGBA32F = 0x8814+gl_FRAGMENT_SHADER_DERIVATIVE_HINT :: GLenum+gl_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B+gl_UNPACK_SKIP_ROWS_EXT :: GLenum+gl_UNPACK_SKIP_ROWS_EXT = 0x0CF3+gl_LINES :: GLenum+gl_LINES = 0x0001+gl_SPOT_EXPONENT :: GLenum+gl_SPOT_EXPONENT = 0x1205+gl_MAX_NUM_COMPATIBLE_SUBROUTINES :: GLenum+gl_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8+gl_RGBA_FLOAT32_APPLE :: GLenum+gl_RGBA_FLOAT32_APPLE = 0x8814+gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT :: GLenum+gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE+gl_BLEND_EQUATION_ALPHA :: GLenum+gl_BLEND_EQUATION_ALPHA = 0x883D+gl_PATH_MODELVIEW_STACK_DEPTH_NV :: GLenum+gl_PATH_MODELVIEW_STACK_DEPTH_NV = 0x0BA3+gl_TEXTURE_SHARED_SIZE_EXT :: GLenum+gl_TEXTURE_SHARED_SIZE_EXT = 0x8C3F+gl_RGBA16 :: GLenum+gl_RGBA16 = 0x805B+gl_UNDEFINED_VERTEX_EXT :: GLenum+gl_UNDEFINED_VERTEX_EXT = 0x8260+gl_PALETTE8_RGB5_A1_OES :: GLenum+gl_PALETTE8_RGB5_A1_OES = 0x8B99+gl_MAX_GEOMETRY_OUTPUT_VERTICES_EXT :: GLenum+gl_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0+gl_IMAGE_CLASS_11_11_10 :: GLenum+gl_IMAGE_CLASS_11_11_10 = 0x82C2+gl_HISTOGRAM_GREEN_SIZE_EXT :: GLenum+gl_HISTOGRAM_GREEN_SIZE_EXT = 0x8029+gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT :: GLenum+gl_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8+gl_MAX_COMPUTE_IMAGE_UNIFORMS :: GLenum+gl_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD+gl_MAX_PATCH_VERTICES_EXT :: GLenum+gl_MAX_PATCH_VERTICES_EXT = 0x8E7D+gl_ISOLINES :: GLenum+gl_ISOLINES = 0x8E7A+gl_LUMINANCE_ALPHA_SNORM :: GLenum+gl_LUMINANCE_ALPHA_SNORM = 0x9012+gl_PROGRAM_PIPELINE_BINDING_EXT :: GLenum+gl_PROGRAM_PIPELINE_BINDING_EXT = 0x825A+gl_FIRST_VERTEX_CONVENTION_EXT :: GLenum+gl_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D+gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT :: GLenum+gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86+gl_UTF16_NV :: GLenum+gl_UTF16_NV = 0x909B+gl_PRESENT_DURATION_NV :: GLenum+gl_PRESENT_DURATION_NV = 0x8E2B+gl_TEXTURE_SAMPLES :: GLenum+gl_TEXTURE_SAMPLES = 0x9106+gl_BGR :: GLenum+gl_BGR = 0x80E0+gl_CULL_VERTEX_OBJECT_POSITION_EXT :: GLenum+gl_CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC+gl_FRAGMENT_PROGRAM_POSITION_MESA :: GLenum+gl_FRAGMENT_PROGRAM_POSITION_MESA = 0x8BB0+gl_FLOAT_RG_NV :: GLenum+gl_FLOAT_RG_NV = 0x8881+gl_PROXY_TEXTURE_2D_MULTISAMPLE :: GLenum+gl_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101+gl_CON_21_ATI :: GLenum+gl_CON_21_ATI = 0x8956+gl_MAX_GEOMETRY_IMAGE_UNIFORMS :: GLenum+gl_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD+gl_FLOAT_MAT3x4_NV :: GLenum+gl_FLOAT_MAT3x4_NV = 0x8B68+gl_BUFFER_VARIABLE :: GLenum+gl_BUFFER_VARIABLE = 0x92E5+gl_ANY_SAMPLES_PASSED_EXT :: GLenum+gl_ANY_SAMPLES_PASSED_EXT = 0x8C2F+gl_TEXTURE_GEN_Q :: GLenum+gl_TEXTURE_GEN_Q = 0x0C63+gl_GEOMETRY_VERTICES_OUT_ARB :: GLenum+gl_GEOMETRY_VERTICES_OUT_ARB = 0x8DDA+gl_POLYGON_SMOOTH_HINT :: GLenum+gl_POLYGON_SMOOTH_HINT = 0x0C53+gl_TEXTURE_BINDING_CUBE_MAP_ARRAY :: GLenum+gl_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A+gl_SEPARABLE_2D_EXT :: GLenum+gl_SEPARABLE_2D_EXT = 0x8012+gl_VERSION_ES_CL_1_0 :: GLenum+gl_VERSION_ES_CL_1_0 = 1+gl_VERTEX_PROGRAM_PARAMETER_BUFFER_NV :: GLenum+gl_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2+gl_RED_INTEGER :: GLenum+gl_RED_INTEGER = 0x8D94+gl_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD :: GLenum+gl_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = 0x914A+gl_OFFSET_TEXTURE_RECTANGLE_NV :: GLenum+gl_OFFSET_TEXTURE_RECTANGLE_NV = 0x864C+gl_TEXTURE_COORD_ARRAY_TYPE_EXT :: GLenum+gl_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089+gl_INT8_NV :: GLenum+gl_INT8_NV = 0x8FE0+gl_VIDEO_COLOR_CONVERSION_MIN_NV :: GLenum+gl_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV :: GLenum+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8C4D+gl_FRAMEBUFFER_ATTACHMENT_ANGLE :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3+gl_SRC1_RGB :: GLenum+gl_SRC1_RGB = 0x8581+gl_CON_24_ATI :: GLenum+gl_CON_24_ATI = 0x8959+gl_DEBUG_CALLBACK_USER_PARAM :: GLenum+gl_DEBUG_CALLBACK_USER_PARAM = 0x8245+gl_MALI_SHADER_BINARY_ARM :: GLenum+gl_MALI_SHADER_BINARY_ARM = 0x8F60+gl_VIEW_CLASS_16_BITS :: GLenum+gl_VIEW_CLASS_16_BITS = 0x82CA+gl_DITHER :: GLenum+gl_DITHER = 0x0BD0+gl_PATH_STROKE_COVER_MODE_NV :: GLenum+gl_PATH_STROKE_COVER_MODE_NV = 0x9083+gl_BGR_INTEGER :: GLenum+gl_BGR_INTEGER = 0x8D9A+gl_TEXTURE_MATERIAL_PARAMETER_EXT :: GLenum+gl_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352+gl_COMPRESSED_RGBA_ASTC_5x4_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1+gl_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT :: GLenum+gl_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4+gl_POST_CONVOLUTION_GREEN_BIAS_EXT :: GLenum+gl_POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021+gl_PATH_ERROR_POSITION_NV :: GLenum+gl_PATH_ERROR_POSITION_NV = 0x90AB+gl_SAMPLE_ALPHA_TO_COVERAGE :: GLenum+gl_SAMPLE_ALPHA_TO_COVERAGE = 0x809E+gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: GLenum+gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D+gl_NUM_COMPATIBLE_SUBROUTINES :: GLenum+gl_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A+gl_RGBA16UI_EXT :: GLenum+gl_RGBA16UI_EXT = 0x8D76+gl_VERTEX_SHADER_ARB :: GLenum+gl_VERTEX_SHADER_ARB = 0x8B31+gl_RGB :: GLenum+gl_RGB = 0x1907+gl_MAP_PERSISTENT_BIT :: GLenum+gl_MAP_PERSISTENT_BIT = 0x0040+gl_QUERY_COUNTER_BITS_ARB :: GLenum+gl_QUERY_COUNTER_BITS_ARB = 0x8864+gl_BLEND_EQUATION_RGB_OES :: GLenum+gl_BLEND_EQUATION_RGB_OES = 0x8009+gl_FRAGMENT_SHADER_BIT :: GLenum+gl_FRAGMENT_SHADER_BIT = 0x00000002+gl_MATRIX_INDEX_ARRAY_ARB :: GLenum+gl_MATRIX_INDEX_ARRAY_ARB = 0x8844+gl_OUTPUT_TEXTURE_COORD29_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA+gl_HISTOGRAM_FORMAT :: GLenum+gl_HISTOGRAM_FORMAT = 0x8027+gl_MAX_ASYNC_HISTOGRAM_SGIX :: GLenum+gl_MAX_ASYNC_HISTOGRAM_SGIX = 0x832D+gl_MAX_VERTEX_ATTRIBS_ARB :: GLenum+gl_MAX_VERTEX_ATTRIBS_ARB = 0x8869+gl_SAMPLE_MASK_NV :: GLenum+gl_SAMPLE_MASK_NV = 0x8E51+gl_COLOR_INDEXES :: GLenum+gl_COLOR_INDEXES = 0x1603+gl_QUAD_TEXTURE_SELECT_SGIS :: GLenum+gl_QUAD_TEXTURE_SELECT_SGIS = 0x8125+gl_RG16_SNORM :: GLenum+gl_RG16_SNORM = 0x8F99+gl_ACTIVE_SUBROUTINE_MAX_LENGTH :: GLenum+gl_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48+gl_LOGIC_OP_MODE :: GLenum+gl_LOGIC_OP_MODE = 0x0BF0+gl_DEPTH_COMPONENT16_NONLINEAR_NV :: GLenum+gl_DEPTH_COMPONENT16_NONLINEAR_NV = 0x8E2C+gl_PRIMITIVE_RESTART_INDEX_NV :: GLenum+gl_PRIMITIVE_RESTART_INDEX_NV = 0x8559+gl_UNKNOWN_CONTEXT_RESET :: GLenum+gl_UNKNOWN_CONTEXT_RESET = 0x8255+gl_VBO_FREE_MEMORY_ATI :: GLenum+gl_VBO_FREE_MEMORY_ATI = 0x87FB+gl_TEXTURE_CUBE_MAP_POSITIVE_X_OES :: GLenum+gl_TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515+gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR :: GLenum+gl_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC+gl_TEXTURE_2D_STACK_MESAX :: GLenum+gl_TEXTURE_2D_STACK_MESAX = 0x875A+gl_DRAW_BUFFER10 :: GLenum+gl_DRAW_BUFFER10 = 0x882F+gl_FLOAT16_VEC4_NV :: GLenum+gl_FLOAT16_VEC4_NV = 0x8FFB+gl_SIGNED_HILO16_NV :: GLenum+gl_SIGNED_HILO16_NV = 0x86FA+gl_BUFFER_MAPPED_OES :: GLenum+gl_BUFFER_MAPPED_OES = 0x88BC+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1+gl_DRAW_BUFFER5_EXT :: GLenum+gl_DRAW_BUFFER5_EXT = 0x882A+gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8+gl_NUM_EXTENSIONS :: GLenum+gl_NUM_EXTENSIONS = 0x821D+gl_WARP_SIZE_NV :: GLenum+gl_WARP_SIZE_NV = 0x9339+gl_TEXTURE23 :: GLenum+gl_TEXTURE23 = 0x84D7+gl_INT_SAMPLER_2D_RECT_EXT :: GLenum+gl_INT_SAMPLER_2D_RECT_EXT = 0x8DCD+gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES = 0x8CDB+gl_REG_4_ATI :: GLenum+gl_REG_4_ATI = 0x8925+gl_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG :: GLenum+gl_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137+gl_FOG_INDEX :: GLenum+gl_FOG_INDEX = 0x0B61+gl_QUADRATIC_ATTENUATION :: GLenum+gl_QUADRATIC_ATTENUATION = 0x1209+gl_COLOR_MATERIAL :: GLenum+gl_COLOR_MATERIAL = 0x0B57+gl_SAMPLE_MASK :: GLenum+gl_SAMPLE_MASK = 0x8E51+gl_DRAW_FRAMEBUFFER_BINDING_EXT :: GLenum+gl_DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6+gl_MULTISAMPLE_BUFFER_BIT5_QCOM :: GLenum+gl_MULTISAMPLE_BUFFER_BIT5_QCOM = 0x20000000+gl_DEPTH_STENCIL_OES :: GLenum+gl_DEPTH_STENCIL_OES = 0x84F9+gl_STENCIL_BITS :: GLenum+gl_STENCIL_BITS = 0x0D57+gl_CURRENT_VERTEX_ATTRIB_ARB :: GLenum+gl_CURRENT_VERTEX_ATTRIB_ARB = 0x8626+gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9+gl_COORD_REPLACE_ARB :: GLenum+gl_COORD_REPLACE_ARB = 0x8862+gl_RGBA32I_EXT :: GLenum+gl_RGBA32I_EXT = 0x8D82+gl_TEXTURE6 :: GLenum+gl_TEXTURE6 = 0x84C6+gl_FLOAT_RGB16_NV :: GLenum+gl_FLOAT_RGB16_NV = 0x8888+gl_TEXTURE_IMMUTABLE_FORMAT :: GLenum+gl_TEXTURE_IMMUTABLE_FORMAT = 0x912F+gl_ZERO_EXT :: GLenum+gl_ZERO_EXT = 0x87DD+gl_SOFTLIGHT_NV :: GLenum+gl_SOFTLIGHT_NV = 0x929C+gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9+gl_TEXTURE_BASE_LEVEL :: GLenum+gl_TEXTURE_BASE_LEVEL = 0x813C+gl_COMPRESSED_SRGB_ALPHA :: GLenum+gl_COMPRESSED_SRGB_ALPHA = 0x8C49+gl_TEXTURE18_ARB :: GLenum+gl_TEXTURE18_ARB = 0x84D2+gl_AND_INVERTED :: GLenum+gl_AND_INVERTED = 0x1504+gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F+gl_ARRAY_BUFFER_ARB :: GLenum+gl_ARRAY_BUFFER_ARB = 0x8892+gl_RGBA32F_EXT :: GLenum+gl_RGBA32F_EXT = 0x8814+gl_BLEND_EQUATION_RGB_EXT :: GLenum+gl_BLEND_EQUATION_RGB_EXT = 0x8009+gl_FRONT_FACE :: GLenum+gl_FRONT_FACE = 0x0B46+gl_SINGLE_COLOR_EXT :: GLenum+gl_SINGLE_COLOR_EXT = 0x81F9+gl_QUERY_COUNTER_BITS_EXT :: GLenum+gl_QUERY_COUNTER_BITS_EXT = 0x8864+gl_TESS_CONTROL_SHADER_PATCHES_ARB :: GLenum+gl_TESS_CONTROL_SHADER_PATCHES_ARB = 0x82F1+gl_SPOT_CUTOFF :: GLenum+gl_SPOT_CUTOFF = 0x1206+gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A+gl_OUTPUT_TEXTURE_COORD6_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3+gl_COLOR_ATTACHMENT13_NV :: GLenum+gl_COLOR_ATTACHMENT13_NV = 0x8CED+gl_COMPRESSED_RGBA_S3TC_DXT3_EXT :: GLenum+gl_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2+gl_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV :: GLenum+gl_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = 0x8E5A+gl_TRANSPOSE_TEXTURE_MATRIX :: GLenum+gl_TRANSPOSE_TEXTURE_MATRIX = 0x84E5+gl_MULTISAMPLE_ARB :: GLenum+gl_MULTISAMPLE_ARB = 0x809D+gl_DEPTH_COMPONENT24 :: GLenum+gl_DEPTH_COMPONENT24 = 0x81A6+gl_PIXEL_MAP_G_TO_G :: GLenum+gl_PIXEL_MAP_G_TO_G = 0x0C77+gl_NAMED_STRING_LENGTH_ARB :: GLenum+gl_NAMED_STRING_LENGTH_ARB = 0x8DE9+gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT :: GLenum+gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83+gl_UNIFORM_SIZE :: GLenum+gl_UNIFORM_SIZE = 0x8A38+gl_MODELVIEW21_ARB :: GLenum+gl_MODELVIEW21_ARB = 0x8735+gl_FRAGMENT_LIGHT7_SGIX :: GLenum+gl_FRAGMENT_LIGHT7_SGIX = 0x8413+gl_DRAW_BUFFER3_ARB :: GLenum+gl_DRAW_BUFFER3_ARB = 0x8828+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = 0x93E8+gl_UNSIGNED_SHORT :: GLenum+gl_UNSIGNED_SHORT = 0x1403+gl_MULTISAMPLE_BIT_ARB :: GLenum+gl_MULTISAMPLE_BIT_ARB = 0x20000000+gl_FOG :: GLenum+gl_FOG = 0x0B60+gl_TEXTURE_COMPARE_MODE :: GLenum+gl_TEXTURE_COMPARE_MODE = 0x884C+gl_SPHERE_MAP :: GLenum+gl_SPHERE_MAP = 0x2402+gl_TIMEOUT_EXPIRED_APPLE :: GLenum+gl_TIMEOUT_EXPIRED_APPLE = 0x911B+gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT :: GLenum+gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F+gl_PROXY_TEXTURE_1D_ARRAY :: GLenum+gl_PROXY_TEXTURE_1D_ARRAY = 0x8C19+gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6+gl_TEXTURE_BINDING_CUBE_MAP :: GLenum+gl_TEXTURE_BINDING_CUBE_MAP = 0x8514+gl_COLOR_ATTACHMENT14 :: GLenum+gl_COLOR_ATTACHMENT14 = 0x8CEE+gl_STENCIL_BUFFER_BIT :: GLenum+gl_STENCIL_BUFFER_BIT = 0x00000400+gl_SIGNALED :: GLenum+gl_SIGNALED = 0x9119+gl_TEXTURE_WIDTH :: GLenum+gl_TEXTURE_WIDTH = 0x1000+gl_EVAL_BIT :: GLenum+gl_EVAL_BIT = 0x00010000+gl_REG_28_ATI :: GLenum+gl_REG_28_ATI = 0x893D+gl_TEXTURE_BIT :: GLenum+gl_TEXTURE_BIT = 0x00040000+gl_CONTEXT_ROBUST_ACCESS_EXT :: GLenum+gl_CONTEXT_ROBUST_ACCESS_EXT = 0x90F3+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV :: GLenum+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80+gl_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB :: GLenum+gl_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = 0x82ED+gl_DEPTH_BUFFER_BIT :: GLenum+gl_DEPTH_BUFFER_BIT = 0x00000100+gl_TEXCOORD2_BIT_PGI :: GLenum+gl_TEXCOORD2_BIT_PGI = 0x20000000+gl_POST_CONVOLUTION_RED_SCALE_EXT :: GLenum+gl_POST_CONVOLUTION_RED_SCALE_EXT = 0x801C+gl_QUERY_KHR :: GLenum+gl_QUERY_KHR = 0x82E3+gl_PACK_IMAGE_HEIGHT_EXT :: GLenum+gl_PACK_IMAGE_HEIGHT_EXT = 0x806C+gl_COMPRESSED_RGBA_ASTC_5x5_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2+gl_MAX_VERTEX_UNIFORM_COMPONENTS_ARB :: GLenum+gl_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A+gl_DEPTH_STENCIL_ATTACHMENT :: GLenum+gl_DEPTH_STENCIL_ATTACHMENT = 0x821A+gl_HSL_HUE_KHR :: GLenum+gl_HSL_HUE_KHR = 0x92AD+gl_ATC_RGB_AMD :: GLenum+gl_ATC_RGB_AMD = 0x8C92+gl_DECR_WRAP :: GLenum+gl_DECR_WRAP = 0x8508+gl_GEOMETRY_VERTICES_OUT :: GLenum+gl_GEOMETRY_VERTICES_OUT = 0x8916+gl_OFFSET_TEXTURE_BIAS_NV :: GLenum+gl_OFFSET_TEXTURE_BIAS_NV = 0x86E3+gl_COLOR_ATTACHMENT5_NV :: GLenum+gl_COLOR_ATTACHMENT5_NV = 0x8CE5+gl_POINT_SIZE_ARRAY_POINTER_OES :: GLenum+gl_POINT_SIZE_ARRAY_POINTER_OES = 0x898C+gl_TEXTURE_COMPARE_FAIL_VALUE_ARB :: GLenum+gl_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF+gl_RENDERBUFFER_COLOR_SAMPLES_NV :: GLenum+gl_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10+gl_CON_10_ATI :: GLenum+gl_CON_10_ATI = 0x894B+gl_IMAGE_ROTATE_ANGLE_HP :: GLenum+gl_IMAGE_ROTATE_ANGLE_HP = 0x8159+gl_UNIFORM_BUFFER_UNIFIED_NV :: GLenum+gl_UNIFORM_BUFFER_UNIFIED_NV = 0x936E+gl_INTENSITY4 :: GLenum+gl_INTENSITY4 = 0x804A+gl_DEBUG_LOGGED_MESSAGES_KHR :: GLenum+gl_DEBUG_LOGGED_MESSAGES_KHR = 0x9145+gl_MINUS_CLAMPED_NV :: GLenum+gl_MINUS_CLAMPED_NV = 0x92B3+gl_BUFFER_SIZE :: GLenum+gl_BUFFER_SIZE = 0x8764+gl_SRGB_EXT :: GLenum+gl_SRGB_EXT = 0x8C40+gl_PIXEL_TEX_GEN_Q_ROUND_SGIX :: GLenum+gl_PIXEL_TEX_GEN_Q_ROUND_SGIX = 0x8185+gl_R16I :: GLenum+gl_R16I = 0x8233+gl_COLOR_COMPONENTS :: GLenum+gl_COLOR_COMPONENTS = 0x8283+gl_TEXTURE_VIEW_NUM_LEVELS :: GLenum+gl_TEXTURE_VIEW_NUM_LEVELS = 0x82DC+gl_COLOR_ATTACHMENT11 :: GLenum+gl_COLOR_ATTACHMENT11 = 0x8CEB+gl_OBJECT_PLANE :: GLenum+gl_OBJECT_PLANE = 0x2501+gl_IMAGE_3D_EXT :: GLenum+gl_IMAGE_3D_EXT = 0x904E+gl_MAX_GEOMETRY_INPUT_COMPONENTS :: GLenum+gl_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123+gl_TEXTURE_COORD_ARRAY_LIST_IBM :: GLenum+gl_TEXTURE_COORD_ARRAY_LIST_IBM = 103074+gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS :: GLenum+gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C+gl_CLIENT_ACTIVE_TEXTURE :: GLenum+gl_CLIENT_ACTIVE_TEXTURE = 0x84E1+gl_MAX_GEOMETRY_VARYING_COMPONENTS_ARB :: GLenum+gl_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD+gl_OPERAND1_RGB :: GLenum+gl_OPERAND1_RGB = 0x8591+gl_POINT_SIZE_ARRAY_OES :: GLenum+gl_POINT_SIZE_ARRAY_OES = 0x8B9C+gl_GLYPH_VERTICAL_BEARING_Y_BIT_NV :: GLenum+gl_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40+gl_MODELVIEW6_ARB :: GLenum+gl_MODELVIEW6_ARB = 0x8726+gl_DEBUG_OUTPUT_SYNCHRONOUS_KHR :: GLenum+gl_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242+gl_AND_REVERSE :: GLenum+gl_AND_REVERSE = 0x1502+gl_CLAMP_TO_BORDER_NV :: GLenum+gl_CLAMP_TO_BORDER_NV = 0x812D+gl_GUILTY_CONTEXT_RESET_ARB :: GLenum+gl_GUILTY_CONTEXT_RESET_ARB = 0x8253+gl_INT64_VEC2_NV :: GLenum+gl_INT64_VEC2_NV = 0x8FE9+gl_C3F_V3F :: GLenum+gl_C3F_V3F = 0x2A24+gl_OBJECT_LINEAR_NV :: GLenum+gl_OBJECT_LINEAR_NV = 0x2401+gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT :: GLenum+gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F+gl_TEXTURE_FLOAT_COMPONENTS_NV :: GLenum+gl_TEXTURE_FLOAT_COMPONENTS_NV = 0x888C+gl_SOURCE3_ALPHA_NV :: GLenum+gl_SOURCE3_ALPHA_NV = 0x858B+gl_OPERAND2_ALPHA_EXT :: GLenum+gl_OPERAND2_ALPHA_EXT = 0x859A+gl_CON_12_ATI :: GLenum+gl_CON_12_ATI = 0x894D+gl_SYNC_STATUS :: GLenum+gl_SYNC_STATUS = 0x9114+gl_BLEND_SRC_RGB_EXT :: GLenum+gl_BLEND_SRC_RGB_EXT = 0x80C9+gl_DEBUG_SOURCE_WINDOW_SYSTEM_ARB :: GLenum+gl_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247+gl_TEXTURE_2D_MULTISAMPLE_ARRAY :: GLenum+gl_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102+gl_LEFT :: GLenum+gl_LEFT = 0x0406+gl_UNSIGNED_INT_SAMPLER_1D :: GLenum+gl_UNSIGNED_INT_SAMPLER_1D = 0x8DD1+gl_PIXEL_MAP_I_TO_R_SIZE :: GLenum+gl_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2+gl_VERTEX_ARRAY_BINDING_OES :: GLenum+gl_VERTEX_ARRAY_BINDING_OES = 0x85B5+gl_COMBINE_ALPHA_EXT :: GLenum+gl_COMBINE_ALPHA_EXT = 0x8572+gl_TRANSFORM_FEEDBACK_ATTRIBS_NV :: GLenum+gl_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E+gl_CURRENT_WEIGHT_ARB :: GLenum+gl_CURRENT_WEIGHT_ARB = 0x86A8+gl_RASTERIZER_DISCARD_NV :: GLenum+gl_RASTERIZER_DISCARD_NV = 0x8C89+gl_SRC_IN_NV :: GLenum+gl_SRC_IN_NV = 0x928A+gl_OBJECT_DISTANCE_TO_POINT_SGIS :: GLenum+gl_OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1+gl_COMPRESSED_RGB8_ETC2 :: GLenum+gl_COMPRESSED_RGB8_ETC2 = 0x9274+gl_MAX_VERTEX_SHADER_STORAGE_BLOCKS :: GLenum+gl_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6+gl_RGB_SNORM :: GLenum+gl_RGB_SNORM = 0x8F92+gl_INTENSITY4_EXT :: GLenum+gl_INTENSITY4_EXT = 0x804A+gl_R8I :: GLenum+gl_R8I = 0x8231+gl_MAX_SUBROUTINE_UNIFORM_LOCATIONS :: GLenum+gl_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8+gl_EDGEFLAG_BIT_PGI :: GLenum+gl_EDGEFLAG_BIT_PGI = 0x00040000+gl_MAX_FRAMEBUFFER_SAMPLES :: GLenum+gl_MAX_FRAMEBUFFER_SAMPLES = 0x9318+gl_SECONDARY_COLOR_ARRAY_TYPE :: GLenum+gl_SECONDARY_COLOR_ARRAY_TYPE = 0x845B+gl_ALL_BARRIER_BITS_EXT :: GLenum+gl_ALL_BARRIER_BITS_EXT = 0xFFFFFFFF+gl_TEXTURE14 :: GLenum+gl_TEXTURE14 = 0x84CE+gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER :: GLenum+gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1+gl_SRC0_ALPHA :: GLenum+gl_SRC0_ALPHA = 0x8588+gl_MODELVIEW16_ARB :: GLenum+gl_MODELVIEW16_ARB = 0x8730+gl_DARKEN_NV :: GLenum+gl_DARKEN_NV = 0x9297+gl_INTENSITY_EXT :: GLenum+gl_INTENSITY_EXT = 0x8049+gl_CURRENT_BIT :: GLenum+gl_CURRENT_BIT = 0x00000001+gl_FLOAT_RGBA32_NV :: GLenum+gl_FLOAT_RGBA32_NV = 0x888B+gl_SHADOW_ATTENUATION_EXT :: GLenum+gl_SHADOW_ATTENUATION_EXT = 0x834E+gl_COMPRESSED_SRGB8_ETC2 :: GLenum+gl_COMPRESSED_SRGB8_ETC2 = 0x9275+gl_DRAW_BUFFER15 :: GLenum+gl_DRAW_BUFFER15 = 0x8834+gl_COMPARE_R_TO_TEXTURE_ARB :: GLenum+gl_COMPARE_R_TO_TEXTURE_ARB = 0x884E+gl_R11F_G11F_B10F_EXT :: GLenum+gl_R11F_G11F_B10F_EXT = 0x8C3A+gl_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG :: GLenum+gl_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = 0x9138+gl_MULTISAMPLE_BUFFER_BIT6_QCOM :: GLenum+gl_MULTISAMPLE_BUFFER_BIT6_QCOM = 0x40000000+gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT :: GLenum+gl_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = 0x8F67+gl_FEEDBACK_BUFFER_TYPE :: GLenum+gl_FEEDBACK_BUFFER_TYPE = 0x0DF2+gl_IMAGE_BINDING_FORMAT_EXT :: GLenum+gl_IMAGE_BINDING_FORMAT_EXT = 0x906E+gl_PROXY_TEXTURE_2D_EXT :: GLenum+gl_PROXY_TEXTURE_2D_EXT = 0x8064+gl_DEPTH32F_STENCIL8 :: GLenum+gl_DEPTH32F_STENCIL8 = 0x8CAD+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS :: GLenum+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B+gl_TESS_EVALUATION_SUBROUTINE :: GLenum+gl_TESS_EVALUATION_SUBROUTINE = 0x92EA+gl_TEXTURE_LOD_BIAS_T_SGIX :: GLenum+gl_TEXTURE_LOD_BIAS_T_SGIX = 0x818F+gl_COVERAGE_COMPONENT4_NV :: GLenum+gl_COVERAGE_COMPONENT4_NV = 0x8ED1+gl_TEXTURE6_ARB :: GLenum+gl_TEXTURE6_ARB = 0x84C6+gl_MAX_3D_TEXTURE_SIZE_EXT :: GLenum+gl_MAX_3D_TEXTURE_SIZE_EXT = 0x8073+gl_TEXTURE_RESIDENT :: GLenum+gl_TEXTURE_RESIDENT = 0x8067+gl_FOG_COORD_ARRAY_TYPE :: GLenum+gl_FOG_COORD_ARRAY_TYPE = 0x8454+gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR :: GLenum+gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D+gl_QUERY_BY_REGION_WAIT :: GLenum+gl_QUERY_BY_REGION_WAIT = 0x8E15+gl_SLUMINANCE_ALPHA :: GLenum+gl_SLUMINANCE_ALPHA = 0x8C44+gl_INT_SAMPLER_CUBE :: GLenum+gl_INT_SAMPLER_CUBE = 0x8DCC+gl_UNSIGNED_SHORT_4_4_4_4_REV :: GLenum+gl_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365+gl_MAX_PROGRAM_NATIVE_PARAMETERS_ARB :: GLenum+gl_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB+gl_LUMINANCE4_ALPHA4_EXT :: GLenum+gl_LUMINANCE4_ALPHA4_EXT = 0x8043+gl_OPERAND0_RGB_ARB :: GLenum+gl_OPERAND0_RGB_ARB = 0x8590+gl_PROXY_TEXTURE_2D_STACK_MESAX :: GLenum+gl_PROXY_TEXTURE_2D_STACK_MESAX = 0x875C+gl_TEXTURE_3D_EXT :: GLenum+gl_TEXTURE_3D_EXT = 0x806F+gl_STREAM_RASTERIZATION_AMD :: GLenum+gl_STREAM_RASTERIZATION_AMD = 0x91A0+gl_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT :: GLenum+gl_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6+gl_DEPTH_COMPONENT32_SGIX :: GLenum+gl_DEPTH_COMPONENT32_SGIX = 0x81A7+gl_LINE_STRIP :: GLenum+gl_LINE_STRIP = 0x0003+gl_CON_25_ATI :: GLenum+gl_CON_25_ATI = 0x895A+gl_SLIM10U_SGIX :: GLenum+gl_SLIM10U_SGIX = 0x831E+gl_COLOR_INDEX2_EXT :: GLenum+gl_COLOR_INDEX2_EXT = 0x80E3+gl_CON_22_ATI :: GLenum+gl_CON_22_ATI = 0x8957+gl_DEFORMATIONS_MASK_SGIX :: GLenum+gl_DEFORMATIONS_MASK_SGIX = 0x8196+gl_INVERSE_TRANSPOSE_NV :: GLenum+gl_INVERSE_TRANSPOSE_NV = 0x862D+gl_MULT :: GLenum+gl_MULT = 0x0103+gl_ATTRIB_ARRAY_STRIDE_NV :: GLenum+gl_ATTRIB_ARRAY_STRIDE_NV = 0x8624+gl_RGBA16_SNORM :: GLenum+gl_RGBA16_SNORM = 0x8F9B+gl_MIN_SAMPLE_SHADING_VALUE :: GLenum+gl_MIN_SAMPLE_SHADING_VALUE = 0x8C37+gl_RG8_SNORM :: GLenum+gl_RG8_SNORM = 0x8F95+gl_OBJECT_ATTACHED_OBJECTS_ARB :: GLenum+gl_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85+gl_UNPACK_SKIP_PIXELS_EXT :: GLenum+gl_UNPACK_SKIP_PIXELS_EXT = 0x0CF4+gl_ACTIVE_VERTEX_UNITS_ARB :: GLenum+gl_ACTIVE_VERTEX_UNITS_ARB = 0x86A5+gl_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT :: GLenum+gl_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5+gl_INTERNALFORMAT_RED_TYPE :: GLenum+gl_INTERNALFORMAT_RED_TYPE = 0x8278+gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV :: GLenum+gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0+gl_FLOAT_RGB_NV :: GLenum+gl_FLOAT_RGB_NV = 0x8882+gl_MAP_FLUSH_EXPLICIT_BIT_EXT :: GLenum+gl_MAP_FLUSH_EXPLICIT_BIT_EXT = 0x0010+gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8+gl_HALF_FLOAT_NV :: GLenum+gl_HALF_FLOAT_NV = 0x140B+gl_DEPTH_STENCIL :: GLenum+gl_DEPTH_STENCIL = 0x84F9+gl_PROGRAM_ERROR_POSITION_ARB :: GLenum+gl_PROGRAM_ERROR_POSITION_ARB = 0x864B+gl_TRACE_ERRORS_BIT_MESA :: GLenum+gl_TRACE_ERRORS_BIT_MESA = 0x0020+gl_STENCIL_OP_VALUE_AMD :: GLenum+gl_STENCIL_OP_VALUE_AMD = 0x874C+gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6+gl_COMPRESSED_SIGNED_R11_EAC :: GLenum+gl_COMPRESSED_SIGNED_R11_EAC = 0x9271+gl_FLOAT_MAT3x2 :: GLenum+gl_FLOAT_MAT3x2 = 0x8B67+gl_PROGRAM_ERROR_STRING_NV :: GLenum+gl_PROGRAM_ERROR_STRING_NV = 0x8874+gl_VERTEX_ID_NV :: GLenum+gl_VERTEX_ID_NV = 0x8C7B+gl_VERTEX_BINDING_OFFSET :: GLenum+gl_VERTEX_BINDING_OFFSET = 0x82D7+gl_RESTART_SUN :: GLenum+gl_RESTART_SUN = 0x0001+gl_INT_IMAGE_CUBE_MAP_ARRAY_EXT :: GLenum+gl_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F+gl_COLOR_INDEX :: GLenum+gl_COLOR_INDEX = 0x1900+gl_TEXTURE31_ARB :: GLenum+gl_TEXTURE31_ARB = 0x84DF+gl_MAX_DRAW_BUFFERS_ARB :: GLenum+gl_MAX_DRAW_BUFFERS_ARB = 0x8824+gl_MAX_IMAGE_UNITS :: GLenum+gl_MAX_IMAGE_UNITS = 0x8F38+gl_OUTPUT_TEXTURE_COORD4_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1+gl_COLOR_ARRAY_POINTER :: GLenum+gl_COLOR_ARRAY_POINTER = 0x8090+gl_MAX_COLOR_TEXTURE_SAMPLES :: GLenum+gl_MAX_COLOR_TEXTURE_SAMPLES = 0x910E+gl_SIGNED_NEGATE_NV :: GLenum+gl_SIGNED_NEGATE_NV = 0x853D+gl_MAX_GEOMETRY_UNIFORM_BLOCKS :: GLenum+gl_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C+gl_DEBUG_TYPE_ERROR :: GLenum+gl_DEBUG_TYPE_ERROR = 0x824C+gl_HISTOGRAM_RED_SIZE_EXT :: GLenum+gl_HISTOGRAM_RED_SIZE_EXT = 0x8028+gl_SECONDARY_COLOR_ARRAY_POINTER_EXT :: GLenum+gl_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D+gl_UNSIGNALED :: GLenum+gl_UNSIGNALED = 0x9118+gl_CON_8_ATI :: GLenum+gl_CON_8_ATI = 0x8949+gl_COMPRESSED_RED :: GLenum+gl_COMPRESSED_RED = 0x8225+gl_RGBA2_EXT :: GLenum+gl_RGBA2_EXT = 0x8055+gl_T2F_C3F_V3F :: GLenum+gl_T2F_C3F_V3F = 0x2A2A+gl_SECONDARY_COLOR_ARRAY :: GLenum+gl_SECONDARY_COLOR_ARRAY = 0x845E+gl_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT :: GLenum+gl_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD+gl_COLOR3_BIT_PGI :: GLenum+gl_COLOR3_BIT_PGI = 0x00010000+gl_CLIP_DISTANCE3 :: GLenum+gl_CLIP_DISTANCE3 = 0x3003+gl_TEXTURE_SWIZZLE_G_EXT :: GLenum+gl_TEXTURE_SWIZZLE_G_EXT = 0x8E43+gl_SAMPLER_CUBE_MAP_ARRAY :: GLenum+gl_SAMPLER_CUBE_MAP_ARRAY = 0x900C+gl_4PASS_3_SGIS :: GLenum+gl_4PASS_3_SGIS = 0x80A7+gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7+gl_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT :: GLenum+gl_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = 0x92D5+gl_VERTEX_ARRAY_STRIDE :: GLenum+gl_VERTEX_ARRAY_STRIDE = 0x807C+gl_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS :: GLenum+gl_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314+gl_TEXTURE_SWIZZLE_A :: GLenum+gl_TEXTURE_SWIZZLE_A = 0x8E45+gl_DOUBLE_MAT3x2 :: GLenum+gl_DOUBLE_MAT3x2 = 0x8F4B+gl_TEXTURE_UPDATE_BARRIER_BIT_EXT :: GLenum+gl_TEXTURE_UPDATE_BARRIER_BIT_EXT = 0x00000100+gl_SHADING_LANGUAGE_VERSION :: GLenum+gl_SHADING_LANGUAGE_VERSION = 0x8B8C+gl_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP :: GLenum+gl_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162+gl_FIXED_ONLY_ARB :: GLenum+gl_FIXED_ONLY_ARB = 0x891D+gl_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI :: GLenum+gl_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973+gl_CON_19_ATI :: GLenum+gl_CON_19_ATI = 0x8954+gl_CONTEXT_RELEASE_BEHAVIOR :: GLenum+gl_CONTEXT_RELEASE_BEHAVIOR = 0x82FB+gl_ARRAY_BUFFER_BINDING :: GLenum+gl_ARRAY_BUFFER_BINDING = 0x8894+gl_UNPACK_COLORSPACE_CONVERSION_WEBGL :: GLenum+gl_UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243+gl_CONVEX_HULL_NV :: GLenum+gl_CONVEX_HULL_NV = 0x908B+gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB :: GLenum+gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D+gl_FIRST_TO_REST_NV :: GLenum+gl_FIRST_TO_REST_NV = 0x90AF+gl_MAX_TEXTURE_COORDS :: GLenum+gl_MAX_TEXTURE_COORDS = 0x8871+gl_TEXTURE_DEPTH :: GLenum+gl_TEXTURE_DEPTH = 0x8071+gl_LIGHT0 :: GLenum+gl_LIGHT0 = 0x4000+gl_VERTEX_STREAM4_ATI :: GLenum+gl_VERTEX_STREAM4_ATI = 0x8770+gl_POST_COLOR_MATRIX_ALPHA_BIAS_SGI :: GLenum+gl_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB+gl_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS :: GLenum+gl_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC+gl_SAMPLER_2D_RECT_SHADOW_ARB :: GLenum+gl_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64+gl_DRAW_BUFFER1_ATI :: GLenum+gl_DRAW_BUFFER1_ATI = 0x8826+gl_SAMPLE_BUFFERS_SGIS :: GLenum+gl_SAMPLE_BUFFERS_SGIS = 0x80A8+gl_SIGNED_LUMINANCE_ALPHA_NV :: GLenum+gl_SIGNED_LUMINANCE_ALPHA_NV = 0x8703+gl_R16_SNORM :: GLenum+gl_R16_SNORM = 0x8F98+gl_DRAW_BUFFER13_ATI :: GLenum+gl_DRAW_BUFFER13_ATI = 0x8832+gl_TEXTURE_LIGHT_EXT :: GLenum+gl_TEXTURE_LIGHT_EXT = 0x8350+gl_BOOL_ARB :: GLenum+gl_BOOL_ARB = 0x8B56+gl_BGRA_IMG :: GLenum+gl_BGRA_IMG = 0x80E1+gl_SRGB_ALPHA_EXT :: GLenum+gl_SRGB_ALPHA_EXT = 0x8C42+gl_RELATIVE_ROUNDED_RECT2_NV :: GLenum+gl_RELATIVE_ROUNDED_RECT2_NV = 0xEB+gl_LUMINANCE16UI_EXT :: GLenum+gl_LUMINANCE16UI_EXT = 0x8D7A+gl_MATRIX7_NV :: GLenum+gl_MATRIX7_NV = 0x8637+gl_INTENSITY16 :: GLenum+gl_INTENSITY16 = 0x804D+gl_DRAW_INDIRECT_BUFFER :: GLenum+gl_DRAW_INDIRECT_BUFFER = 0x8F3F+gl_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM :: GLenum+gl_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085+gl_MAX_IMAGE_SAMPLES_EXT :: GLenum+gl_MAX_IMAGE_SAMPLES_EXT = 0x906D+gl_DEBUG_SOURCE_OTHER_ARB :: GLenum+gl_DEBUG_SOURCE_OTHER_ARB = 0x824B+gl_POINT_BIT :: GLenum+gl_POINT_BIT = 0x00000002+gl_MAX_VARYING_VECTORS :: GLenum+gl_MAX_VARYING_VECTORS = 0x8DFC+gl_SUBTRACT_ARB :: GLenum+gl_SUBTRACT_ARB = 0x84E7+gl_INT_SAMPLER_BUFFER_AMD :: GLenum+gl_INT_SAMPLER_BUFFER_AMD = 0x9002+gl_SAMPLE_MASK_INVERT_SGIS :: GLenum+gl_SAMPLE_MASK_INVERT_SGIS = 0x80AB+gl_POINT_DISTANCE_ATTENUATION_ARB :: GLenum+gl_POINT_DISTANCE_ATTENUATION_ARB = 0x8129+gl_GREEN_BIT_ATI :: GLenum+gl_GREEN_BIT_ATI = 0x00000002+gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT :: GLenum+gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA+gl_FRAMEBUFFER :: GLenum+gl_FRAMEBUFFER = 0x8D40+gl_TEXTURE_COMPRESSION_HINT_ARB :: GLenum+gl_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF+gl_PROGRAM_INPUT :: GLenum+gl_PROGRAM_INPUT = 0x92E3+gl_SCREEN_NV :: GLenum+gl_SCREEN_NV = 0x9295+gl_TEXTURE_CUBE_MAP_ARRAY_EXT :: GLenum+gl_TEXTURE_CUBE_MAP_ARRAY_EXT = 0x9009+gl_FENCE_STATUS_NV :: GLenum+gl_FENCE_STATUS_NV = 0x84F3+gl_MAX_BINDABLE_UNIFORM_SIZE_EXT :: GLenum+gl_MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED+gl_PACK_COMPRESSED_BLOCK_WIDTH :: GLenum+gl_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B+gl_RELATIVE_VERTICAL_LINE_TO_NV :: GLenum+gl_RELATIVE_VERTICAL_LINE_TO_NV = 0x09+gl_POST_COLOR_MATRIX_COLOR_TABLE_SGI :: GLenum+gl_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2+gl_ALPHA_INTEGER :: GLenum+gl_ALPHA_INTEGER = 0x8D97+gl_MAX_SUBROUTINES :: GLenum+gl_MAX_SUBROUTINES = 0x8DE7+gl_UNSIGNED_INT_VEC3_EXT :: GLenum+gl_UNSIGNED_INT_VEC3_EXT = 0x8DC7+gl_ELEMENT_ARRAY_ATI :: GLenum+gl_ELEMENT_ARRAY_ATI = 0x8768+gl_ONE_MINUS_CONSTANT_COLOR :: GLenum+gl_ONE_MINUS_CONSTANT_COLOR = 0x8002+gl_MODELVIEW18_ARB :: GLenum+gl_MODELVIEW18_ARB = 0x8732+gl_CONSTANT_ARB :: GLenum+gl_CONSTANT_ARB = 0x8576+gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV :: GLenum+gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3+gl_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL :: GLenum+gl_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD+gl_DRAW_BUFFER_EXT :: GLenum+gl_DRAW_BUFFER_EXT = 0x0C01+gl_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT :: GLenum+gl_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = 0x9068+gl_FLOAT_MAT2x4_NV :: GLenum+gl_FLOAT_MAT2x4_NV = 0x8B66+gl_CULL_VERTEX_EXT :: GLenum+gl_CULL_VERTEX_EXT = 0x81AA+gl_MATRIX_PALETTE_ARB :: GLenum+gl_MATRIX_PALETTE_ARB = 0x8840+gl_VERTEX_PROGRAM_POINT_SIZE_ARB :: GLenum+gl_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642+gl_FLOAT_RG16_NV :: GLenum+gl_FLOAT_RG16_NV = 0x8886+gl_CON_1_ATI :: GLenum+gl_CON_1_ATI = 0x8942+gl_BLEND_EQUATION_RGB :: GLenum+gl_BLEND_EQUATION_RGB = 0x8009+gl_OP_CROSS_PRODUCT_EXT :: GLenum+gl_OP_CROSS_PRODUCT_EXT = 0x8797+gl_VERTEX_WEIGHT_ARRAY_STRIDE_EXT :: GLenum+gl_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F+gl_TESS_CONTROL_PROGRAM_NV :: GLenum+gl_TESS_CONTROL_PROGRAM_NV = 0x891E+gl_FIXED_ONLY :: GLenum+gl_FIXED_ONLY = 0x891D+gl_4PASS_1_EXT :: GLenum+gl_4PASS_1_EXT = 0x80A5+gl_SAMPLER_2D_MULTISAMPLE_ARRAY_OES :: GLenum+gl_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910B+gl_UNSIGNED_INT_8_8_8_8_REV :: GLenum+gl_UNSIGNED_INT_8_8_8_8_REV = 0x8367+gl_UNIFORM_BLOCK_ACTIVE_UNIFORMS :: GLenum+gl_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42+gl_SLUMINANCE_ALPHA_NV :: GLenum+gl_SLUMINANCE_ALPHA_NV = 0x8C44+gl_PROXY_TEXTURE_CUBE_MAP :: GLenum+gl_PROXY_TEXTURE_CUBE_MAP = 0x851B+gl_IMAGE_CLASS_1_X_32 :: GLenum+gl_IMAGE_CLASS_1_X_32 = 0x82BB+gl_STACK_OVERFLOW_KHR :: GLenum+gl_STACK_OVERFLOW_KHR = 0x0503+gl_COMPRESSED_RGBA_ASTC_5x5x5_OES :: GLenum+gl_COMPRESSED_RGBA_ASTC_5x5x5_OES = 0x93C6+gl_CLOSE_PATH_NV :: GLenum+gl_CLOSE_PATH_NV = 0x00+gl_PIXEL_COUNT_AVAILABLE_NV :: GLenum+gl_PIXEL_COUNT_AVAILABLE_NV = 0x8867+gl_PATH_DASH_OFFSET_NV :: GLenum+gl_PATH_DASH_OFFSET_NV = 0x907E+gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV :: GLenum+gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = 0x8C8A+gl_GLOBAL_ALPHA_FACTOR_SUN :: GLenum+gl_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA+gl_INDEX_ARRAY_COUNT_EXT :: GLenum+gl_INDEX_ARRAY_COUNT_EXT = 0x8087+gl_PACK_RESAMPLE_OML :: GLenum+gl_PACK_RESAMPLE_OML = 0x8984+gl_LAYER_NV :: GLenum+gl_LAYER_NV = 0x8DAA+gl_DRAW_FRAMEBUFFER :: GLenum+gl_DRAW_FRAMEBUFFER = 0x8CA9+gl_LINEAR_DETAIL_ALPHA_SGIS :: GLenum+gl_LINEAR_DETAIL_ALPHA_SGIS = 0x8098+gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT :: GLenum+gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89+gl_EDGE_FLAG_ARRAY :: GLenum+gl_EDGE_FLAG_ARRAY = 0x8079+gl_TEXTURE_DEFORMATION_BIT_SGIX :: GLenum+gl_TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001+gl_SOURCE1_RGB :: GLenum+gl_SOURCE1_RGB = 0x8581+gl_TEXTURE_3D_OES :: GLenum+gl_TEXTURE_3D_OES = 0x806F+gl_ALLOW_DRAW_OBJ_HINT_PGI :: GLenum+gl_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E+gl_PATH_STROKE_BOUNDING_BOX_NV :: GLenum+gl_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2+gl_HINT_BIT :: GLenum+gl_HINT_BIT = 0x00008000+gl_VERTICAL_LINE_TO_NV :: GLenum+gl_VERTICAL_LINE_TO_NV = 0x08+gl_MAX_TEXTURE_BUFFER_SIZE_EXT :: GLenum+gl_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B+gl_MAX_DRAW_BUFFERS_ATI :: GLenum+gl_MAX_DRAW_BUFFERS_ATI = 0x8824+gl_R8_EXT :: GLenum+gl_R8_EXT = 0x8229+gl_TEXTURE_COVERAGE_SAMPLES_NV :: GLenum+gl_TEXTURE_COVERAGE_SAMPLES_NV = 0x9045+gl_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV :: GLenum+gl_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025+gl_REFERENCED_BY_VERTEX_SHADER :: GLenum+gl_REFERENCED_BY_VERTEX_SHADER = 0x9306+gl_FLOAT_RG32_NV :: GLenum+gl_FLOAT_RG32_NV = 0x8887+gl_TESSELLATION_FACTOR_AMD :: GLenum+gl_TESSELLATION_FACTOR_AMD = 0x9005+gl_MAX_PROGRAM_TEMPORARIES_ARB :: GLenum+gl_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5+gl_COMPRESSED_RGBA_ASTC_12x12_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD+gl_PROJECTION :: GLenum+gl_PROJECTION = 0x1701+gl_S :: GLenum+gl_S = 0x2000+gl_ALPHA_FLOAT32_APPLE :: GLenum+gl_ALPHA_FLOAT32_APPLE = 0x8816+gl_LUMINANCE8_ALPHA8_OES :: GLenum+gl_LUMINANCE8_ALPHA8_OES = 0x8045+gl_4_BYTES_NV :: GLenum+gl_4_BYTES_NV = 0x1409+gl_CONST_EYE_NV :: GLenum+gl_CONST_EYE_NV = 0x86E5+gl_MAT_SPECULAR_BIT_PGI :: GLenum+gl_MAT_SPECULAR_BIT_PGI = 0x04000000+gl_TEXTURE1_ARB :: GLenum+gl_TEXTURE1_ARB = 0x84C1+gl_LINE_WIDTH_GRANULARITY :: GLenum+gl_LINE_WIDTH_GRANULARITY = 0x0B23+gl_DRAW_INDIRECT_BUFFER_BINDING :: GLenum+gl_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43+gl_BLEND_EQUATION :: GLenum+gl_BLEND_EQUATION = 0x8009+gl_RGBA8UI_EXT :: GLenum+gl_RGBA8UI_EXT = 0x8D7C+gl_NORMALIZE :: GLenum+gl_NORMALIZE = 0x0BA1+gl_LUMINANCE_ALPHA_FLOAT16_APPLE :: GLenum+gl_LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F+gl_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX :: GLenum+gl_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX = 0x9049+gl_INVERSE_NV :: GLenum+gl_INVERSE_NV = 0x862B+gl_TEXTURE_SWIZZLE_A_EXT :: GLenum+gl_TEXTURE_SWIZZLE_A_EXT = 0x8E45+gl_DEPTH24_STENCIL8_OES :: GLenum+gl_DEPTH24_STENCIL8_OES = 0x88F0+gl_UNPACK_COMPRESSED_BLOCK_HEIGHT :: GLenum+gl_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128+gl_RGBA32UI :: GLenum+gl_RGBA32UI = 0x8D70+gl_MAP1_COLOR_4 :: GLenum+gl_MAP1_COLOR_4 = 0x0D90+gl_MAX_ELEMENTS_VERTICES :: GLenum+gl_MAX_ELEMENTS_VERTICES = 0x80E8+gl_CLIENT_VERTEX_ARRAY_BIT :: GLenum+gl_CLIENT_VERTEX_ARRAY_BIT = 0x00000002+gl_TEXTURE_GREEN_TYPE :: GLenum+gl_TEXTURE_GREEN_TYPE = 0x8C11+gl_TEXTURE_BINDING_BUFFER_ARB :: GLenum+gl_TEXTURE_BINDING_BUFFER_ARB = 0x8C2C+gl_MAX_RECTANGLE_TEXTURE_SIZE_NV :: GLenum+gl_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8+gl_INTERNALFORMAT_GREEN_TYPE :: GLenum+gl_INTERNALFORMAT_GREEN_TYPE = 0x8279+gl_OP_ADD_EXT :: GLenum+gl_OP_ADD_EXT = 0x8787+gl_UNSIGNED_INT_24_8 :: GLenum+gl_UNSIGNED_INT_24_8 = 0x84FA+gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS :: GLenum+gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32+gl_3D_COLOR :: GLenum+gl_3D_COLOR = 0x0602+gl_MODULATE_COLOR_IMG :: GLenum+gl_MODULATE_COLOR_IMG = 0x8C04+gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518+gl_TEXTURE_CLIPMAP_FRAME_SGIX :: GLenum+gl_TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172+gl_NORMAL_ARRAY_STRIDE_EXT :: GLenum+gl_NORMAL_ARRAY_STRIDE_EXT = 0x807F+gl_R16 :: GLenum+gl_R16 = 0x822A+gl_PIXEL_PACK_BUFFER :: GLenum+gl_PIXEL_PACK_BUFFER = 0x88EB+gl_SOFTLIGHT_KHR :: GLenum+gl_SOFTLIGHT_KHR = 0x929C+gl_POST_CONVOLUTION_BLUE_SCALE :: GLenum+gl_POST_CONVOLUTION_BLUE_SCALE = 0x801E+gl_INTERLEAVED_ATTRIBS_NV :: GLenum+gl_INTERLEAVED_ATTRIBS_NV = 0x8C8C+gl_COLOR_ATTACHMENT8 :: GLenum+gl_COLOR_ATTACHMENT8 = 0x8CE8+gl_DEBUG_TYPE_PUSH_GROUP_KHR :: GLenum+gl_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269+gl_PERFQUERY_COUNTER_DATA_UINT64_INTEL :: GLenum+gl_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9+gl_MOV_ATI :: GLenum+gl_MOV_ATI = 0x8961+gl_PROGRAM_SEPARABLE :: GLenum+gl_PROGRAM_SEPARABLE = 0x8258+gl_REG_20_ATI :: GLenum+gl_REG_20_ATI = 0x8935+gl_DOUBLE_VEC3 :: GLenum+gl_DOUBLE_VEC3 = 0x8FFD+gl_8X_BIT_ATI :: GLenum+gl_8X_BIT_ATI = 0x00000004+gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: GLenum+gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C+gl_MATRIX26_ARB :: GLenum+gl_MATRIX26_ARB = 0x88DA+gl_PROXY_TEXTURE_RECTANGLE_ARB :: GLenum+gl_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7+gl_TRANSFORM_HINT_APPLE :: GLenum+gl_TRANSFORM_HINT_APPLE = 0x85B1+gl_UNPACK_ROW_BYTES_APPLE :: GLenum+gl_UNPACK_ROW_BYTES_APPLE = 0x8A16+gl_POST_COLOR_MATRIX_ALPHA_SCALE_SGI :: GLenum+gl_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7+gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB :: GLenum+gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F+gl_ONE_MINUS_CONSTANT_COLOR_EXT :: GLenum+gl_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002+gl_TEXTURE_BINDING_CUBE_MAP_OES :: GLenum+gl_TEXTURE_BINDING_CUBE_MAP_OES = 0x8514+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT :: GLenum+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E+gl_VERTEX_ARRAY_STORAGE_HINT_APPLE :: GLenum+gl_VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F+gl_VERTEX_BINDING_BUFFER :: GLenum+gl_VERTEX_BINDING_BUFFER = 0x8F4F+gl_FRAGMENT_LIGHT0_SGIX :: GLenum+gl_FRAGMENT_LIGHT0_SGIX = 0x840C+gl_GLYPH_HORIZONTAL_BEARING_X_BIT_NV :: GLenum+gl_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04+gl_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT :: GLenum+gl_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE+gl_SRC2_RGB :: GLenum+gl_SRC2_RGB = 0x8582+gl_NUM_COMPRESSED_TEXTURE_FORMATS :: GLenum+gl_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2+gl_OUTPUT_TEXTURE_COORD2_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD2_EXT = 0x879F+gl_DEPTH_TEXTURE_MODE :: GLenum+gl_DEPTH_TEXTURE_MODE = 0x884B+gl_SAMPLE_PATTERN_EXT :: GLenum+gl_SAMPLE_PATTERN_EXT = 0x80AC+gl_ELEMENT_ARRAY_APPLE :: GLenum+gl_ELEMENT_ARRAY_APPLE = 0x8A0C+gl_MAX_FOG_FUNC_POINTS_SGIS :: GLenum+gl_MAX_FOG_FUNC_POINTS_SGIS = 0x812C+gl_TEXTURE_APPLICATION_MODE_EXT :: GLenum+gl_TEXTURE_APPLICATION_MODE_EXT = 0x834F+gl_COLOR_ARRAY_SIZE_EXT :: GLenum+gl_COLOR_ARRAY_SIZE_EXT = 0x8081+gl_VERTEX_SOURCE_ATI :: GLenum+gl_VERTEX_SOURCE_ATI = 0x8774+gl_MAP2_VERTEX_ATTRIB3_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673+gl_LIGHTEN_KHR :: GLenum+gl_LIGHTEN_KHR = 0x9298+gl_INT_SAMPLER_1D_ARRAY :: GLenum+gl_INT_SAMPLER_1D_ARRAY = 0x8DCE+gl_UNSIGNED_INT_10F_11F_11F_REV_EXT :: GLenum+gl_UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B+gl_LUMINANCE8 :: GLenum+gl_LUMINANCE8 = 0x8040+gl_ACCUM_ALPHA_BITS :: GLenum+gl_ACCUM_ALPHA_BITS = 0x0D5B+gl_MINMAX_FORMAT :: GLenum+gl_MINMAX_FORMAT = 0x802F+gl_NOOP :: GLenum+gl_NOOP = 0x1505+gl_READ_FRAMEBUFFER_EXT :: GLenum+gl_READ_FRAMEBUFFER_EXT = 0x8CA8+gl_SHADER :: GLenum+gl_SHADER = 0x82E1+gl_UNSIGNED_INT_10_10_10_2_OES :: GLenum+gl_UNSIGNED_INT_10_10_10_2_OES = 0x8DF6+gl_TEXTURE_COMPRESSED_BLOCK_WIDTH :: GLenum+gl_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1+gl_DEBUG_OUTPUT_KHR :: GLenum+gl_DEBUG_OUTPUT_KHR = 0x92E0+gl_SOURCE0_ALPHA_ARB :: GLenum+gl_SOURCE0_ALPHA_ARB = 0x8588+gl_SAMPLER_1D_ARRAY_EXT :: GLenum+gl_SAMPLER_1D_ARRAY_EXT = 0x8DC0+gl_T2F_V3F :: GLenum+gl_T2F_V3F = 0x2A27+gl_SAMPLE_MASK_SGIS :: GLenum+gl_SAMPLE_MASK_SGIS = 0x80A0+gl_CIRCULAR_TANGENT_ARC_TO_NV :: GLenum+gl_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC+gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS :: GLenum+gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83+gl_MAX_DEBUG_LOGGED_MESSAGES :: GLenum+gl_MAX_DEBUG_LOGGED_MESSAGES = 0x9144+gl_SOURCE1_ALPHA :: GLenum+gl_SOURCE1_ALPHA = 0x8589+gl_RGB_422_APPLE :: GLenum+gl_RGB_422_APPLE = 0x8A1F+gl_COLOR_TABLE :: GLenum+gl_COLOR_TABLE = 0x80D0+gl_MAP1_TEXTURE_COORD_3 :: GLenum+gl_MAP1_TEXTURE_COORD_3 = 0x0D95+gl_DEBUG_SEVERITY_HIGH_AMD :: GLenum+gl_DEBUG_SEVERITY_HIGH_AMD = 0x9146+gl_UNSIGNED_INT :: GLenum+gl_UNSIGNED_INT = 0x1405+gl_VERTEX_PROGRAM_CALLBACK_MESA :: GLenum+gl_VERTEX_PROGRAM_CALLBACK_MESA = 0x8BB5+gl_BLOCK_INDEX :: GLenum+gl_BLOCK_INDEX = 0x92FD+gl_FLOAT :: GLenum+gl_FLOAT = 0x1406+gl_TRACE_PIXELS_BIT_MESA :: GLenum+gl_TRACE_PIXELS_BIT_MESA = 0x0010+gl_BACK :: GLenum+gl_BACK = 0x0405+gl_PATH_JOIN_STYLE_NV :: GLenum+gl_PATH_JOIN_STYLE_NV = 0x9079+gl_LUMINANCE_ALPHA16I_EXT :: GLenum+gl_LUMINANCE_ALPHA16I_EXT = 0x8D8D+gl_FLOAT_MAT2 :: GLenum+gl_FLOAT_MAT2 = 0x8B5A+gl_SIGNED_IDENTITY_NV :: GLenum+gl_SIGNED_IDENTITY_NV = 0x853C+gl_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA :: GLenum+gl_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA = 0x8BB3+gl_DEPTH_PASS_INSTRUMENT_MAX_SGIX :: GLenum+gl_DEPTH_PASS_INSTRUMENT_MAX_SGIX = 0x8312+gl_CLIP_DEPTH_MODE :: GLenum+gl_CLIP_DEPTH_MODE = 0x935D+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = 0x8D6C+gl_CULL_FACE :: GLenum+gl_CULL_FACE = 0x0B44+gl_DETAIL_TEXTURE_LEVEL_SGIS :: GLenum+gl_DETAIL_TEXTURE_LEVEL_SGIS = 0x809A+gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB :: GLenum+gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243+gl_PACK_SKIP_ROWS :: GLenum+gl_PACK_SKIP_ROWS = 0x0D03+gl_COEFF :: GLenum+gl_COEFF = 0x0A00+gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT :: GLenum+gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E+gl_NUM_INSTRUCTIONS_PER_PASS_ATI :: GLenum+gl_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971+gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB :: GLenum+gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1+gl_RGBA8 :: GLenum+gl_RGBA8 = 0x8058+gl_TESS_GEN_VERTEX_ORDER :: GLenum+gl_TESS_GEN_VERTEX_ORDER = 0x8E78+gl_TEXTURE_CUBE_MAP :: GLenum+gl_TEXTURE_CUBE_MAP = 0x8513+gl_VERTEX_PRECLIP_HINT_SGIX :: GLenum+gl_VERTEX_PRECLIP_HINT_SGIX = 0x83EF+gl_NUM_SHADING_LANGUAGE_VERSIONS :: GLenum+gl_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9+gl_OUTPUT_TEXTURE_COORD9_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6+gl_MAX_PROGRAM_GENERIC_RESULTS_NV :: GLenum+gl_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6+gl_COLOR_ATTACHMENT7_NV :: GLenum+gl_COLOR_ATTACHMENT7_NV = 0x8CE7+gl_OUT_OF_MEMORY :: GLenum+gl_OUT_OF_MEMORY = 0x0505+gl_TEXTURE_COORD_ARRAY_POINTER_EXT :: GLenum+gl_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092+gl_FLOAT_MAT2_ARB :: GLenum+gl_FLOAT_MAT2_ARB = 0x8B5A+gl_COMBINER_AB_DOT_PRODUCT_NV :: GLenum+gl_COMBINER_AB_DOT_PRODUCT_NV = 0x8545+gl_INDEX_ARRAY_POINTER_EXT :: GLenum+gl_INDEX_ARRAY_POINTER_EXT = 0x8091+gl_WRITE_PIXEL_DATA_RANGE_POINTER_NV :: GLenum+gl_WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C+gl_3D :: GLenum+gl_3D = 0x0601+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = 0x93E7+gl_UPPER_LEFT :: GLenum+gl_UPPER_LEFT = 0x8CA2+gl_IMAGE_1D_ARRAY_EXT :: GLenum+gl_IMAGE_1D_ARRAY_EXT = 0x9052+gl_GREEN :: GLenum+gl_GREEN = 0x1904+gl_RGB12 :: GLenum+gl_RGB12 = 0x8053+gl_GEOMETRY_DEFORMATION_BIT_SGIX :: GLenum+gl_GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002+gl_LUMINANCE_ALPHA_FLOAT32_ATI :: GLenum+gl_LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819+gl_INT_SAMPLER_CUBE_MAP_ARRAY :: GLenum+gl_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E+gl_EVAL_TRIANGULAR_2D_NV :: GLenum+gl_EVAL_TRIANGULAR_2D_NV = 0x86C1+gl_QUERY_BY_REGION_WAIT_INVERTED :: GLenum+gl_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19+gl_CONTEXT_ROBUST_ACCESS_KHR :: GLenum+gl_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3+gl_STREAM_READ_ARB :: GLenum+gl_STREAM_READ_ARB = 0x88E1+gl_INT_IMAGE_1D_ARRAY_EXT :: GLenum+gl_INT_IMAGE_1D_ARRAY_EXT = 0x905D+gl_QUERY_NO_WAIT_INVERTED :: GLenum+gl_QUERY_NO_WAIT_INVERTED = 0x8E18+gl_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT :: GLenum+gl_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF+gl_COLOR_ATTACHMENT4_EXT :: GLenum+gl_COLOR_ATTACHMENT4_EXT = 0x8CE4+gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR :: GLenum+gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E+gl_LOSE_CONTEXT_ON_RESET :: GLenum+gl_LOSE_CONTEXT_ON_RESET = 0x8252+gl_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM :: GLenum+gl_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084+gl_REPLACEMENT_CODE_SUN :: GLenum+gl_REPLACEMENT_CODE_SUN = 0x81D8+gl_422_REV_EXT :: GLenum+gl_422_REV_EXT = 0x80CD+gl_COMPILE_STATUS :: GLenum+gl_COMPILE_STATUS = 0x8B81+gl_VERTEX_ATTRIB_MAP1_COEFF_APPLE :: GLenum+gl_VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03+gl_TRANSPOSE_COLOR_MATRIX :: GLenum+gl_TRANSPOSE_COLOR_MATRIX = 0x84E6+gl_COLOR_TABLE_FORMAT :: GLenum+gl_COLOR_TABLE_FORMAT = 0x80D8+gl_VERSION_ES_CM_1_1 :: GLenum+gl_VERSION_ES_CM_1_1 = 1+gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24+gl_BUFFER_STORAGE_FLAGS :: GLenum+gl_BUFFER_STORAGE_FLAGS = 0x8220+gl_UNSIGNED_NORMALIZED_EXT :: GLenum+gl_UNSIGNED_NORMALIZED_EXT = 0x8C17+gl_LIGHT_MODEL_SPECULAR_VECTOR_APPLE :: GLenum+gl_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0+gl_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT :: GLenum+gl_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001+gl_3_BYTES :: GLenum+gl_3_BYTES = 0x1408+gl_CND0_ATI :: GLenum+gl_CND0_ATI = 0x896B+gl_TEXTURE_MAX_LEVEL_APPLE :: GLenum+gl_TEXTURE_MAX_LEVEL_APPLE = 0x813D+gl_POINT :: GLenum+gl_POINT = 0x1B00+gl_MODELVIEW11_ARB :: GLenum+gl_MODELVIEW11_ARB = 0x872B+gl_RED_BITS :: GLenum+gl_RED_BITS = 0x0D52+gl_PIXEL_TILE_GRID_WIDTH_SGIX :: GLenum+gl_PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142+gl_DRAW_BUFFER7_NV :: GLenum+gl_DRAW_BUFFER7_NV = 0x882C+gl_OP_SET_LT_EXT :: GLenum+gl_OP_SET_LT_EXT = 0x878D+gl_TEXTURE24_ARB :: GLenum+gl_TEXTURE24_ARB = 0x84D8+gl_TESS_GEN_POINT_MODE :: GLenum+gl_TESS_GEN_POINT_MODE = 0x8E79+gl_INTERNALFORMAT_PREFERRED :: GLenum+gl_INTERNALFORMAT_PREFERRED = 0x8270+gl_VERTEX_SHADER_VARIANTS_EXT :: GLenum+gl_VERTEX_SHADER_VARIANTS_EXT = 0x87D0+gl_COMBINER_CD_OUTPUT_NV :: GLenum+gl_COMBINER_CD_OUTPUT_NV = 0x854B+gl_TRANSPOSE_CURRENT_MATRIX_ARB :: GLenum+gl_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7+gl_MAX_ARRAY_TEXTURE_LAYERS_EXT :: GLenum+gl_MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF+gl_UNSIGNED_SHORT_8_8_MESA :: GLenum+gl_UNSIGNED_SHORT_8_8_MESA = 0x85BA+gl_BLEND_ADVANCED_COHERENT_NV :: GLenum+gl_BLEND_ADVANCED_COHERENT_NV = 0x9285+gl_VERTEX_ARRAY_EXT :: GLenum+gl_VERTEX_ARRAY_EXT = 0x8074+gl_BOOL_VEC4_ARB :: GLenum+gl_BOOL_VEC4_ARB = 0x8B59+gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV :: GLenum+gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853+gl_UNSIGNED_SHORT_5_5_5_1 :: GLenum+gl_UNSIGNED_SHORT_5_5_5_1 = 0x8034+gl_SHADE_MODEL :: GLenum+gl_SHADE_MODEL = 0x0B54+gl_MIRROR_CLAMP_TO_EDGE :: GLenum+gl_MIRROR_CLAMP_TO_EDGE = 0x8743+gl_RGB5_EXT :: GLenum+gl_RGB5_EXT = 0x8050+gl_TEXTURE_GEN_S :: GLenum+gl_TEXTURE_GEN_S = 0x0C60+gl_TEXTURE_COMPRESSED :: GLenum+gl_TEXTURE_COMPRESSED = 0x86A1+gl_FRAMEBUFFER_BLEND :: GLenum+gl_FRAMEBUFFER_BLEND = 0x828B+gl_REPLACE_VALUE_AMD :: GLenum+gl_REPLACE_VALUE_AMD = 0x874B+gl_YCRCB_SGIX :: GLenum+gl_YCRCB_SGIX = 0x8318+gl_UNIFORM_BLOCK_INDEX :: GLenum+gl_UNIFORM_BLOCK_INDEX = 0x8A3A+gl_TEXTURE_TOO_LARGE_EXT :: GLenum+gl_TEXTURE_TOO_LARGE_EXT = 0x8065+gl_MIRRORED_REPEAT_ARB :: GLenum+gl_MIRRORED_REPEAT_ARB = 0x8370+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER :: GLenum+gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB+gl_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB :: GLenum+gl_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B+gl_MAX_SAMPLES :: GLenum+gl_MAX_SAMPLES = 0x8D57+gl_ATTENUATION_EXT :: GLenum+gl_ATTENUATION_EXT = 0x834D+gl_MIRROR_CLAMP_EXT :: GLenum+gl_MIRROR_CLAMP_EXT = 0x8742+gl_DEBUG_LOGGED_MESSAGES :: GLenum+gl_DEBUG_LOGGED_MESSAGES = 0x9145+gl_DOT3_ATI :: GLenum+gl_DOT3_ATI = 0x8966+gl_EMBOSS_CONSTANT_NV :: GLenum+gl_EMBOSS_CONSTANT_NV = 0x855E+gl_OUTPUT_TEXTURE_COORD11_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8+gl_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL :: GLenum+gl_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8+gl_INDEX :: GLenum+gl_INDEX = 0x8222+gl_CURRENT_MATRIX_ARB :: GLenum+gl_CURRENT_MATRIX_ARB = 0x8641+gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS :: GLenum+gl_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4+gl_MAX_DRAW_BUFFERS_EXT :: GLenum+gl_MAX_DRAW_BUFFERS_EXT = 0x8824+gl_ADD_BLEND_IMG :: GLenum+gl_ADD_BLEND_IMG = 0x8C09+gl_CLIP_FAR_HINT_PGI :: GLenum+gl_CLIP_FAR_HINT_PGI = 0x1A221+gl_POST_CONVOLUTION_COLOR_TABLE :: GLenum+gl_POST_CONVOLUTION_COLOR_TABLE = 0x80D1+gl_RGBA4_OES :: GLenum+gl_RGBA4_OES = 0x8056+gl_QUERY_RESULT_AVAILABLE_ARB :: GLenum+gl_QUERY_RESULT_AVAILABLE_ARB = 0x8867+gl_RGB8UI :: GLenum+gl_RGB8UI = 0x8D7D+gl_DYNAMIC_READ :: GLenum+gl_DYNAMIC_READ = 0x88E9+gl_TEXTURE_BINDING_2D_MULTISAMPLE :: GLenum+gl_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104+gl_OBJECT_TYPE_APPLE :: GLenum+gl_OBJECT_TYPE_APPLE = 0x9112+gl_PERCENTAGE_AMD :: GLenum+gl_PERCENTAGE_AMD = 0x8BC3+gl_LIGHT_MODEL_LOCAL_VIEWER :: GLenum+gl_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51+gl_SPARE0_PLUS_SECONDARY_COLOR_NV :: GLenum+gl_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532+gl_OP_INDEX_EXT :: GLenum+gl_OP_INDEX_EXT = 0x8782+gl_VIEW_CLASS_S3TC_DXT3_RGBA :: GLenum+gl_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE+gl_TEXTURE_DEPTH_TYPE_ARB :: GLenum+gl_TEXTURE_DEPTH_TYPE_ARB = 0x8C16+gl_TEXTURE_ALPHA_SIZE :: GLenum+gl_TEXTURE_ALPHA_SIZE = 0x805F+gl_YCRCB_422_SGIX :: GLenum+gl_YCRCB_422_SGIX = 0x81BB+gl_INDEX_ARRAY_LENGTH_NV :: GLenum+gl_INDEX_ARRAY_LENGTH_NV = 0x8F2E+gl_TRANSPOSE_AFFINE_3D_NV :: GLenum+gl_TRANSPOSE_AFFINE_3D_NV = 0x9098+gl_MATRIX17_ARB :: GLenum+gl_MATRIX17_ARB = 0x88D1+gl_SRGB_ALPHA :: GLenum+gl_SRGB_ALPHA = 0x8C42+gl_MAP_TESSELLATION_NV :: GLenum+gl_MAP_TESSELLATION_NV = 0x86C2+gl_PACK_SKIP_VOLUMES_SGIS :: GLenum+gl_PACK_SKIP_VOLUMES_SGIS = 0x8130+gl_COLOR_BUFFER_BIT :: GLenum+gl_COLOR_BUFFER_BIT = 0x00004000+gl_REG_6_ATI :: GLenum+gl_REG_6_ATI = 0x8927+gl_ATOMIC_COUNTER_BUFFER_BINDING :: GLenum+gl_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1+gl_POST_CONVOLUTION_ALPHA_BIAS :: GLenum+gl_POST_CONVOLUTION_ALPHA_BIAS = 0x8023+gl_HARDLIGHT_NV :: GLenum+gl_HARDLIGHT_NV = 0x929B+gl_INTENSITY16_SNORM :: GLenum+gl_INTENSITY16_SNORM = 0x901B+gl_TEXCOORD1_BIT_PGI :: GLenum+gl_TEXCOORD1_BIT_PGI = 0x10000000+gl_DEBUG_CALLBACK_FUNCTION :: GLenum+gl_DEBUG_CALLBACK_FUNCTION = 0x8244+gl_TEXTURE8_ARB :: GLenum+gl_TEXTURE8_ARB = 0x84C8+gl_DOUBLE_VEC2_EXT :: GLenum+gl_DOUBLE_VEC2_EXT = 0x8FFC+gl_TRIANGLES_ADJACENCY :: GLenum+gl_TRIANGLES_ADJACENCY = 0x000C+gl_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER :: GLenum+gl_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44+gl_R16F :: GLenum+gl_R16F = 0x822D+gl_OUTPUT_TEXTURE_COORD19_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0+gl_QUAD_LUMINANCE4_SGIS :: GLenum+gl_QUAD_LUMINANCE4_SGIS = 0x8120+gl_SAMPLER_OBJECT_AMD :: GLenum+gl_SAMPLER_OBJECT_AMD = 0x9155+gl_COMPRESSED_RGBA_S3TC_DXT3_ANGLE :: GLenum+gl_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2+gl_UNSIGNED_INT_IMAGE_2D :: GLenum+gl_UNSIGNED_INT_IMAGE_2D = 0x9063+gl_ALPHA_TEST :: GLenum+gl_ALPHA_TEST = 0x0BC0+gl_CONVOLUTION_WIDTH :: GLenum+gl_CONVOLUTION_WIDTH = 0x8018+gl_SLUMINANCE_NV :: GLenum+gl_SLUMINANCE_NV = 0x8C46+gl_FRAMEBUFFER_UNDEFINED_OES :: GLenum+gl_FRAMEBUFFER_UNDEFINED_OES = 0x8219+gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23+gl_HALF_FLOAT_OES :: GLenum+gl_HALF_FLOAT_OES = 0x8D61+gl_CONVOLUTION_FORMAT_EXT :: GLenum+gl_CONVOLUTION_FORMAT_EXT = 0x8017+gl_FALSE :: GLenum+gl_FALSE = 0+gl_ADD_ATI :: GLenum+gl_ADD_ATI = 0x8963+gl_STENCIL_BACK_FAIL :: GLenum+gl_STENCIL_BACK_FAIL = 0x8801+gl_DOUBLE_VEC4 :: GLenum+gl_DOUBLE_VEC4 = 0x8FFE+gl_STANDARD_FONT_NAME_NV :: GLenum+gl_STANDARD_FONT_NAME_NV = 0x9072+gl_ALPHA4_EXT :: GLenum+gl_ALPHA4_EXT = 0x803B+gl_EXPAND_NORMAL_NV :: GLenum+gl_EXPAND_NORMAL_NV = 0x8538+gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB :: GLenum+gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A+gl_TRACE_MASK_MESA :: GLenum+gl_TRACE_MASK_MESA = 0x8755+gl_VARIABLE_B_NV :: GLenum+gl_VARIABLE_B_NV = 0x8524+gl_RGB16_EXT :: GLenum+gl_RGB16_EXT = 0x8054+gl_TEXTURE :: GLenum+gl_TEXTURE = 0x1702+gl_PIXEL_UNPACK_BUFFER_BINDING_EXT :: GLenum+gl_PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF+gl_IMAGE_CLASS_1_X_8 :: GLenum+gl_IMAGE_CLASS_1_X_8 = 0x82C1+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56+gl_BOOL_VEC2_ARB :: GLenum+gl_BOOL_VEC2_ARB = 0x8B57+gl_MAP2_VERTEX_3 :: GLenum+gl_MAP2_VERTEX_3 = 0x0DB7+gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH :: GLenum+gl_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243+gl_TEXTURE_WRAP_S :: GLenum+gl_TEXTURE_WRAP_S = 0x2802+gl_TEXTURE_CUBE_MAP_NEGATIVE_X :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516+gl_TEXTURE_CUBE_MAP_ARRAY :: GLenum+gl_TEXTURE_CUBE_MAP_ARRAY = 0x9009+gl_TEXTURE_ALPHA_TYPE :: GLenum+gl_TEXTURE_ALPHA_TYPE = 0x8C13+gl_MAX_COLOR_ATTACHMENTS_NV :: GLenum+gl_MAX_COLOR_ATTACHMENTS_NV = 0x8CDF+gl_MAX_CUBE_MAP_TEXTURE_SIZE :: GLenum+gl_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C+gl_ANY_SAMPLES_PASSED :: GLenum+gl_ANY_SAMPLES_PASSED = 0x8C2F+gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213+gl_COLOR_ARRAY_STRIDE :: GLenum+gl_COLOR_ARRAY_STRIDE = 0x8083+gl_MULTISAMPLE_BIT_EXT :: GLenum+gl_MULTISAMPLE_BIT_EXT = 0x20000000+gl_VERTEX_ATTRIB_ARRAY_DIVISOR :: GLenum+gl_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE+gl_UNSIGNED_INT64_VEC3_NV :: GLenum+gl_UNSIGNED_INT64_VEC3_NV = 0x8FF6+gl_WAIT_FAILED_APPLE :: GLenum+gl_WAIT_FAILED_APPLE = 0x911D+gl_DRAW_BUFFER5_ATI :: GLenum+gl_DRAW_BUFFER5_ATI = 0x882A+gl_MAX_CUBE_MAP_TEXTURE_SIZE_EXT :: GLenum+gl_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C+gl_ONE_MINUS_CONSTANT_ALPHA_EXT :: GLenum+gl_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004+gl_UNSIGNED_INT_8_24_REV_MESA :: GLenum+gl_UNSIGNED_INT_8_24_REV_MESA = 0x8752+gl_MAX_PROGRAM_ENV_PARAMETERS_ARB :: GLenum+gl_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5+gl_MAX_VERTEX_VARYING_COMPONENTS_EXT :: GLenum+gl_MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE+gl_CURRENT_TANGENT_EXT :: GLenum+gl_CURRENT_TANGENT_EXT = 0x843B+gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB :: GLenum+gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE+gl_ALPHA16 :: GLenum+gl_ALPHA16 = 0x803E+gl_MAP1_VERTEX_4 :: GLenum+gl_MAP1_VERTEX_4 = 0x0D98+gl_SAMPLER_CUBE_SHADOW_NV :: GLenum+gl_SAMPLER_CUBE_SHADOW_NV = 0x8DC5+gl_SAMPLER_2D_SHADOW_ARB :: GLenum+gl_SAMPLER_2D_SHADOW_ARB = 0x8B62+gl_PROGRAM_LENGTH_NV :: GLenum+gl_PROGRAM_LENGTH_NV = 0x8627+gl_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM :: GLenum+gl_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086+gl_IGNORE_BORDER_HP :: GLenum+gl_IGNORE_BORDER_HP = 0x8150+gl_DEBUG_SOURCE_SHADER_COMPILER :: GLenum+gl_DEBUG_SOURCE_SHADER_COMPILER = 0x8248+gl_TEXTURE_BORDER_VALUES_NV :: GLenum+gl_TEXTURE_BORDER_VALUES_NV = 0x871A+gl_FRAGMENT_SUBROUTINE :: GLenum+gl_FRAGMENT_SUBROUTINE = 0x92EC+gl_MAX_DEPTH_TEXTURE_SAMPLES :: GLenum+gl_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F+gl_VERTEX_ATTRIB_ARRAY_POINTER :: GLenum+gl_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645+gl_COLOR_ATTACHMENT7 :: GLenum+gl_COLOR_ATTACHMENT7 = 0x8CE7+gl_LAST_VERTEX_CONVENTION_EXT :: GLenum+gl_LAST_VERTEX_CONVENTION_EXT = 0x8E4E+gl_TEXTURE_LO_SIZE_NV :: GLenum+gl_TEXTURE_LO_SIZE_NV = 0x871C+gl_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER :: GLenum+gl_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46+gl_COMPRESSED_RGB8_ETC2_OES :: GLenum+gl_COMPRESSED_RGB8_ETC2_OES = 0x9274+gl_NORMAL_MAP_NV :: GLenum+gl_NORMAL_MAP_NV = 0x8511+gl_COLOR_ARRAY_COUNT_EXT :: GLenum+gl_COLOR_ARRAY_COUNT_EXT = 0x8084+gl_TEXTURE_COMPARE_MODE_EXT :: GLenum+gl_TEXTURE_COMPARE_MODE_EXT = 0x884C+gl_BINORMAL_ARRAY_TYPE_EXT :: GLenum+gl_BINORMAL_ARRAY_TYPE_EXT = 0x8440+gl_OPERAND0_RGB_EXT :: GLenum+gl_OPERAND0_RGB_EXT = 0x8590+gl_MAX_VERTEX_VARYING_COMPONENTS_ARB :: GLenum+gl_MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE+gl_PIXEL_MIN_FILTER_EXT :: GLenum+gl_PIXEL_MIN_FILTER_EXT = 0x8332+gl_ACCUM_ADJACENT_PAIRS_NV :: GLenum+gl_ACCUM_ADJACENT_PAIRS_NV = 0x90AD+gl_BLEND_DST :: GLenum+gl_BLEND_DST = 0x0BE0+gl_W_EXT :: GLenum+gl_W_EXT = 0x87D8+gl_RENDERBUFFER_COVERAGE_SAMPLES_NV :: GLenum+gl_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB+gl_STENCIL_FUNC :: GLenum+gl_STENCIL_FUNC = 0x0B92+gl_MAX_VERTEX_STREAMS :: GLenum+gl_MAX_VERTEX_STREAMS = 0x8E71+gl_GEOMETRY_INPUT_TYPE :: GLenum+gl_GEOMETRY_INPUT_TYPE = 0x8917+gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV :: GLenum+gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857+gl_MINMAX_SINK_EXT :: GLenum+gl_MINMAX_SINK_EXT = 0x8030+gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC+gl_DOUBLE_MAT2x3 :: GLenum+gl_DOUBLE_MAT2x3 = 0x8F49+gl_FRACTIONAL_EVEN_EXT :: GLenum+gl_FRACTIONAL_EVEN_EXT = 0x8E7C+gl_VERTEX_ARRAY_TYPE_EXT :: GLenum+gl_VERTEX_ARRAY_TYPE_EXT = 0x807B+gl_BINORMAL_ARRAY_POINTER_EXT :: GLenum+gl_BINORMAL_ARRAY_POINTER_EXT = 0x8443+gl_SAMPLE_MASK_EXT :: GLenum+gl_SAMPLE_MASK_EXT = 0x80A0+gl_TESS_CONTROL_SHADER_EXT :: GLenum+gl_TESS_CONTROL_SHADER_EXT = 0x8E88+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT :: GLenum+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80+gl_TANGENT_ARRAY_STRIDE_EXT :: GLenum+gl_TANGENT_ARRAY_STRIDE_EXT = 0x843F+gl_GET_TEXTURE_IMAGE_TYPE :: GLenum+gl_GET_TEXTURE_IMAGE_TYPE = 0x8292+gl_OFFSET :: GLenum+gl_OFFSET = 0x92FC+gl_ALL_STATIC_DATA_IBM :: GLenum+gl_ALL_STATIC_DATA_IBM = 103060+gl_READ_PIXEL_DATA_RANGE_LENGTH_NV :: GLenum+gl_READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B+gl_CONSTANT_COLOR :: GLenum+gl_CONSTANT_COLOR = 0x8001+gl_UNSIGNED_SHORT_1_5_5_5_REV_EXT :: GLenum+gl_UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366+gl_MATERIAL_SIDE_HINT_PGI :: GLenum+gl_MATERIAL_SIDE_HINT_PGI = 0x1A22C+gl_UNPACK_RESAMPLE_OML :: GLenum+gl_UNPACK_RESAMPLE_OML = 0x8985+gl_SAMPLE_SHADING :: GLenum+gl_SAMPLE_SHADING = 0x8C36+gl_OUTPUT_TEXTURE_COORD13_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA+gl_MAX_COLOR_MATRIX_STACK_DEPTH :: GLenum+gl_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3+gl_INT64_VEC3_NV :: GLenum+gl_INT64_VEC3_NV = 0x8FEA+gl_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV :: GLenum+gl_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010+gl_TEXTURE_STACK_DEPTH :: GLenum+gl_TEXTURE_STACK_DEPTH = 0x0BA5+gl_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL :: GLenum+gl_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500+gl_FRAMEBUFFER_UNSUPPORTED_EXT :: GLenum+gl_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD+gl_QUERY_TARGET :: GLenum+gl_QUERY_TARGET = 0x82EA+gl_LUMINANCE4_ALPHA4 :: GLenum+gl_LUMINANCE4_ALPHA4 = 0x8043+gl_TRANSFORM_FEEDBACK_BARRIER_BIT :: GLenum+gl_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800+gl_RGB32UI :: GLenum+gl_RGB32UI = 0x8D71+gl_STATIC_DRAW :: GLenum+gl_STATIC_DRAW = 0x88E4+gl_MAX_COMPUTE_UNIFORM_BLOCKS :: GLenum+gl_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB+gl_PALETTE4_RGBA8_OES :: GLenum+gl_PALETTE4_RGBA8_OES = 0x8B91+gl_UNPACK_PREMULTIPLY_ALPHA_WEBGL :: GLenum+gl_UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241+gl_TEXTURE21 :: GLenum+gl_TEXTURE21 = 0x84D5+gl_RGB32I :: GLenum+gl_RGB32I = 0x8D83+gl_MAX_TEXTURE_LOD_BIAS_EXT :: GLenum+gl_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD+gl_PATH_GEN_COLOR_FORMAT_NV :: GLenum+gl_PATH_GEN_COLOR_FORMAT_NV = 0x90B2+gl_RGB10_A2UI :: GLenum+gl_RGB10_A2UI = 0x906F+gl_GREEN_BITS :: GLenum+gl_GREEN_BITS = 0x0D53+gl_POLYGON_MODE :: GLenum+gl_POLYGON_MODE = 0x0B40+gl_SUCCESS_NV :: GLenum+gl_SUCCESS_NV = 0x902F+gl_RGBA12 :: GLenum+gl_RGBA12 = 0x805A+gl_PATCHES :: GLenum+gl_PATCHES = 0x000E+gl_ACCUM :: GLenum+gl_ACCUM = 0x0100+gl_NUM_PASSES_ATI :: GLenum+gl_NUM_PASSES_ATI = 0x8970+gl_DEBUG_TYPE_ERROR_ARB :: GLenum+gl_DEBUG_TYPE_ERROR_ARB = 0x824C+gl_TEXTURE_LIGHTING_MODE_HP :: GLenum+gl_TEXTURE_LIGHTING_MODE_HP = 0x8167+gl_HISTOGRAM_SINK_EXT :: GLenum+gl_HISTOGRAM_SINK_EXT = 0x802D+gl_POINT_SIZE_GRANULARITY :: GLenum+gl_POINT_SIZE_GRANULARITY = 0x0B13+gl_R32F :: GLenum+gl_R32F = 0x822E+gl_STATIC_COPY :: GLenum+gl_STATIC_COPY = 0x88E6+gl_FOG_COORDINATE_ARRAY_TYPE_EXT :: GLenum+gl_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454+gl_SPARE0_NV :: GLenum+gl_SPARE0_NV = 0x852E+gl_3DC_XY_AMD :: GLenum+gl_3DC_XY_AMD = 0x87FA+gl_LUMINANCE_ALPHA32F_ARB :: GLenum+gl_LUMINANCE_ALPHA32F_ARB = 0x8819+gl_VERTEX_ARRAY_RANGE_VALID_NV :: GLenum+gl_VERTEX_ARRAY_RANGE_VALID_NV = 0x851F+gl_DEPTH_BUFFER_BIT6_QCOM :: GLenum+gl_DEPTH_BUFFER_BIT6_QCOM = 0x00004000+gl_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX :: GLenum+gl_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX = 0x8314+gl_LINE_WIDTH :: GLenum+gl_LINE_WIDTH = 0x0B21+gl_FOG_OFFSET_SGIX :: GLenum+gl_FOG_OFFSET_SGIX = 0x8198+gl_GEOMETRY_SHADER_BIT_EXT :: GLenum+gl_GEOMETRY_SHADER_BIT_EXT = 0x00000004+gl_TEXTURE_BLUE_SIZE :: GLenum+gl_TEXTURE_BLUE_SIZE = 0x805E+gl_TEXTURE_SHADER_NV :: GLenum+gl_TEXTURE_SHADER_NV = 0x86DE+gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV :: GLenum+gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5F+gl_FRAMEZOOM_SGIX :: GLenum+gl_FRAMEZOOM_SGIX = 0x818B+gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT :: GLenum+gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D+gl_DEPTH_RENDERABLE :: GLenum+gl_DEPTH_RENDERABLE = 0x8287+gl_MAX_TEXTURE_BUFFER_SIZE :: GLenum+gl_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B+gl_COLOR_ALPHA_PAIRING_ATI :: GLenum+gl_COLOR_ALPHA_PAIRING_ATI = 0x8975+gl_PACK_REVERSE_ROW_ORDER_ANGLE :: GLenum+gl_PACK_REVERSE_ROW_ORDER_ANGLE = 0x93A4+gl_VERTEX_ATTRIB_ARRAY_NORMALIZED :: GLenum+gl_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A+gl_OP_MADD_EXT :: GLenum+gl_OP_MADD_EXT = 0x8788+gl_TEXTURE7 :: GLenum+gl_TEXTURE7 = 0x84C7+gl_RGB32I_EXT :: GLenum+gl_RGB32I_EXT = 0x8D83+gl_RED_BIAS :: GLenum+gl_RED_BIAS = 0x0D15+gl_FLOAT_VEC2 :: GLenum+gl_FLOAT_VEC2 = 0x8B50+gl_HALF_APPLE :: GLenum+gl_HALF_APPLE = 0x140B+gl_SGX_BINARY_IMG :: GLenum+gl_SGX_BINARY_IMG = 0x8C0A+gl_CON_28_ATI :: GLenum+gl_CON_28_ATI = 0x895D+gl_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP :: GLenum+gl_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163+gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV :: GLenum+gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533+gl_MAP2_VERTEX_ATTRIB2_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672+gl_TRANSFORM_BIT :: GLenum+gl_TRANSFORM_BIT = 0x00001000+gl_R8 :: GLenum+gl_R8 = 0x8229+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = 0x8D56+gl_T :: GLenum+gl_T = 0x2001+gl_TEXTURE_ENV_MODE :: GLenum+gl_TEXTURE_ENV_MODE = 0x2200+gl_HIGH_INT :: GLenum+gl_HIGH_INT = 0x8DF5+gl_TEXTURE_UNSIGNED_REMAP_MODE_NV :: GLenum+gl_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F+gl_MAX_PROGRAM_LOOP_COUNT_NV :: GLenum+gl_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8+gl_PERFQUERY_WAIT_INTEL :: GLenum+gl_PERFQUERY_WAIT_INTEL = 0x83FB+gl_INVALID_FRAMEBUFFER_OPERATION_EXT :: GLenum+gl_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506+gl_TEXTURE_2D_BINDING_EXT :: GLenum+gl_TEXTURE_2D_BINDING_EXT = 0x8069+gl_TEXTURE_NUM_LEVELS_QCOM :: GLenum+gl_TEXTURE_NUM_LEVELS_QCOM = 0x8BD9+gl_TEXTURE_BUFFER_ARB :: GLenum+gl_TEXTURE_BUFFER_ARB = 0x8C2A+gl_TRUE :: GLenum+gl_TRUE = 1+gl_MAX_LAYERS :: GLenum+gl_MAX_LAYERS = 0x8281+gl_MAX_TEXTURE_UNITS_ARB :: GLenum+gl_MAX_TEXTURE_UNITS_ARB = 0x84E2+gl_MAP2_NORMAL :: GLenum+gl_MAP2_NORMAL = 0x0DB2+gl_DUAL_ALPHA16_SGIS :: GLenum+gl_DUAL_ALPHA16_SGIS = 0x8113+gl_PROGRAM_OUTPUT :: GLenum+gl_PROGRAM_OUTPUT = 0x92E4+gl_OUTPUT_TEXTURE_COORD22_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3+gl_SAMPLER_1D_ARB :: GLenum+gl_SAMPLER_1D_ARB = 0x8B5D+gl_POST_CONVOLUTION_GREEN_BIAS :: GLenum+gl_POST_CONVOLUTION_GREEN_BIAS = 0x8021+gl_INT_IMAGE_CUBE :: GLenum+gl_INT_IMAGE_CUBE = 0x905B+gl_CURRENT_VERTEX_WEIGHT_EXT :: GLenum+gl_CURRENT_VERTEX_WEIGHT_EXT = 0x850B+gl_SIGNED_LUMINANCE8_NV :: GLenum+gl_SIGNED_LUMINANCE8_NV = 0x8702+gl_TEXTURE_VIEW_NUM_LAYERS_EXT :: GLenum+gl_TEXTURE_VIEW_NUM_LAYERS_EXT = 0x82DE+gl_RG16F :: GLenum+gl_RG16F = 0x822F+gl_PROGRAM_POINT_SIZE_EXT :: GLenum+gl_PROGRAM_POINT_SIZE_EXT = 0x8642+gl_FILE_NAME_NV :: GLenum+gl_FILE_NAME_NV = 0x9074+gl_INT_IMAGE_BUFFER_EXT :: GLenum+gl_INT_IMAGE_BUFFER_EXT = 0x905C+gl_TEXTURE_UPDATE_BARRIER_BIT :: GLenum+gl_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100+gl_HARDMIX_NV :: GLenum+gl_HARDMIX_NV = 0x92A9+gl_FLOAT_MAT3x4 :: GLenum+gl_FLOAT_MAT3x4 = 0x8B68+gl_TEXTURE_INTERNAL_FORMAT_QCOM :: GLenum+gl_TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5+gl_INTERNALFORMAT_BLUE_SIZE :: GLenum+gl_INTERNALFORMAT_BLUE_SIZE = 0x8273+gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV :: GLenum+gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28+gl_HSL_COLOR_NV :: GLenum+gl_HSL_COLOR_NV = 0x92AF+gl_CONDITION_SATISFIED :: GLenum+gl_CONDITION_SATISFIED = 0x911C+gl_UNIFORM_BUFFER_LENGTH_NV :: GLenum+gl_UNIFORM_BUFFER_LENGTH_NV = 0x9370+gl_ALPHA8UI_EXT :: GLenum+gl_ALPHA8UI_EXT = 0x8D7E+gl_REG_23_ATI :: GLenum+gl_REG_23_ATI = 0x8938+gl_UNSIGNED_SHORT_5_6_5_EXT :: GLenum+gl_UNSIGNED_SHORT_5_6_5_EXT = 0x8363+gl_EDGE_FLAG_ARRAY_LENGTH_NV :: GLenum+gl_EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30+gl_IMAGE_CLASS_1_X_16 :: GLenum+gl_IMAGE_CLASS_1_X_16 = 0x82BE+gl_LUMINANCE8_ALPHA8_SNORM :: GLenum+gl_LUMINANCE8_ALPHA8_SNORM = 0x9016+gl_PATH_FILL_COVER_MODE_NV :: GLenum+gl_PATH_FILL_COVER_MODE_NV = 0x9082+gl_LUMINANCE_ALPHA_FLOAT32_APPLE :: GLenum+gl_LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819+gl_INTENSITY16UI_EXT :: GLenum+gl_INTENSITY16UI_EXT = 0x8D79+gl_RENDERBUFFER_SAMPLES_APPLE :: GLenum+gl_RENDERBUFFER_SAMPLES_APPLE = 0x8CAB+gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE :: GLenum+gl_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF+gl_LUMINANCE_ALPHA32I_EXT :: GLenum+gl_LUMINANCE_ALPHA32I_EXT = 0x8D87+gl_REGISTER_COMBINERS_NV :: GLenum+gl_REGISTER_COMBINERS_NV = 0x8522+gl_R1UI_N3F_V3F_SUN :: GLenum+gl_R1UI_N3F_V3F_SUN = 0x85C7+gl_FOG_COORDINATE_SOURCE :: GLenum+gl_FOG_COORDINATE_SOURCE = 0x8450+gl_DEBUG_SEVERITY_MEDIUM_AMD :: GLenum+gl_DEBUG_SEVERITY_MEDIUM_AMD = 0x9147+gl_MODELVIEW30_ARB :: GLenum+gl_MODELVIEW30_ARB = 0x873E+gl_COMPRESSED_RGBA_S3TC_DXT5_EXT :: GLenum+gl_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3+gl_DRAW_BUFFER0_NV :: GLenum+gl_DRAW_BUFFER0_NV = 0x8825+gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT :: GLenum+gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC+gl_ELEMENT_ARRAY_BARRIER_BIT :: GLenum+gl_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002+gl_SHADER_PIXEL_LOCAL_STORAGE_EXT :: GLenum+gl_SHADER_PIXEL_LOCAL_STORAGE_EXT = 0x8F64+gl_FRONT_LEFT :: GLenum+gl_FRONT_LEFT = 0x0400+gl_UNIFORM_BUFFER_BINDING :: GLenum+gl_UNIFORM_BUFFER_BINDING = 0x8A28+gl_SIGNED_RGBA8_NV :: GLenum+gl_SIGNED_RGBA8_NV = 0x86FC+gl_EYE_PLANE :: GLenum+gl_EYE_PLANE = 0x2502+gl_TEXTURE_1D :: GLenum+gl_TEXTURE_1D = 0x0DE0+gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT :: GLenum+gl_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE+gl_MALI_PROGRAM_BINARY_ARM :: GLenum+gl_MALI_PROGRAM_BINARY_ARM = 0x8F61+gl_SKIP_COMPONENTS3_NV :: GLenum+gl_SKIP_COMPONENTS3_NV = -4+gl_LUMINANCE_ALPHA :: GLenum+gl_LUMINANCE_ALPHA = 0x190A+gl_ACCUM_RED_BITS :: GLenum+gl_ACCUM_RED_BITS = 0x0D58+gl_POLYGON_OFFSET_FACTOR :: GLenum+gl_POLYGON_OFFSET_FACTOR = 0x8038+gl_SAMPLER_2D_ARRAY_SHADOW_NV :: GLenum+gl_SAMPLER_2D_ARRAY_SHADOW_NV = 0x8DC4+gl_VARIABLE_D_NV :: GLenum+gl_VARIABLE_D_NV = 0x8526+gl_TEXTURE_LEQUAL_R_SGIX :: GLenum+gl_TEXTURE_LEQUAL_R_SGIX = 0x819C+gl_INT :: GLenum+gl_INT = 0x1404+gl_IMAGE_TRANSLATE_Y_HP :: GLenum+gl_IMAGE_TRANSLATE_Y_HP = 0x8158+gl_POINT_TOKEN :: GLenum+gl_POINT_TOKEN = 0x0701+gl_RESAMPLE_ZERO_FILL_OML :: GLenum+gl_RESAMPLE_ZERO_FILL_OML = 0x8987+gl_DEBUG_SOURCE_THIRD_PARTY_KHR :: GLenum+gl_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249+gl_TEXTURE_MAG_SIZE_NV :: GLenum+gl_TEXTURE_MAG_SIZE_NV = 0x871F+gl_PER_STAGE_CONSTANTS_NV :: GLenum+gl_PER_STAGE_CONSTANTS_NV = 0x8535+gl_VIRTUAL_PAGE_SIZE_Y_ARB :: GLenum+gl_VIRTUAL_PAGE_SIZE_Y_ARB = 0x9196+gl_SPRITE_EYE_ALIGNED_SGIX :: GLenum+gl_SPRITE_EYE_ALIGNED_SGIX = 0x814E+gl_EVAL_VERTEX_ATTRIB14_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB14_NV = 0x86D4+gl_TRANSFORM_FEEDBACK_VARYINGS_NV :: GLenum+gl_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83+gl_RGB10 :: GLenum+gl_RGB10 = 0x8052+gl_MAX_VIEWPORT_DIMS :: GLenum+gl_MAX_VIEWPORT_DIMS = 0x0D3A+gl_BLUE_MAX_CLAMP_INGR :: GLenum+gl_BLUE_MAX_CLAMP_INGR = 0x8566+gl_INCR_WRAP :: GLenum+gl_INCR_WRAP = 0x8507+gl_VIRTUAL_PAGE_SIZE_X_AMD :: GLenum+gl_VIRTUAL_PAGE_SIZE_X_AMD = 0x9195+gl_BOOL_VEC3 :: GLenum+gl_BOOL_VEC3 = 0x8B58+gl_CON_17_ATI :: GLenum+gl_CON_17_ATI = 0x8952+gl_MAX_CUBE_MAP_TEXTURE_SIZE_OES :: GLenum+gl_MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C+gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT :: GLenum+gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB+gl_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI :: GLenum+gl_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1+gl_MINMAX :: GLenum+gl_MINMAX = 0x802E+gl_CONSTANT_BORDER_HP :: GLenum+gl_CONSTANT_BORDER_HP = 0x8151+gl_SRGB_WRITE :: GLenum+gl_SRGB_WRITE = 0x8298+gl_MAX_TEXTURE_BUFFER_SIZE_ARB :: GLenum+gl_MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B+gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV :: GLenum+gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856+gl_DECAL :: GLenum+gl_DECAL = 0x2101+gl_REG_7_ATI :: GLenum+gl_REG_7_ATI = 0x8928+gl_TESS_GEN_SPACING_EXT :: GLenum+gl_TESS_GEN_SPACING_EXT = 0x8E77+gl_ELEMENT_ARRAY_LENGTH_NV :: GLenum+gl_ELEMENT_ARRAY_LENGTH_NV = 0x8F33+gl_MATRIX31_ARB :: GLenum+gl_MATRIX31_ARB = 0x88DF+gl_TRANSFORM_FEEDBACK_VARYING :: GLenum+gl_TRANSFORM_FEEDBACK_VARYING = 0x92F4+gl_VERTEX_ATTRIB_ARRAY_SIZE :: GLenum+gl_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623+gl_NOTEQUAL :: GLenum+gl_NOTEQUAL = 0x0205+gl_READ_PIXELS_TYPE :: GLenum+gl_READ_PIXELS_TYPE = 0x828E+gl_MODELVIEW_STACK_DEPTH :: GLenum+gl_MODELVIEW_STACK_DEPTH = 0x0BA3+gl_COMPRESSED_RGBA_ASTC_6x6x5_OES :: GLenum+gl_COMPRESSED_RGBA_ASTC_6x6x5_OES = 0x93C8+gl_COMBINE_EXT :: GLenum+gl_COMBINE_EXT = 0x8570+gl_NICEST :: GLenum+gl_NICEST = 0x1102+gl_MODELVIEW2_ARB :: GLenum+gl_MODELVIEW2_ARB = 0x8722+gl_UNPACK_IMAGE_HEIGHT :: GLenum+gl_UNPACK_IMAGE_HEIGHT = 0x806E+gl_TEXTURE_CUBE_MAP_ARRAY_ARB :: GLenum+gl_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009+gl_DRAW_BUFFER12 :: GLenum+gl_DRAW_BUFFER12 = 0x8831+gl_MAX_FRAGMENT_INTERPOLATION_OFFSET :: GLenum+gl_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C+gl_FRAMEBUFFER_DEFAULT_HEIGHT :: GLenum+gl_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311+gl_DT_BIAS_NV :: GLenum+gl_DT_BIAS_NV = 0x8717+gl_DSDT_NV :: GLenum+gl_DSDT_NV = 0x86F5+gl_IMAGE_CUBE_MAP_ARRAY :: GLenum+gl_IMAGE_CUBE_MAP_ARRAY = 0x9054+gl_STENCIL_INDEX4 :: GLenum+gl_STENCIL_INDEX4 = 0x8D47+gl_ROUND_NV :: GLenum+gl_ROUND_NV = 0x90A4+gl_Y_EXT :: GLenum+gl_Y_EXT = 0x87D6+gl_PATH_DASH_CAPS_NV :: GLenum+gl_PATH_DASH_CAPS_NV = 0x907B+gl_TEXTURE_PRIORITY :: GLenum+gl_TEXTURE_PRIORITY = 0x8066+gl_TEXTURE_4D_BINDING_SGIS :: GLenum+gl_TEXTURE_4D_BINDING_SGIS = 0x814F+gl_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD :: GLenum+gl_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = 0x914C+gl_CULL_MODES_NV :: GLenum+gl_CULL_MODES_NV = 0x86E0+gl_VERTEX_ATTRIB_MAP2_SIZE_APPLE :: GLenum+gl_VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06+gl_REFERENCED_BY_GEOMETRY_SHADER_EXT :: GLenum+gl_REFERENCED_BY_GEOMETRY_SHADER_EXT = 0x9309+gl_MODELVIEW_MATRIX :: GLenum+gl_MODELVIEW_MATRIX = 0x0BA6+gl_VIDEO_BUFFER_NV :: GLenum+gl_VIDEO_BUFFER_NV = 0x9020+gl_TEXTURE12 :: GLenum+gl_TEXTURE12 = 0x84CC+gl_COLORBURN_NV :: GLenum+gl_COLORBURN_NV = 0x929A+gl_COLOR_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898+gl_READ_BUFFER_EXT :: GLenum+gl_READ_BUFFER_EXT = 0x0C02+gl_RENDERBUFFER_RED_SIZE_OES :: GLenum+gl_RENDERBUFFER_RED_SIZE_OES = 0x8D50+gl_TEXTURE_SHARED_SIZE :: GLenum+gl_TEXTURE_SHARED_SIZE = 0x8C3F+gl_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS :: GLenum+gl_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355+gl_ALL_SHADER_BITS_EXT :: GLenum+gl_ALL_SHADER_BITS_EXT = 0xFFFFFFFF+gl_PERFQUERY_SINGLE_CONTEXT_INTEL :: GLenum+gl_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000+gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT :: GLenum+gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82+gl_PERFMON_RESULT_AMD :: GLenum+gl_PERFMON_RESULT_AMD = 0x8BC6+gl_GUILTY_CONTEXT_RESET :: GLenum+gl_GUILTY_CONTEXT_RESET = 0x8253+gl_PREVIOUS :: GLenum+gl_PREVIOUS = 0x8578+gl_UNSIGNED_INT16_VEC3_NV :: GLenum+gl_UNSIGNED_INT16_VEC3_NV = 0x8FF2+gl_VERTEX_ATTRIB_MAP1_APPLE :: GLenum+gl_VERTEX_ATTRIB_MAP1_APPLE = 0x8A00+gl_LIGHT3 :: GLenum+gl_LIGHT3 = 0x4003+gl_TESS_EVALUATION_SUBROUTINE_UNIFORM :: GLenum+gl_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0+gl_DUAL_INTENSITY8_SGIS :: GLenum+gl_DUAL_INTENSITY8_SGIS = 0x8119+gl_PARAMETER_BUFFER_BINDING_ARB :: GLenum+gl_PARAMETER_BUFFER_BINDING_ARB = 0x80EF+gl_CURRENT_SECONDARY_COLOR :: GLenum+gl_CURRENT_SECONDARY_COLOR = 0x8459+gl_RENDERBUFFER_ALPHA_SIZE :: GLenum+gl_RENDERBUFFER_ALPHA_SIZE = 0x8D53+gl_DUAL_INTENSITY12_SGIS :: GLenum+gl_DUAL_INTENSITY12_SGIS = 0x811A+gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING :: GLenum+gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A+gl_OP_MAX_EXT :: GLenum+gl_OP_MAX_EXT = 0x878A+gl_EDGE_FLAG_ARRAY_EXT :: GLenum+gl_EDGE_FLAG_ARRAY_EXT = 0x8079+gl_COLOR_TABLE_LUMINANCE_SIZE :: GLenum+gl_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE+gl_FOG_COORD_ARRAY_ADDRESS_NV :: GLenum+gl_FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28+gl_COPY :: GLenum+gl_COPY = 0x1503+gl_DRAW_BUFFER2_NV :: GLenum+gl_DRAW_BUFFER2_NV = 0x8827+gl_SAMPLER_BINDING :: GLenum+gl_SAMPLER_BINDING = 0x8919+gl_COPY_WRITE_BUFFER :: GLenum+gl_COPY_WRITE_BUFFER = 0x8F37+gl_PIXEL_UNPACK_BUFFER :: GLenum+gl_PIXEL_UNPACK_BUFFER = 0x88EC+gl_VIEW_CLASS_S3TC_DXT1_RGBA :: GLenum+gl_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD+gl_DRAW_FRAMEBUFFER_APPLE :: GLenum+gl_DRAW_FRAMEBUFFER_APPLE = 0x8CA9+gl_PIXEL_MAP_A_TO_A_SIZE :: GLenum+gl_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9+gl_EDGE_FLAG :: GLenum+gl_EDGE_FLAG = 0x0B43+gl_CLIP_DISTANCE2 :: GLenum+gl_CLIP_DISTANCE2 = 0x3002+gl_TEXTURE_GEN_MODE :: GLenum+gl_TEXTURE_GEN_MODE = 0x2500+gl_HALF_BIAS_NORMAL_NV :: GLenum+gl_HALF_BIAS_NORMAL_NV = 0x853A+gl_RESAMPLE_ZERO_FILL_SGIX :: GLenum+gl_RESAMPLE_ZERO_FILL_SGIX = 0x842F+gl_OUTPUT_TEXTURE_COORD12_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9+gl_UNSIGNED_SHORT_8_8_REV_MESA :: GLenum+gl_UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB+gl_PALETTE8_RGBA8_OES :: GLenum+gl_PALETTE8_RGBA8_OES = 0x8B96+gl_TEXTURE_4D_SGIS :: GLenum+gl_TEXTURE_4D_SGIS = 0x8134+gl_PIXEL_PACK_BUFFER_EXT :: GLenum+gl_PIXEL_PACK_BUFFER_EXT = 0x88EB+gl_MAP_ATTRIB_U_ORDER_NV :: GLenum+gl_MAP_ATTRIB_U_ORDER_NV = 0x86C3+gl_FUNC_SUBTRACT :: GLenum+gl_FUNC_SUBTRACT = 0x800A+gl_PIXEL_SUBSAMPLE_4444_SGIX :: GLenum+gl_PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2+gl_TEXTURE_CUBE_MAP_NEGATIVE_Y :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518+gl_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT :: GLenum+gl_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D+gl_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT :: GLenum+gl_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = 0x90CD+gl_DYNAMIC_COPY :: GLenum+gl_DYNAMIC_COPY = 0x88EA+gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A+gl_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT :: GLenum+gl_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3+gl_PROGRAM_LENGTH_ARB :: GLenum+gl_PROGRAM_LENGTH_ARB = 0x8627+gl_MODELVIEW14_ARB :: GLenum+gl_MODELVIEW14_ARB = 0x872E+gl_ITALIC_BIT_NV :: GLenum+gl_ITALIC_BIT_NV = 0x02+gl_OR_INVERTED :: GLenum+gl_OR_INVERTED = 0x150D+gl_CLIP_NEAR_HINT_PGI :: GLenum+gl_CLIP_NEAR_HINT_PGI = 0x1A220+gl_COVERAGE_EDGE_FRAGMENTS_NV :: GLenum+gl_COVERAGE_EDGE_FRAGMENTS_NV = 0x8ED6+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3+gl_PROGRAM_BINARY_LENGTH_OES :: GLenum+gl_PROGRAM_BINARY_LENGTH_OES = 0x8741+gl_DRAW_BUFFER8_ARB :: GLenum+gl_DRAW_BUFFER8_ARB = 0x882D+gl_DRAW_FRAMEBUFFER_EXT :: GLenum+gl_DRAW_FRAMEBUFFER_EXT = 0x8CA9+gl_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET :: GLenum+gl_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9+gl_SYNC_CL_EVENT_ARB :: GLenum+gl_SYNC_CL_EVENT_ARB = 0x8240+gl_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE :: GLenum+gl_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8+gl_MAX_VERTEX_HINT_PGI :: GLenum+gl_MAX_VERTEX_HINT_PGI = 0x1A22D+gl_UNPACK_IMAGE_HEIGHT_EXT :: GLenum+gl_UNPACK_IMAGE_HEIGHT_EXT = 0x806E+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV :: GLenum+gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = 0x8C4F+gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214+gl_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB :: GLenum+gl_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49+gl_STENCIL_BACK_REF :: GLenum+gl_STENCIL_BACK_REF = 0x8CA3+gl_CLAMP_READ_COLOR_ARB :: GLenum+gl_CLAMP_READ_COLOR_ARB = 0x891C+gl_INTERNALFORMAT_RED_SIZE :: GLenum+gl_INTERNALFORMAT_RED_SIZE = 0x8271+gl_PATCH_DEFAULT_INNER_LEVEL_EXT :: GLenum+gl_PATCH_DEFAULT_INNER_LEVEL_EXT = 0x8E73+gl_OUTPUT_TEXTURE_COORD27_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8+gl_QUERY_STENCIL_FAIL_EVENT_BIT_AMD :: GLenum+gl_QUERY_STENCIL_FAIL_EVENT_BIT_AMD = 0x00000004+gl_MAX_COMPUTE_TEXTURE_IMAGE_UNITS :: GLenum+gl_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC+gl_LOCATION :: GLenum+gl_LOCATION = 0x930E+gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS :: GLenum+gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82+gl_POST_COLOR_MATRIX_GREEN_SCALE :: GLenum+gl_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9+gl_POST_COLOR_MATRIX_ALPHA_SCALE :: GLenum+gl_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7+gl_HORIZONTAL_LINE_TO_NV :: GLenum+gl_HORIZONTAL_LINE_TO_NV = 0x06+gl_MAX_FRAGMENT_INPUT_COMPONENTS :: GLenum+gl_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125+gl_PROGRAM_STRING_ARB :: GLenum+gl_PROGRAM_STRING_ARB = 0x8628+gl_EDGE_FLAG_ARRAY_ADDRESS_NV :: GLenum+gl_EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26+gl_VENDOR :: GLenum+gl_VENDOR = 0x1F00+gl_CLIPPING_INPUT_PRIMITIVES_ARB :: GLenum+gl_CLIPPING_INPUT_PRIMITIVES_ARB = 0x82F6+gl_TEXTURE_RENDERBUFFER_NV :: GLenum+gl_TEXTURE_RENDERBUFFER_NV = 0x8E55+gl_ELEMENT_ARRAY_ADDRESS_NV :: GLenum+gl_ELEMENT_ARRAY_ADDRESS_NV = 0x8F29+gl_LOCAL_EXT :: GLenum+gl_LOCAL_EXT = 0x87C4+gl_GEOMETRY_SHADER_INVOCATIONS :: GLenum+gl_GEOMETRY_SHADER_INVOCATIONS = 0x887F+gl_INT_VEC4_ARB :: GLenum+gl_INT_VEC4_ARB = 0x8B55+gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217+gl_SEPARATE_ATTRIBS_NV :: GLenum+gl_SEPARATE_ATTRIBS_NV = 0x8C8D+gl_FLOAT_MAT4_ARB :: GLenum+gl_FLOAT_MAT4_ARB = 0x8B5C+gl_COLOR_ATTACHMENT_EXT :: GLenum+gl_COLOR_ATTACHMENT_EXT = 0x90F0+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0+gl_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB :: GLenum+gl_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841+gl_SHININESS :: GLenum+gl_SHININESS = 0x1601+gl_INTERPOLATE_EXT :: GLenum+gl_INTERPOLATE_EXT = 0x8575+gl_TRANSFORM_FEEDBACK :: GLenum+gl_TRANSFORM_FEEDBACK = 0x8E22+gl_TEXTURE_DEPTH_QCOM :: GLenum+gl_TEXTURE_DEPTH_QCOM = 0x8BD4+gl_DOUBLE_MAT4x2 :: GLenum+gl_DOUBLE_MAT4x2 = 0x8F4D+gl_NORMAL_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897+gl_PIXEL_TEX_GEN_SGIX :: GLenum+gl_PIXEL_TEX_GEN_SGIX = 0x8139+gl_TRANSFORM_FEEDBACK_BUFFER_START :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84+gl_GLYPH_WIDTH_BIT_NV :: GLenum+gl_GLYPH_WIDTH_BIT_NV = 0x01+gl_STENCIL_ATTACHMENT_EXT :: GLenum+gl_STENCIL_ATTACHMENT_EXT = 0x8D20+gl_VERTEX_ARRAY_RANGE_POINTER_APPLE :: GLenum+gl_VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521+gl_VERTEX_WEIGHT_ARRAY_TYPE_EXT :: GLenum+gl_VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E+gl_MATRIX4_NV :: GLenum+gl_MATRIX4_NV = 0x8634+gl_READ_FRAMEBUFFER_ANGLE :: GLenum+gl_READ_FRAMEBUFFER_ANGLE = 0x8CA8+gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS :: GLenum+gl_MAX_SPARSE_ARRAY_TEXTURE_LAYERS = 0x919A+gl_VERTEX_ARRAY_POINTER_EXT :: GLenum+gl_VERTEX_ARRAY_POINTER_EXT = 0x808E+gl_RELATIVE_ROUNDED_RECT_NV :: GLenum+gl_RELATIVE_ROUNDED_RECT_NV = 0xE9+gl_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV :: GLenum+gl_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11+gl_MAX_PROGRAM_GENERIC_ATTRIBS_NV :: GLenum+gl_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5+gl_TEXTURE_MEMORY_LAYOUT_INTEL :: GLenum+gl_TEXTURE_MEMORY_LAYOUT_INTEL = 0x83FF+gl_REG_0_ATI :: GLenum+gl_REG_0_ATI = 0x8921+gl_VERTEX_ATTRIB_ARRAY15_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY15_NV = 0x865F+gl_RGB12_EXT :: GLenum+gl_RGB12_EXT = 0x8053+gl_FRAGMENT_LIGHT6_SGIX :: GLenum+gl_FRAGMENT_LIGHT6_SGIX = 0x8412+gl_MAX_PROGRAM_ATTRIB_COMPONENTS_NV :: GLenum+gl_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908+gl_QUERY_ALL_EVENT_BITS_AMD :: GLenum+gl_QUERY_ALL_EVENT_BITS_AMD = 0xFFFFFFFF+gl_INTENSITY_FLOAT32_APPLE :: GLenum+gl_INTENSITY_FLOAT32_APPLE = 0x8817+gl_LIST_INDEX :: GLenum+gl_LIST_INDEX = 0x0B33+gl_COMPRESSED_RGB_PVRTC_2BPPV1_IMG :: GLenum+gl_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01+gl_REG_18_ATI :: GLenum+gl_REG_18_ATI = 0x8933+gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT :: GLenum+gl_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9061+gl_COMPILE :: GLenum+gl_COMPILE = 0x1300+gl_VIEW_CLASS_128_BITS :: GLenum+gl_VIEW_CLASS_128_BITS = 0x82C4+gl_4X_BIT_ATI :: GLenum+gl_4X_BIT_ATI = 0x00000002+gl_CLIENT_PIXEL_STORE_BIT :: GLenum+gl_CLIENT_PIXEL_STORE_BIT = 0x00000001+gl_OPERAND2_RGB :: GLenum+gl_OPERAND2_RGB = 0x8592+gl_MINMAX_FORMAT_EXT :: GLenum+gl_MINMAX_FORMAT_EXT = 0x802F+gl_UNSIGNED_INT_IMAGE_1D :: GLenum+gl_UNSIGNED_INT_IMAGE_1D = 0x9062+gl_INSTRUMENT_MEASUREMENTS_SGIX :: GLenum+gl_INSTRUMENT_MEASUREMENTS_SGIX = 0x8181+gl_VALIDATE_STATUS :: GLenum+gl_VALIDATE_STATUS = 0x8B83+gl_NORMAL_ARRAY_COUNT_EXT :: GLenum+gl_NORMAL_ARRAY_COUNT_EXT = 0x8080+gl_PATH_STENCIL_REF_NV :: GLenum+gl_PATH_STENCIL_REF_NV = 0x90B8+gl_DRAW_BUFFER5_NV :: GLenum+gl_DRAW_BUFFER5_NV = 0x882A+gl_COMPRESSED_RGBA_ARB :: GLenum+gl_COMPRESSED_RGBA_ARB = 0x84EE+gl_MAX_MULTISAMPLE_COVERAGE_MODES_NV :: GLenum+gl_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11+gl_MAX_3D_TEXTURE_SIZE :: GLenum+gl_MAX_3D_TEXTURE_SIZE = 0x8073+gl_FRAGMENT_NORMAL_EXT :: GLenum+gl_FRAGMENT_NORMAL_EXT = 0x834A+gl_SHADER_KHR :: GLenum+gl_SHADER_KHR = 0x82E1+gl_TEXTURE_DEPTH_TYPE :: GLenum+gl_TEXTURE_DEPTH_TYPE = 0x8C16+gl_VERTEX_PROGRAM_CALLBACK_FUNC_MESA :: GLenum+gl_VERTEX_PROGRAM_CALLBACK_FUNC_MESA = 0x8BB6+gl_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE :: GLenum+gl_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0+gl_TEXTURE_2D_STACK_BINDING_MESAX :: GLenum+gl_TEXTURE_2D_STACK_BINDING_MESAX = 0x875E+gl_NUM_COMPRESSED_TEXTURE_FORMATS_ARB :: GLenum+gl_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2+gl_INT_SAMPLER_2D_EXT :: GLenum+gl_INT_SAMPLER_2D_EXT = 0x8DCA+gl_RGBA4_S3TC :: GLenum+gl_RGBA4_S3TC = 0x83A3+gl_MAX_SPOT_EXPONENT_NV :: GLenum+gl_MAX_SPOT_EXPONENT_NV = 0x8505+gl_NEGATIVE_X_EXT :: GLenum+gl_NEGATIVE_X_EXT = 0x87D9+gl_SYNC_X11_FENCE_EXT :: GLenum+gl_SYNC_X11_FENCE_EXT = 0x90E1+gl_OP_DOT3_EXT :: GLenum+gl_OP_DOT3_EXT = 0x8784+gl_LUMINANCE8_SNORM :: GLenum+gl_LUMINANCE8_SNORM = 0x9015+gl_SAMPLE_SHADING_ARB :: GLenum+gl_SAMPLE_SHADING_ARB = 0x8C36+gl_CONVOLUTION_2D_EXT :: GLenum+gl_CONVOLUTION_2D_EXT = 0x8011+gl_MAP2_TEXTURE_COORD_2 :: GLenum+gl_MAP2_TEXTURE_COORD_2 = 0x0DB4+gl_SHADER_IMAGE_LOAD :: GLenum+gl_SHADER_IMAGE_LOAD = 0x82A4+gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85+gl_TEXTURE_VIEW_NUM_LEVELS_EXT :: GLenum+gl_TEXTURE_VIEW_NUM_LEVELS_EXT = 0x82DC+gl_ACTIVE_UNIFORMS :: GLenum+gl_ACTIVE_UNIFORMS = 0x8B86+gl_ACCUM_GREEN_BITS :: GLenum+gl_ACCUM_GREEN_BITS = 0x0D59+gl_TESS_EVALUATION_PROGRAM_NV :: GLenum+gl_TESS_EVALUATION_PROGRAM_NV = 0x891F+gl_COMPRESSED_SLUMINANCE :: GLenum+gl_COMPRESSED_SLUMINANCE = 0x8C4A+gl_COLOR_ATTACHMENT14_EXT :: GLenum+gl_COLOR_ATTACHMENT14_EXT = 0x8CEE+gl_VERTEX23_BIT_PGI :: GLenum+gl_VERTEX23_BIT_PGI = 0x00000004+gl_BUMP_ROT_MATRIX_ATI :: GLenum+gl_BUMP_ROT_MATRIX_ATI = 0x8775+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56+gl_MAX_PALETTE_MATRICES_OES :: GLenum+gl_MAX_PALETTE_MATRICES_OES = 0x8842+gl_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV :: GLenum+gl_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036+gl_CONVOLUTION_BORDER_MODE_EXT :: GLenum+gl_CONVOLUTION_BORDER_MODE_EXT = 0x8013+gl_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE :: GLenum+gl_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05+gl_INTENSITY32I_EXT :: GLenum+gl_INTENSITY32I_EXT = 0x8D85+gl_RASTERIZER_DISCARD_EXT :: GLenum+gl_RASTERIZER_DISCARD_EXT = 0x8C89+gl_MAX_SAMPLES_EXT :: GLenum+gl_MAX_SAMPLES_EXT = 0x8D57+gl_DRAW_BUFFER10_EXT :: GLenum+gl_DRAW_BUFFER10_EXT = 0x882F+gl_INT_IMAGE_2D :: GLenum+gl_INT_IMAGE_2D = 0x9058+gl_PROVOKING_VERTEX :: GLenum+gl_PROVOKING_VERTEX = 0x8E4F+gl_UNPACK_RESAMPLE_SGIX :: GLenum+gl_UNPACK_RESAMPLE_SGIX = 0x842D+gl_SAMPLE_POSITION_NV :: GLenum+gl_SAMPLE_POSITION_NV = 0x8E50+gl_MAX_PROGRAM_MATRICES_ARB :: GLenum+gl_MAX_PROGRAM_MATRICES_ARB = 0x862F+gl_SHADER_STORAGE_BUFFER_BINDING :: GLenum+gl_SHADER_STORAGE_BUFFER_BINDING = 0x90D3+gl_TEXTURE0 :: GLenum+gl_TEXTURE0 = 0x84C0+gl_DSDT_MAG_VIB_NV :: GLenum+gl_DSDT_MAG_VIB_NV = 0x86F7+gl_DOUBLE_MAT4x3 :: GLenum+gl_DOUBLE_MAT4x3 = 0x8F4E+gl_TEXTURE27_ARB :: GLenum+gl_TEXTURE27_ARB = 0x84DB+gl_ACTIVE_ATOMIC_COUNTER_BUFFERS :: GLenum+gl_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9+gl_LUMINANCE32I_EXT :: GLenum+gl_LUMINANCE32I_EXT = 0x8D86+gl_SAMPLER_KHR :: GLenum+gl_SAMPLER_KHR = 0x82E6+gl_MITER_REVERT_NV :: GLenum+gl_MITER_REVERT_NV = 0x90A7+gl_RGB32UI_EXT :: GLenum+gl_RGB32UI_EXT = 0x8D71+gl_DUAL_LUMINANCE12_SGIS :: GLenum+gl_DUAL_LUMINANCE12_SGIS = 0x8116+gl_BOOL_VEC2 :: GLenum+gl_BOOL_VEC2 = 0x8B57+gl_COLOR_ATTACHMENT1_NV :: GLenum+gl_COLOR_ATTACHMENT1_NV = 0x8CE1+gl_MAX_CONVOLUTION_WIDTH :: GLenum+gl_MAX_CONVOLUTION_WIDTH = 0x801A+gl_DRAW_BUFFER14_NV :: GLenum+gl_DRAW_BUFFER14_NV = 0x8833+gl_BLEND_DST_RGB_EXT :: GLenum+gl_BLEND_DST_RGB_EXT = 0x80C8+gl_LUMINANCE12_ALPHA12_EXT :: GLenum+gl_LUMINANCE12_ALPHA12_EXT = 0x8047+gl_DEPTH_BOUNDS_EXT :: GLenum+gl_DEPTH_BOUNDS_EXT = 0x8891+gl_CIRCULAR_CCW_ARC_TO_NV :: GLenum+gl_CIRCULAR_CCW_ARC_TO_NV = 0xF8+gl_COMPRESSED_LUMINANCE_ALPHA :: GLenum+gl_COMPRESSED_LUMINANCE_ALPHA = 0x84EB+gl_SAMPLE_COVERAGE_VALUE_ARB :: GLenum+gl_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA+gl_DEPTH_STENCIL_TO_RGBA_NV :: GLenum+gl_DEPTH_STENCIL_TO_RGBA_NV = 0x886E+gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING :: GLenum+gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C+gl_NAME_LENGTH :: GLenum+gl_NAME_LENGTH = 0x92F9+gl_STENCIL_TEST_TWO_SIDE_EXT :: GLenum+gl_STENCIL_TEST_TWO_SIDE_EXT = 0x8910+gl_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES :: GLenum+gl_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D+gl_VERTEX_ATTRIB_ARRAY_STRIDE_ARB :: GLenum+gl_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624+gl_OUTPUT_TEXTURE_COORD30_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB+gl_MAX_PROGRAM_SUBROUTINE_NUM_NV :: GLenum+gl_MAX_PROGRAM_SUBROUTINE_NUM_NV = 0x8F45+gl_MULTIPLY_NV :: GLenum+gl_MULTIPLY_NV = 0x9294+gl_TEXTURE19 :: GLenum+gl_TEXTURE19 = 0x84D3+gl_INVERT_OVG_NV :: GLenum+gl_INVERT_OVG_NV = 0x92B4+gl_IMPLEMENTATION_COLOR_READ_FORMAT_OES :: GLenum+gl_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B+gl_NEAREST_CLIPMAP_LINEAR_SGIX :: GLenum+gl_NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E+gl_VARIABLE_A_NV :: GLenum+gl_VARIABLE_A_NV = 0x8523+gl_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT :: GLenum+gl_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71+gl_TEXTURE_2D_MULTISAMPLE :: GLenum+gl_TEXTURE_2D_MULTISAMPLE = 0x9100+gl_DEBUG_SOURCE_THIRD_PARTY :: GLenum+gl_DEBUG_SOURCE_THIRD_PARTY = 0x8249+gl_DRAW_BUFFER7_ARB :: GLenum+gl_DRAW_BUFFER7_ARB = 0x882C+gl_MAX_DRAW_BUFFERS :: GLenum+gl_MAX_DRAW_BUFFERS = 0x8824+gl_MAX_SERVER_WAIT_TIMEOUT :: GLenum+gl_MAX_SERVER_WAIT_TIMEOUT = 0x9111+gl_COMPRESSED_SIGNED_RG11_EAC :: GLenum+gl_COMPRESSED_SIGNED_RG11_EAC = 0x9273+gl_VERTEX_PROGRAM_POINT_SIZE :: GLenum+gl_VERTEX_PROGRAM_POINT_SIZE = 0x8642+gl_STENCIL_PASS_DEPTH_PASS :: GLenum+gl_STENCIL_PASS_DEPTH_PASS = 0x0B96+gl_RENDERBUFFER_STENCIL_SIZE :: GLenum+gl_RENDERBUFFER_STENCIL_SIZE = 0x8D55+gl_TEXTURE_BINDING_2D :: GLenum+gl_TEXTURE_BINDING_2D = 0x8069+gl_DATA_BUFFER_AMD :: GLenum+gl_DATA_BUFFER_AMD = 0x9151+gl_DEBUG_CATEGORY_APPLICATION_AMD :: GLenum+gl_DEBUG_CATEGORY_APPLICATION_AMD = 0x914F+gl_ASYNC_HISTOGRAM_SGIX :: GLenum+gl_ASYNC_HISTOGRAM_SGIX = 0x832C+gl_UNPACK_LSB_FIRST :: GLenum+gl_UNPACK_LSB_FIRST = 0x0CF1+gl_UNSIGNED_INT_SAMPLER_CUBE_EXT :: GLenum+gl_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4+gl_DEPTH_CLAMP_FAR_AMD :: GLenum+gl_DEPTH_CLAMP_FAR_AMD = 0x901F+gl_TRANSFORM_FEEDBACK_BUFFER_MODE_NV :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F+gl_VERTEX_ATTRIB_ARRAY_STRIDE :: GLenum+gl_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624+gl_UNSIGNED_INT16_VEC4_NV :: GLenum+gl_UNSIGNED_INT16_VEC4_NV = 0x8FF3+gl_OBJECT_BUFFER_SIZE_ATI :: GLenum+gl_OBJECT_BUFFER_SIZE_ATI = 0x8764+gl_YCRCB_444_SGIX :: GLenum+gl_YCRCB_444_SGIX = 0x81BC+gl_LOSE_CONTEXT_ON_RESET_KHR :: GLenum+gl_LOSE_CONTEXT_ON_RESET_KHR = 0x8252+gl_TEXTURE_VIEW_NUM_LAYERS :: GLenum+gl_TEXTURE_VIEW_NUM_LAYERS = 0x82DE+gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB :: GLenum+gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D+gl_PERFQUERY_COUNTER_DATA_BOOL32_INTEL :: GLenum+gl_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC+gl_OBJECT_DELETE_STATUS_ARB :: GLenum+gl_OBJECT_DELETE_STATUS_ARB = 0x8B80+gl_SQUARE_NV :: GLenum+gl_SQUARE_NV = 0x90A3+gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT :: GLenum+gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81+gl_DEBUG_SEVERITY_NOTIFICATION_KHR :: GLenum+gl_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B+gl_EYE_LINEAR_NV :: GLenum+gl_EYE_LINEAR_NV = 0x2400+gl_REG_16_ATI :: GLenum+gl_REG_16_ATI = 0x8931+gl_LUMINANCE_ALPHA32UI_EXT :: GLenum+gl_LUMINANCE_ALPHA32UI_EXT = 0x8D75+gl_OUTPUT_TEXTURE_COORD31_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC+gl_COMPRESSED_RG_RGTC2 :: GLenum+gl_COMPRESSED_RG_RGTC2 = 0x8DBD+gl_FLOAT_MAT3 :: GLenum+gl_FLOAT_MAT3 = 0x8B5B+gl_INDEX_ARRAY_POINTER :: GLenum+gl_INDEX_ARRAY_POINTER = 0x8091+gl_FOG_COORD :: GLenum+gl_FOG_COORD = 0x8451+gl_DRAW_BUFFER13 :: GLenum+gl_DRAW_BUFFER13 = 0x8832+gl_SCALED_RESOLVE_NICEST_EXT :: GLenum+gl_SCALED_RESOLVE_NICEST_EXT = 0x90BB+gl_QUERY_RESULT_AVAILABLE :: GLenum+gl_QUERY_RESULT_AVAILABLE = 0x8867+gl_UNPACK_SUBSAMPLE_RATE_SGIX :: GLenum+gl_UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1+gl_3_BYTES_NV :: GLenum+gl_3_BYTES_NV = 0x1408+gl_CLEAR :: GLenum+gl_CLEAR = 0x1500+gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT :: GLenum+gl_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD+gl_R8UI :: GLenum+gl_R8UI = 0x8232+gl_OFFSET_TEXTURE_2D_MATRIX_NV :: GLenum+gl_OFFSET_TEXTURE_2D_MATRIX_NV = 0x86E1+gl_BGRA_INTEGER :: GLenum+gl_BGRA_INTEGER = 0x8D9B+gl_MAX_ARRAY_TEXTURE_LAYERS :: GLenum+gl_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF+gl_COMPRESSED_RGB_ARB :: GLenum+gl_COMPRESSED_RGB_ARB = 0x84ED+gl_FOG_COORDINATE_ARRAY_POINTER_EXT :: GLenum+gl_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456+gl_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT :: GLenum+gl_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = 0x00000020+gl_TEXTURE_MAG_FILTER :: GLenum+gl_TEXTURE_MAG_FILTER = 0x2800+gl_DEPTH_COMPONENT32 :: GLenum+gl_DEPTH_COMPONENT32 = 0x81A7+gl_VIEW_CLASS_S3TC_DXT1_RGB :: GLenum+gl_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC+gl_FRONT_RIGHT :: GLenum+gl_FRONT_RIGHT = 0x0401+gl_HISTOGRAM_WIDTH :: GLenum+gl_HISTOGRAM_WIDTH = 0x8026+gl_SAMPLER_CUBE_MAP_ARRAY_ARB :: GLenum+gl_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C+gl_WEIGHT_ARRAY_STRIDE_OES :: GLenum+gl_WEIGHT_ARRAY_STRIDE_OES = 0x86AA+gl_PIXEL_PACK_BUFFER_ARB :: GLenum+gl_PIXEL_PACK_BUFFER_ARB = 0x88EB+gl_DOT_PRODUCT_PASS_THROUGH_NV :: GLenum+gl_DOT_PRODUCT_PASS_THROUGH_NV = 0x885B+gl_COMPRESSED_RG11_EAC :: GLenum+gl_COMPRESSED_RG11_EAC = 0x9272+gl_SRGB_DECODE_ARB :: GLenum+gl_SRGB_DECODE_ARB = 0x8299+gl_OP_SUB_EXT :: GLenum+gl_OP_SUB_EXT = 0x8796+gl_SLIM12S_SGIX :: GLenum+gl_SLIM12S_SGIX = 0x831F+gl_SECONDARY_COLOR_NV :: GLenum+gl_SECONDARY_COLOR_NV = 0x852D+gl_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS :: GLenum+gl_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA+gl_MAP1_VERTEX_3 :: GLenum+gl_MAP1_VERTEX_3 = 0x0D97+gl_RELATIVE_ROUNDED_RECT8_NV :: GLenum+gl_RELATIVE_ROUNDED_RECT8_NV = 0xEF+gl_PALETTE4_R5_G6_B5_OES :: GLenum+gl_PALETTE4_R5_G6_B5_OES = 0x8B92+gl_UNSIGNED_INT8_NV :: GLenum+gl_UNSIGNED_INT8_NV = 0x8FEC+gl_CURRENT_MATRIX_STACK_DEPTH_ARB :: GLenum+gl_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640+gl_PIXEL_MODE_BIT :: GLenum+gl_PIXEL_MODE_BIT = 0x00000020+gl_FONT_UNINTELLIGIBLE_NV :: GLenum+gl_FONT_UNINTELLIGIBLE_NV = 0x936B+gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6+gl_LUMINANCE8UI_EXT :: GLenum+gl_LUMINANCE8UI_EXT = 0x8D80+gl_HILO16_NV :: GLenum+gl_HILO16_NV = 0x86F8+gl_MAP2_VERTEX_ATTRIB8_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678+gl_ATTACHED_SHADERS :: GLenum+gl_ATTACHED_SHADERS = 0x8B85+gl_OBJECT_POINT_SGIS :: GLenum+gl_OBJECT_POINT_SGIS = 0x81F5+gl_TEXTURE_CUBE_MAP_SEAMLESS :: GLenum+gl_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F+gl_COLOR_ATTACHMENT0 :: GLenum+gl_COLOR_ATTACHMENT0 = 0x8CE0+gl_POST_CONVOLUTION_ALPHA_BIAS_EXT :: GLenum+gl_POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023+gl_SAMPLE_PATTERN_SGIS :: GLenum+gl_SAMPLE_PATTERN_SGIS = 0x80AC+gl_COPY_PIXEL_TOKEN :: GLenum+gl_COPY_PIXEL_TOKEN = 0x0706+gl_BUFFER_SIZE_ARB :: GLenum+gl_BUFFER_SIZE_ARB = 0x8764+gl_DEPTH_BOUNDS_TEST_EXT :: GLenum+gl_DEPTH_BOUNDS_TEST_EXT = 0x8890+gl_SAMPLE_POSITION :: GLenum+gl_SAMPLE_POSITION = 0x8E50+gl_FULL_STIPPLE_HINT_PGI :: GLenum+gl_FULL_STIPPLE_HINT_PGI = 0x1A219+gl_DEBUG_ASSERT_MESA :: GLenum+gl_DEBUG_ASSERT_MESA = 0x875B+gl_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB :: GLenum+gl_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A+gl_RENDERBUFFER_WIDTH_OES :: GLenum+gl_RENDERBUFFER_WIDTH_OES = 0x8D42+gl_FLOAT_RGBA16_NV :: GLenum+gl_FLOAT_RGBA16_NV = 0x888A+gl_MODELVIEW5_ARB :: GLenum+gl_MODELVIEW5_ARB = 0x8725+gl_VERSION :: GLenum+gl_VERSION = 0x1F02+gl_TEXTURE17_ARB :: GLenum+gl_TEXTURE17_ARB = 0x84D1+gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT :: GLenum+gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8A32+gl_MODELVIEW0_STACK_DEPTH_EXT :: GLenum+gl_MODELVIEW0_STACK_DEPTH_EXT = 0x0BA3+gl_OUTPUT_TEXTURE_COORD1_EXT :: GLenum+gl_OUTPUT_TEXTURE_COORD1_EXT = 0x879E+gl_REQUIRED_TEXTURE_IMAGE_UNITS_OES :: GLenum+gl_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68+gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX :: GLenum+gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408+gl_IMAGE_TRANSFORM_2D_HP :: GLenum+gl_IMAGE_TRANSFORM_2D_HP = 0x8161+gl_HSL_SATURATION_NV :: GLenum+gl_HSL_SATURATION_NV = 0x92AE+gl_UNSIGNED_SHORT_5_6_5_REV :: GLenum+gl_UNSIGNED_SHORT_5_6_5_REV = 0x8364+gl_LINEAR_CLIPMAP_NEAREST_SGIX :: GLenum+gl_LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F+gl_PREVIOUS_ARB :: GLenum+gl_PREVIOUS_ARB = 0x8578+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4+gl_PERFQUERY_COUNTER_DURATION_NORM_INTEL :: GLenum+gl_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1+gl_SLUMINANCE8_EXT :: GLenum+gl_SLUMINANCE8_EXT = 0x8C47+gl_RGBA16F_ARB :: GLenum+gl_RGBA16F_ARB = 0x881A+gl_PIXEL_UNPACK_BUFFER_ARB :: GLenum+gl_PIXEL_UNPACK_BUFFER_ARB = 0x88EC+gl_STENCIL_REF :: GLenum+gl_STENCIL_REF = 0x0B97+gl_TEXTURE_VIEW_MIN_LAYER_EXT :: GLenum+gl_TEXTURE_VIEW_MIN_LAYER_EXT = 0x82DD+gl_HISTOGRAM_RED_SIZE :: GLenum+gl_HISTOGRAM_RED_SIZE = 0x8028+gl_CLIP_PLANE1 :: GLenum+gl_CLIP_PLANE1 = 0x3001+gl_UNKNOWN_CONTEXT_RESET_ARB :: GLenum+gl_UNKNOWN_CONTEXT_RESET_ARB = 0x8255+gl_CMYK_EXT :: GLenum+gl_CMYK_EXT = 0x800C+gl_TEXTURE_COMPRESSED_BLOCK_SIZE :: GLenum+gl_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3+gl_RGBA8I :: GLenum+gl_RGBA8I = 0x8D8E+gl_TEXTURE29_ARB :: GLenum+gl_TEXTURE29_ARB = 0x84DD+gl_STENCIL_BUFFER_BIT2_QCOM :: GLenum+gl_STENCIL_BUFFER_BIT2_QCOM = 0x00040000+gl_RED_MIN_CLAMP_INGR :: GLenum+gl_RED_MIN_CLAMP_INGR = 0x8560+gl_ATC_RGBA_EXPLICIT_ALPHA_AMD :: GLenum+gl_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93+gl_ALL_COMPLETED_NV :: GLenum+gl_ALL_COMPLETED_NV = 0x84F2+gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE :: GLenum+gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5+gl_MATRIX10_ARB :: GLenum+gl_MATRIX10_ARB = 0x88CA+gl_MAP1_VERTEX_ATTRIB1_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661+gl_MAX_4D_TEXTURE_SIZE_SGIS :: GLenum+gl_MAX_4D_TEXTURE_SIZE_SGIS = 0x8138+gl_VIEW_CLASS_32_BITS :: GLenum+gl_VIEW_CLASS_32_BITS = 0x82C8+gl_TEXTURE7_ARB :: GLenum+gl_TEXTURE7_ARB = 0x84C7+gl_DEBUG_TYPE_PERFORMANCE_ARB :: GLenum+gl_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250+gl_ACTIVE_VARIABLES :: GLenum+gl_ACTIVE_VARIABLES = 0x9305+gl_SOURCE2_RGB_EXT :: GLenum+gl_SOURCE2_RGB_EXT = 0x8582+gl_PACK_INVERT_MESA :: GLenum+gl_PACK_INVERT_MESA = 0x8758+gl_QUERY_BY_REGION_WAIT_NV :: GLenum+gl_QUERY_BY_REGION_WAIT_NV = 0x8E15+gl_VERTEX_ID_SWIZZLE_AMD :: GLenum+gl_VERTEX_ID_SWIZZLE_AMD = 0x91A5+gl_SPRITE_TRANSLATION_SGIX :: GLenum+gl_SPRITE_TRANSLATION_SGIX = 0x814B+gl_RENDERBUFFER_HEIGHT :: GLenum+gl_RENDERBUFFER_HEIGHT = 0x8D43+gl_CUBIC_EXT :: GLenum+gl_CUBIC_EXT = 0x8334+gl_TEXTURE19_ARB :: GLenum+gl_TEXTURE19_ARB = 0x84D3+gl_T2F_N3F_V3F :: GLenum+gl_T2F_N3F_V3F = 0x2A2B+gl_ATOMIC_COUNTER_BARRIER_BIT_EXT :: GLenum+gl_ATOMIC_COUNTER_BARRIER_BIT_EXT = 0x00001000+gl_ARRAY_ELEMENT_LOCK_FIRST_EXT :: GLenum+gl_ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8+gl_PROGRAM_RESULT_COMPONENTS_NV :: GLenum+gl_PROGRAM_RESULT_COMPONENTS_NV = 0x8907+gl_MAX_RECTANGLE_TEXTURE_SIZE_ARB :: GLenum+gl_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8+gl_TRIANGLE_MESH_SUN :: GLenum+gl_TRIANGLE_MESH_SUN = 0x8615+gl_TEXTURE_WRAP_Q_SGIS :: GLenum+gl_TEXTURE_WRAP_Q_SGIS = 0x8137+gl_ATTRIB_ARRAY_SIZE_NV :: GLenum+gl_ATTRIB_ARRAY_SIZE_NV = 0x8623+gl_DEBUG_LOGGED_MESSAGES_AMD :: GLenum+gl_DEBUG_LOGGED_MESSAGES_AMD = 0x9145+gl_BOOL :: GLenum+gl_BOOL = 0x8B56+gl_MIN_LOD_WARNING_AMD :: GLenum+gl_MIN_LOD_WARNING_AMD = 0x919C+gl_PACK_SKIP_PIXELS :: GLenum+gl_PACK_SKIP_PIXELS = 0x0D04+gl_IMAGE_TEXEL_SIZE :: GLenum+gl_IMAGE_TEXEL_SIZE = 0x82A7+gl_SRC_ALPHA :: GLenum+gl_SRC_ALPHA = 0x0302+gl_DEPENDENT_HILO_TEXTURE_2D_NV :: GLenum+gl_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858+gl_FRAMEBUFFER_ATTACHMENT_LAYERED :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7+gl_PERFQUERY_COUNTER_DATA_UINT32_INTEL :: GLenum+gl_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1+gl_VERTEX_ARRAY_RANGE_LENGTH_NV :: GLenum+gl_VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E+gl_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS :: GLenum+gl_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9+gl_POST_CONVOLUTION_GREEN_SCALE :: GLenum+gl_POST_CONVOLUTION_GREEN_SCALE = 0x801D+gl_SEPARATE_ATTRIBS :: GLenum+gl_SEPARATE_ATTRIBS = 0x8C8D+gl_UNSIGNED_BYTE_3_3_2 :: GLenum+gl_UNSIGNED_BYTE_3_3_2 = 0x8032+gl_SCALAR_EXT :: GLenum+gl_SCALAR_EXT = 0x87BE+gl_POINT_SIZE_ARRAY_STRIDE_OES :: GLenum+gl_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B+gl_DOUBLE_MAT3x4 :: GLenum+gl_DOUBLE_MAT3x4 = 0x8F4C+gl_SRC0_RGB :: GLenum+gl_SRC0_RGB = 0x8580+gl_VIEW_CLASS_BPTC_UNORM :: GLenum+gl_VIEW_CLASS_BPTC_UNORM = 0x82D2+gl_SYNC_FLAGS :: GLenum+gl_SYNC_FLAGS = 0x9115+gl_TEXTURE_SWIZZLE_RGBA_EXT :: GLenum+gl_TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46+gl_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX :: GLenum+gl_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C+gl_TEXTURE29 :: GLenum+gl_TEXTURE29 = 0x84DD+gl_MEDIUM_INT :: GLenum+gl_MEDIUM_INT = 0x8DF4+gl_CURRENT_QUERY_ARB :: GLenum+gl_CURRENT_QUERY_ARB = 0x8865+gl_DT_SCALE_NV :: GLenum+gl_DT_SCALE_NV = 0x8711+gl_CLAMP_VERTEX_COLOR_ARB :: GLenum+gl_CLAMP_VERTEX_COLOR_ARB = 0x891A+gl_DEPTH_BUFFER_BIT4_QCOM :: GLenum+gl_DEPTH_BUFFER_BIT4_QCOM = 0x00001000+gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: GLenum+gl_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277+gl_USE_MISSING_GLYPH_NV :: GLenum+gl_USE_MISSING_GLYPH_NV = 0x90AA+gl_MAX_ASYNC_TEX_IMAGE_SGIX :: GLenum+gl_MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F+gl_TESS_CONTROL_TEXTURE :: GLenum+gl_TESS_CONTROL_TEXTURE = 0x829C+gl_DEPTH_FUNC :: GLenum+gl_DEPTH_FUNC = 0x0B74+gl_RG8I :: GLenum+gl_RG8I = 0x8237+gl_MAX_VERTEX_SHADER_VARIANTS_EXT :: GLenum+gl_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6+gl_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB :: GLenum+gl_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2+gl_COMPRESSED_SRGB :: GLenum+gl_COMPRESSED_SRGB = 0x8C48+gl_PROGRAM_BINDING_ARB :: GLenum+gl_PROGRAM_BINDING_ARB = 0x8677+gl_SAMPLER_2D_ARRAY :: GLenum+gl_SAMPLER_2D_ARRAY = 0x8DC1+gl_IMAGE_CUBE_MAP_ARRAY_EXT :: GLenum+gl_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054+gl_BUFFER_ACCESS_FLAGS :: GLenum+gl_BUFFER_ACCESS_FLAGS = 0x911F+gl_EIGHTH_BIT_ATI :: GLenum+gl_EIGHTH_BIT_ATI = 0x00000020+gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV :: GLenum+gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868+gl_INT8_VEC4_NV :: GLenum+gl_INT8_VEC4_NV = 0x8FE3+gl_CLEAR_TEXTURE :: GLenum+gl_CLEAR_TEXTURE = 0x9365+gl_TEXTURE_CUBE_MAP_OES :: GLenum+gl_TEXTURE_CUBE_MAP_OES = 0x8513+gl_FONT_NUM_GLYPH_INDICES_BIT_NV :: GLenum+gl_FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000+gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV :: GLenum+gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520+gl_RENDERBUFFER_DEPTH_SIZE :: GLenum+gl_RENDERBUFFER_DEPTH_SIZE = 0x8D54+gl_DOT_PRODUCT_TEXTURE_1D_NV :: GLenum+gl_DOT_PRODUCT_TEXTURE_1D_NV = 0x885C+gl_DOUBLE_VEC3_EXT :: GLenum+gl_DOUBLE_VEC3_EXT = 0x8FFD+gl_VERTEX_ATTRIB_ARRAY_UNIFIED_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E+gl_TEXTURE_LUMINANCE_TYPE :: GLenum+gl_TEXTURE_LUMINANCE_TYPE = 0x8C14+gl_CONTEXT_FLAGS :: GLenum+gl_CONTEXT_FLAGS = 0x821E+gl_NORMAL_ARRAY_BUFFER_BINDING :: GLenum+gl_NORMAL_ARRAY_BUFFER_BINDING = 0x8897+gl_PROGRAM_FORMAT_ARB :: GLenum+gl_PROGRAM_FORMAT_ARB = 0x8876+gl_MOVE_TO_CONTINUES_NV :: GLenum+gl_MOVE_TO_CONTINUES_NV = 0x90B6+gl_LO_BIAS_NV :: GLenum+gl_LO_BIAS_NV = 0x8715+gl_CONVOLUTION_WIDTH_EXT :: GLenum+gl_CONVOLUTION_WIDTH_EXT = 0x8018+gl_FRAGMENT_TEXTURE :: GLenum+gl_FRAGMENT_TEXTURE = 0x829F+gl_NORMAL_BIT_PGI :: GLenum+gl_NORMAL_BIT_PGI = 0x08000000+gl_COMPRESSED_SIGNED_RG11_EAC_OES :: GLenum+gl_COMPRESSED_SIGNED_RG11_EAC_OES = 0x9273+gl_FIRST_VERTEX_CONVENTION :: GLenum+gl_FIRST_VERTEX_CONVENTION = 0x8E4D+gl_ROUNDED_RECT2_NV :: GLenum+gl_ROUNDED_RECT2_NV = 0xEA+gl_POST_COLOR_MATRIX_RED_BIAS :: GLenum+gl_POST_COLOR_MATRIX_RED_BIAS = 0x80B8+gl_UNIFORM_BUFFER :: GLenum+gl_UNIFORM_BUFFER = 0x8A11+gl_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT :: GLenum+gl_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336+gl_NUM_SAMPLE_COUNTS :: GLenum+gl_NUM_SAMPLE_COUNTS = 0x9380+gl_FOG_OFFSET_VALUE_SGIX :: GLenum+gl_FOG_OFFSET_VALUE_SGIX = 0x8199+gl_DIFFUSE :: GLenum+gl_DIFFUSE = 0x1201+gl_CLIP_PLANE5 :: GLenum+gl_CLIP_PLANE5 = 0x3005+gl_OUTPUT_FOG_EXT :: GLenum+gl_OUTPUT_FOG_EXT = 0x87BD+gl_PROGRAM_ATTRIB_COMPONENTS_NV :: GLenum+gl_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906+gl_RGBA_SIGNED_COMPONENTS_EXT :: GLenum+gl_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C+gl_COLOR_ARRAY_EXT :: GLenum+gl_COLOR_ARRAY_EXT = 0x8076+gl_PROXY_TEXTURE_1D_STACK_MESAX :: GLenum+gl_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B+gl_TEXTURE_COORD_ARRAY_POINTER :: GLenum+gl_TEXTURE_COORD_ARRAY_POINTER = 0x8092+gl_MAX_COLOR_ATTACHMENTS :: GLenum+gl_MAX_COLOR_ATTACHMENTS = 0x8CDF+gl_TEXTURE28_ARB :: GLenum+gl_TEXTURE28_ARB = 0x84DC+gl_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX :: GLenum+gl_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403+gl_DEPTH24_STENCIL8_EXT :: GLenum+gl_DEPTH24_STENCIL8_EXT = 0x88F0+gl_MAX :: GLenum+gl_MAX = 0x8008+gl_MODELVIEW12_ARB :: GLenum+gl_MODELVIEW12_ARB = 0x872C+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = 0x93E9+gl_PIXEL_MAP_I_TO_I_SIZE :: GLenum+gl_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0+gl_NORMAL_ARRAY_LIST_STRIDE_IBM :: GLenum+gl_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081+gl_SOURCE3_RGB_NV :: GLenum+gl_SOURCE3_RGB_NV = 0x8583+gl_ALPHA12_EXT :: GLenum+gl_ALPHA12_EXT = 0x803D+gl_STREAM_COPY_ARB :: GLenum+gl_STREAM_COPY_ARB = 0x88E2+gl_STENCIL_BACK_PASS_DEPTH_FAIL_ATI :: GLenum+gl_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802+gl_FRAGMENT_SUBROUTINE_UNIFORM :: GLenum+gl_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2+gl_IS_ROW_MAJOR :: GLenum+gl_IS_ROW_MAJOR = 0x9300+gl_UNPACK_SKIP_IMAGES :: GLenum+gl_UNPACK_SKIP_IMAGES = 0x806D+gl_NUM_GENERAL_COMBINERS_NV :: GLenum+gl_NUM_GENERAL_COMBINERS_NV = 0x854E+gl_STENCIL_CLEAR_TAG_VALUE_EXT :: GLenum+gl_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3+gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS :: GLenum+gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29+gl_DRAW_BUFFER12_ARB :: GLenum+gl_DRAW_BUFFER12_ARB = 0x8831+gl_OFFSET_PROJECTIVE_TEXTURE_2D_NV :: GLenum+gl_OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850+gl_VERTEX_ARRAY_OBJECT_EXT :: GLenum+gl_VERTEX_ARRAY_OBJECT_EXT = 0x9154+gl_PN_TRIANGLES_NORMAL_MODE_ATI :: GLenum+gl_PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3+gl_C4UB_V3F :: GLenum+gl_C4UB_V3F = 0x2A23+gl_REPEAT :: GLenum+gl_REPEAT = 0x2901+gl_MAX_SAMPLE_MASK_WORDS_NV :: GLenum+gl_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59+gl_STORAGE_SHARED_APPLE :: GLenum+gl_STORAGE_SHARED_APPLE = 0x85BF+gl_TEXTURE9_ARB :: GLenum+gl_TEXTURE9_ARB = 0x84C9+gl_QUERY_BUFFER_BINDING :: GLenum+gl_QUERY_BUFFER_BINDING = 0x9193+gl_UNSIGNED_SHORT_8_8_REV_APPLE :: GLenum+gl_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB+gl_MAX_FRAGMENT_UNIFORM_VECTORS :: GLenum+gl_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD+gl_UNDEFINED_APPLE :: GLenum+gl_UNDEFINED_APPLE = 0x8A1C+gl_TABLE_TOO_LARGE_EXT :: GLenum+gl_TABLE_TOO_LARGE_EXT = 0x8031+gl_MAX_TESS_PATCH_COMPONENTS_EXT :: GLenum+gl_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84+gl_XOR_NV :: GLenum+gl_XOR_NV = 0x1506+gl_MAX_SHADER_BUFFER_ADDRESS_NV :: GLenum+gl_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35+gl_DEBUG_SOURCE_WINDOW_SYSTEM :: GLenum+gl_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247+gl_UNSIGNALED_APPLE :: GLenum+gl_UNSIGNALED_APPLE = 0x9118+gl_SIGNED_LUMINANCE_NV :: GLenum+gl_SIGNED_LUMINANCE_NV = 0x8701+gl_FOG_DISTANCE_MODE_NV :: GLenum+gl_FOG_DISTANCE_MODE_NV = 0x855A+gl_PN_TRIANGLES_POINT_MODE_ATI :: GLenum+gl_PN_TRIANGLES_POINT_MODE_ATI = 0x87F2+gl_GEOMETRY_SUBROUTINE_UNIFORM :: GLenum+gl_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1+gl_NEGATIVE_Z_EXT :: GLenum+gl_NEGATIVE_Z_EXT = 0x87DB+gl_PIXEL_MAP_R_TO_R :: GLenum+gl_PIXEL_MAP_R_TO_R = 0x0C76+gl_OBJECT_LINK_STATUS_ARB :: GLenum+gl_OBJECT_LINK_STATUS_ARB = 0x8B82+gl_NUM_ACTIVE_VARIABLES :: GLenum+gl_NUM_ACTIVE_VARIABLES = 0x9304+gl_BUFFER_UPDATE_BARRIER_BIT_EXT :: GLenum+gl_BUFFER_UPDATE_BARRIER_BIT_EXT = 0x00000200+gl_IMAGE_CUBE_EXT :: GLenum+gl_IMAGE_CUBE_EXT = 0x9050+gl_RGB_INTEGER_EXT :: GLenum+gl_RGB_INTEGER_EXT = 0x8D98+gl_DRAW_BUFFER13_EXT :: GLenum+gl_DRAW_BUFFER13_EXT = 0x8832+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0+gl_SYNC_GPU_COMMANDS_COMPLETE_APPLE :: GLenum+gl_SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117+gl_RGB_SCALE :: GLenum+gl_RGB_SCALE = 0x8573+gl_DOUBLE_MAT3x4_EXT :: GLenum+gl_DOUBLE_MAT3x4_EXT = 0x8F4C+gl_EXP :: GLenum+gl_EXP = 0x0800+gl_PERFMON_RESULT_AVAILABLE_AMD :: GLenum+gl_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4+gl_STENCIL_VALUE_MASK :: GLenum+gl_STENCIL_VALUE_MASK = 0x0B93+gl_COLOR_ATTACHMENT12_NV :: GLenum+gl_COLOR_ATTACHMENT12_NV = 0x8CEC+gl_VERTEX_STREAM2_ATI :: GLenum+gl_VERTEX_STREAM2_ATI = 0x876E+gl_MAP_COHERENT_BIT :: GLenum+gl_MAP_COHERENT_BIT = 0x0080+gl_COMPRESSED_SIGNED_RG_RGTC2 :: GLenum+gl_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE+gl_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER :: GLenum+gl_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC+gl_FRAGMENT_PROGRAM_ARB :: GLenum+gl_FRAGMENT_PROGRAM_ARB = 0x8804+gl_COLOR_BUFFER_BIT6_QCOM :: GLenum+gl_COLOR_BUFFER_BIT6_QCOM = 0x00000040+gl_FLOAT_32_UNSIGNED_INT_24_8_REV_NV :: GLenum+gl_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD+gl_WIDE_LINE_HINT_PGI :: GLenum+gl_WIDE_LINE_HINT_PGI = 0x1A222+gl_FRAGMENT_LIGHT4_SGIX :: GLenum+gl_FRAGMENT_LIGHT4_SGIX = 0x8410+gl_RGBA_FLOAT_MODE_ATI :: GLenum+gl_RGBA_FLOAT_MODE_ATI = 0x8820+gl_UNSIGNED_INT_10F_11F_11F_REV :: GLenum+gl_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B+gl_MODELVIEW1_STACK_DEPTH_EXT :: GLenum+gl_MODELVIEW1_STACK_DEPTH_EXT = 0x8502+gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24+gl_POINT_SIZE_MAX :: GLenum+gl_POINT_SIZE_MAX = 0x8127+gl_ALPHA_TEST_REF_QCOM :: GLenum+gl_ALPHA_TEST_REF_QCOM = 0x0BC2+gl_RELATIVE_HORIZONTAL_LINE_TO_NV :: GLenum+gl_RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07+gl_FILTER4_SGIS :: GLenum+gl_FILTER4_SGIS = 0x8146+gl_TEXTURE4 :: GLenum+gl_TEXTURE4 = 0x84C4+gl_INDEX_MATERIAL_EXT :: GLenum+gl_INDEX_MATERIAL_EXT = 0x81B8+gl_FETCH_PER_SAMPLE_ARM :: GLenum+gl_FETCH_PER_SAMPLE_ARM = 0x8F65+gl_VARIANT_ARRAY_TYPE_EXT :: GLenum+gl_VARIANT_ARRAY_TYPE_EXT = 0x87E7+gl_ALPHA_MAX_SGIX :: GLenum+gl_ALPHA_MAX_SGIX = 0x8321+gl_NUM_INSTRUCTIONS_TOTAL_ATI :: GLenum+gl_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972+gl_TEXTURE_IMAGE_TYPE :: GLenum+gl_TEXTURE_IMAGE_TYPE = 0x8290+gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS :: GLenum+gl_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB+gl_DRAW_BUFFER11_NV :: GLenum+gl_DRAW_BUFFER11_NV = 0x8830+gl_SURFACE_STATE_NV :: GLenum+gl_SURFACE_STATE_NV = 0x86EB+gl_BLEND_SRC_RGB :: GLenum+gl_BLEND_SRC_RGB = 0x80C9+gl_OBJECT_ACTIVE_UNIFORMS_ARB :: GLenum+gl_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86+gl_COLORDODGE_NV :: GLenum+gl_COLORDODGE_NV = 0x9299+gl_PRIMITIVES_GENERATED_NV :: GLenum+gl_PRIMITIVES_GENERATED_NV = 0x8C87+gl_IMAGE_2D_ARRAY :: GLenum+gl_IMAGE_2D_ARRAY = 0x9053+gl_LOSE_CONTEXT_ON_RESET_ARB :: GLenum+gl_LOSE_CONTEXT_ON_RESET_ARB = 0x8252+gl_RG_INTEGER :: GLenum+gl_RG_INTEGER = 0x8228+gl_UNSIGNED_INT_SAMPLER_1D_EXT :: GLenum+gl_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1+gl_REFLECTION_MAP_ARB :: GLenum+gl_REFLECTION_MAP_ARB = 0x8512+gl_NORMAL_ARRAY_TYPE_EXT :: GLenum+gl_NORMAL_ARRAY_TYPE_EXT = 0x807E+gl_BLUE_BITS :: GLenum+gl_BLUE_BITS = 0x0D54+gl_ATOMIC_COUNTER_BARRIER_BIT :: GLenum+gl_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000+gl_INTENSITY8I_EXT :: GLenum+gl_INTENSITY8I_EXT = 0x8D91+gl_TEXTURE_BINDING_RECTANGLE_ARB :: GLenum+gl_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6+gl_SCALE_BY_TWO_NV :: GLenum+gl_SCALE_BY_TWO_NV = 0x853E+gl_PACK_IMAGE_HEIGHT :: GLenum+gl_PACK_IMAGE_HEIGHT = 0x806C+gl_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL :: GLenum+gl_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF+gl_DEPTH_COMPONENT24_SGIX :: GLenum+gl_DEPTH_COMPONENT24_SGIX = 0x81A6+gl_NUM_FRAGMENT_CONSTANTS_ATI :: GLenum+gl_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F+gl_EDGE_FLAG_ARRAY_STRIDE_EXT :: GLenum+gl_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C+gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT :: GLenum+gl_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = 0x900A+gl_SAMPLE_ALPHA_TO_COVERAGE_ARB :: GLenum+gl_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E+gl_UNPACK_SKIP_IMAGES_EXT :: GLenum+gl_UNPACK_SKIP_IMAGES_EXT = 0x806D+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL :: GLenum+gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2+gl_RGBA8_OES :: GLenum+gl_RGBA8_OES = 0x8058+gl_STENCIL_INDEX8_OES :: GLenum+gl_STENCIL_INDEX8_OES = 0x8D48+gl_MAX_SPARSE_3D_TEXTURE_SIZE_AMD :: GLenum+gl_MAX_SPARSE_3D_TEXTURE_SIZE_AMD = 0x9199+gl_COMPUTE_SHADER :: GLenum+gl_COMPUTE_SHADER = 0x91B9+gl_QUERY_WAIT_NV :: GLenum+gl_QUERY_WAIT_NV = 0x8E13+gl_TEXTURE_COMPARE_FUNC_ARB :: GLenum+gl_TEXTURE_COMPARE_FUNC_ARB = 0x884D+gl_SCREEN_COORDINATES_REND :: GLenum+gl_SCREEN_COORDINATES_REND = 0x8490+gl_DRAW_BUFFER4_EXT :: GLenum+gl_DRAW_BUFFER4_EXT = 0x8829+gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT :: GLenum+gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337+gl_TOP_LEVEL_ARRAY_SIZE :: GLenum+gl_TOP_LEVEL_ARRAY_SIZE = 0x930C+gl_STATIC_COPY_ARB :: GLenum+gl_STATIC_COPY_ARB = 0x88E6+gl_MAP1_TANGENT_EXT :: GLenum+gl_MAP1_TANGENT_EXT = 0x8444+gl_MAP2_VERTEX_ATTRIB11_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B+gl_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX :: GLenum+gl_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = 0x8187+gl_DRAW_BUFFER9 :: GLenum+gl_DRAW_BUFFER9 = 0x882E+gl_COMPRESSED_INTENSITY_ARB :: GLenum+gl_COMPRESSED_INTENSITY_ARB = 0x84EC+gl_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516+gl_MATRIX19_ARB :: GLenum+gl_MATRIX19_ARB = 0x88D3+gl_MAX_MULTIVIEW_BUFFERS_EXT :: GLenum+gl_MAX_MULTIVIEW_BUFFERS_EXT = 0x90F2+gl_CONJOINT_NV :: GLenum+gl_CONJOINT_NV = 0x9284+gl_INTENSITY_SNORM :: GLenum+gl_INTENSITY_SNORM = 0x9013+gl_DRAW_BUFFER14 :: GLenum+gl_DRAW_BUFFER14 = 0x8833+gl_MAX_PROGRAM_INSTRUCTIONS_ARB :: GLenum+gl_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1+gl_TEXTURE_BINDING_RECTANGLE :: GLenum+gl_TEXTURE_BINDING_RECTANGLE = 0x84F6+gl_DEBUG_SOURCE_SHADER_COMPILER_ARB :: GLenum+gl_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR :: GLenum+gl_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD+gl_MULTISAMPLE_EXT :: GLenum+gl_MULTISAMPLE_EXT = 0x809D+gl_NEAREST_MIPMAP_NEAREST :: GLenum+gl_NEAREST_MIPMAP_NEAREST = 0x2700+gl_COLOR_ATTACHMENT7_EXT :: GLenum+gl_COLOR_ATTACHMENT7_EXT = 0x8CE7+gl_STENCIL_BUFFER_BIT6_QCOM :: GLenum+gl_STENCIL_BUFFER_BIT6_QCOM = 0x00400000+gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85+gl_REG_29_ATI :: GLenum+gl_REG_29_ATI = 0x893E+gl_COVERAGE_SAMPLES_NV :: GLenum+gl_COVERAGE_SAMPLES_NV = 0x8ED4+gl_RELEASED_APPLE :: GLenum+gl_RELEASED_APPLE = 0x8A19+gl_ALPHA_TEST_FUNC :: GLenum+gl_ALPHA_TEST_FUNC = 0x0BC1+gl_DRAW_BUFFER2 :: GLenum+gl_DRAW_BUFFER2 = 0x8827+gl_VERTEX_PROGRAM_BINDING_NV :: GLenum+gl_VERTEX_PROGRAM_BINDING_NV = 0x864A+gl_IMAGE_2D_RECT :: GLenum+gl_IMAGE_2D_RECT = 0x904F+gl_COLOR_TABLE_BIAS_SGI :: GLenum+gl_COLOR_TABLE_BIAS_SGI = 0x80D7+gl_CLIENT_ACTIVE_TEXTURE_ARB :: GLenum+gl_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1+gl_CURRENT_MATRIX_INDEX_ARB :: GLenum+gl_CURRENT_MATRIX_INDEX_ARB = 0x8845+gl_TEXTURE_COORD_ARRAY_STRIDE :: GLenum+gl_TEXTURE_COORD_ARRAY_STRIDE = 0x808A+gl_FILTER :: GLenum+gl_FILTER = 0x829A+gl_MAX_MODELVIEW_STACK_DEPTH :: GLenum+gl_MAX_MODELVIEW_STACK_DEPTH = 0x0D36+gl_VERTEX_ATTRIB_ARRAY5_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY5_NV = 0x8655+gl_UNSIGNED_BYTE :: GLenum+gl_UNSIGNED_BYTE = 0x1401+gl_DETAIL_TEXTURE_2D_SGIS :: GLenum+gl_DETAIL_TEXTURE_2D_SGIS = 0x8095+gl_POST_CONVOLUTION_BLUE_BIAS :: GLenum+gl_POST_CONVOLUTION_BLUE_BIAS = 0x8022+gl_TYPE :: GLenum+gl_TYPE = 0x92FA+gl_COMPRESSED_RG :: GLenum+gl_COMPRESSED_RG = 0x8226+gl_4PASS_1_SGIS :: GLenum+gl_4PASS_1_SGIS = 0x80A5+gl_SOURCE2_RGB :: GLenum+gl_SOURCE2_RGB = 0x8582+gl_TEXTURE_MAX_LOD :: GLenum+gl_TEXTURE_MAX_LOD = 0x813B+gl_EYE_DISTANCE_TO_LINE_SGIS :: GLenum+gl_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2+gl_LUMINANCE_ALPHA32F_EXT :: GLenum+gl_LUMINANCE_ALPHA32F_EXT = 0x8819+gl_MATRIX_INDEX_ARRAY_STRIDE_ARB :: GLenum+gl_MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848+gl_COLOR_ATTACHMENT4 :: GLenum+gl_COLOR_ATTACHMENT4 = 0x8CE4+gl_INDEX_ARRAY_BUFFER_BINDING :: GLenum+gl_INDEX_ARRAY_BUFFER_BINDING = 0x8899+gl_UNSIGNED_INT_SAMPLER_2D_ARRAY :: GLenum+gl_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7+gl_PIXEL_TILE_BEST_ALIGNMENT_SGIX :: GLenum+gl_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E+gl_SPECULAR :: GLenum+gl_SPECULAR = 0x1202+gl_PACK_IMAGE_DEPTH_SGIS :: GLenum+gl_PACK_IMAGE_DEPTH_SGIS = 0x8131+gl_PLUS_CLAMPED_NV :: GLenum+gl_PLUS_CLAMPED_NV = 0x92B1+gl_INVALID_FRAMEBUFFER_OPERATION :: GLenum+gl_INVALID_FRAMEBUFFER_OPERATION = 0x0506+gl_RG :: GLenum+gl_RG = 0x8227+gl_COLOR_ATTACHMENT11_NV :: GLenum+gl_COLOR_ATTACHMENT11_NV = 0x8CEB+gl_UNPACK_SKIP_PIXELS :: GLenum+gl_UNPACK_SKIP_PIXELS = 0x0CF4+gl_SAMPLE_BUFFERS :: GLenum+gl_SAMPLE_BUFFERS = 0x80A8+gl_DRAW_BUFFER1_ARB :: GLenum+gl_DRAW_BUFFER1_ARB = 0x8826+gl_COMBINER6_NV :: GLenum+gl_COMBINER6_NV = 0x8556+gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES :: GLenum+gl_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A+gl_TEXTURE_ENV :: GLenum+gl_TEXTURE_ENV = 0x2300+gl_QUAD_MESH_SUN :: GLenum+gl_QUAD_MESH_SUN = 0x8614+gl_REFERENCED_BY_TESS_CONTROL_SHADER_EXT :: GLenum+gl_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV :: GLenum+gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B+gl_TIMEOUT_EXPIRED :: GLenum+gl_TIMEOUT_EXPIRED = 0x911B+gl_FLOAT_MAT4x2_NV :: GLenum+gl_FLOAT_MAT4x2_NV = 0x8B69+gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES :: GLenum+gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910D+gl_COMBINER1_NV :: GLenum+gl_COMBINER1_NV = 0x8551+gl_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB :: GLenum+gl_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7+gl_RENDERBUFFER_SAMPLES_ANGLE :: GLenum+gl_RENDERBUFFER_SAMPLES_ANGLE = 0x8CAB+gl_VERTEX_ARRAY_SIZE :: GLenum+gl_VERTEX_ARRAY_SIZE = 0x807A+gl_TEXTURE2 :: GLenum+gl_TEXTURE2 = 0x84C2+gl_RELATIVE_MOVE_TO_NV :: GLenum+gl_RELATIVE_MOVE_TO_NV = 0x03+gl_ALPHA_TEST_FUNC_QCOM :: GLenum+gl_ALPHA_TEST_FUNC_QCOM = 0x0BC1+gl_INNOCENT_CONTEXT_RESET_KHR :: GLenum+gl_INNOCENT_CONTEXT_RESET_KHR = 0x8254+gl_MAP1_VERTEX_ATTRIB5_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665+gl_SAMPLER_1D_SHADOW :: GLenum+gl_SAMPLER_1D_SHADOW = 0x8B61+gl_TEXTURE_1D_ARRAY_EXT :: GLenum+gl_TEXTURE_1D_ARRAY_EXT = 0x8C18+gl_STENCIL_INDEX :: GLenum+gl_STENCIL_INDEX = 0x1901+gl_SOURCE2_ALPHA_EXT :: GLenum+gl_SOURCE2_ALPHA_EXT = 0x858A+gl_NORMAL_MAP_EXT :: GLenum+gl_NORMAL_MAP_EXT = 0x8511+gl_FOG_COORDINATE_SOURCE_EXT :: GLenum+gl_FOG_COORDINATE_SOURCE_EXT = 0x8450+gl_TEXTURE_FILTER_CONTROL :: GLenum+gl_TEXTURE_FILTER_CONTROL = 0x8500+gl_REPLACE_OLDEST_SUN :: GLenum+gl_REPLACE_OLDEST_SUN = 0x0003+gl_PROGRAM_ADDRESS_REGISTERS_ARB :: GLenum+gl_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0+gl_2PASS_1_EXT :: GLenum+gl_2PASS_1_EXT = 0x80A3+gl_LIGHT_ENV_MODE_SGIX :: GLenum+gl_LIGHT_ENV_MODE_SGIX = 0x8407+gl_OP_FRAC_EXT :: GLenum+gl_OP_FRAC_EXT = 0x8789+gl_PROXY_TEXTURE_RECTANGLE_NV :: GLenum+gl_PROXY_TEXTURE_RECTANGLE_NV = 0x84F7+gl_RENDERBUFFER :: GLenum+gl_RENDERBUFFER = 0x8D41+gl_MAP2_TEXTURE_COORD_4 :: GLenum+gl_MAP2_TEXTURE_COORD_4 = 0x0DB6+gl_TEXTURE_BORDER_COLOR_EXT :: GLenum+gl_TEXTURE_BORDER_COLOR_EXT = 0x1004+gl_SEPARABLE_2D :: GLenum+gl_SEPARABLE_2D = 0x8012+gl_COMPRESSED_SRGB_S3TC_DXT1_EXT :: GLenum+gl_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C+gl_DRAW_BUFFER0_ATI :: GLenum+gl_DRAW_BUFFER0_ATI = 0x8825+gl_TEXTURE_IMMUTABLE_LEVELS :: GLenum+gl_TEXTURE_IMMUTABLE_LEVELS = 0x82DF+gl_E_TIMES_F_NV :: GLenum+gl_E_TIMES_F_NV = 0x8531+gl_MATRIX24_ARB :: GLenum+gl_MATRIX24_ARB = 0x88D8+gl_PIXEL_GROUP_COLOR_SGIS :: GLenum+gl_PIXEL_GROUP_COLOR_SGIS = 0x8356+gl_CURRENT_RASTER_COLOR :: GLenum+gl_CURRENT_RASTER_COLOR = 0x0B04+gl_DOUBLE_MAT2x4_EXT :: GLenum+gl_DOUBLE_MAT2x4_EXT = 0x8F4A+gl_BUMP_TEX_UNITS_ATI :: GLenum+gl_BUMP_TEX_UNITS_ATI = 0x8778+gl_FOG_COORDINATE_ARRAY_EXT :: GLenum+gl_FOG_COORDINATE_ARRAY_EXT = 0x8457+gl_ALWAYS :: GLenum+gl_ALWAYS = 0x0207+gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES :: GLenum+gl_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5B+gl_MAP2_VERTEX_4 :: GLenum+gl_MAP2_VERTEX_4 = 0x0DB8+gl_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG :: GLenum+gl_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03+gl_MODULATE_SIGNED_ADD_ATI :: GLenum+gl_MODULATE_SIGNED_ADD_ATI = 0x8745+gl_RG8 :: GLenum+gl_RG8 = 0x822B+gl_ACTIVE_UNIFORM_BLOCKS :: GLenum+gl_ACTIVE_UNIFORM_BLOCKS = 0x8A36+gl_MAX_SPARSE_TEXTURE_SIZE_AMD :: GLenum+gl_MAX_SPARSE_TEXTURE_SIZE_AMD = 0x9198+gl_COLOR_ATTACHMENT11_EXT :: GLenum+gl_COLOR_ATTACHMENT11_EXT = 0x8CEB+gl_POST_CONVOLUTION_BLUE_BIAS_EXT :: GLenum+gl_POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022+gl_BUFFER_OBJECT_APPLE :: GLenum+gl_BUFFER_OBJECT_APPLE = 0x85B3+gl_UNIFORM_TYPE :: GLenum+gl_UNIFORM_TYPE = 0x8A37+gl_VARIABLE_E_NV :: GLenum+gl_VARIABLE_E_NV = 0x8527+gl_MAX_COMPUTE_ATOMIC_COUNTERS :: GLenum+gl_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265+gl_COMPRESSED_RED_RGTC1 :: GLenum+gl_COMPRESSED_RED_RGTC1 = 0x8DBB+gl_LUMINANCE_INTEGER_EXT :: GLenum+gl_LUMINANCE_INTEGER_EXT = 0x8D9C+gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY :: GLenum+gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F+gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE :: GLenum+gl_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE+gl_R16F_EXT :: GLenum+gl_R16F_EXT = 0x822D+gl_MATRIX4_ARB :: GLenum+gl_MATRIX4_ARB = 0x88C4+gl_MATRIX_INDEX_ARRAY_SIZE_OES :: GLenum+gl_MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846+gl_POLYGON_STIPPLE :: GLenum+gl_POLYGON_STIPPLE = 0x0B42+gl_DUAL_ALPHA12_SGIS :: GLenum+gl_DUAL_ALPHA12_SGIS = 0x8112+gl_PIXEL_MAP_I_TO_B :: GLenum+gl_PIXEL_MAP_I_TO_B = 0x0C74+gl_VERTEX_ATTRIB_ARRAY6_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY6_NV = 0x8656+gl_REG_21_ATI :: GLenum+gl_REG_21_ATI = 0x8936+gl_PERFMON_RESULT_SIZE_AMD :: GLenum+gl_PERFMON_RESULT_SIZE_AMD = 0x8BC5+gl_ALPHA8_OES :: GLenum+gl_ALPHA8_OES = 0x803C+gl_OBJECT_BUFFER_USAGE_ATI :: GLenum+gl_OBJECT_BUFFER_USAGE_ATI = 0x8765+gl_PATH_STENCIL_FUNC_NV :: GLenum+gl_PATH_STENCIL_FUNC_NV = 0x90B7+gl_TEXTURE12_ARB :: GLenum+gl_TEXTURE12_ARB = 0x84CC+gl_DEPTH_COMPONENT16_OES :: GLenum+gl_DEPTH_COMPONENT16_OES = 0x81A5+gl_MODELVIEW20_ARB :: GLenum+gl_MODELVIEW20_ARB = 0x8734+gl_ALPHA12 :: GLenum+gl_ALPHA12 = 0x803D+gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT :: GLenum+gl_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = 0x919F+gl_MODULATE_ADD_ATI :: GLenum+gl_MODULATE_ADD_ATI = 0x8744+gl_CLAMP_TO_BORDER_EXT :: GLenum+gl_CLAMP_TO_BORDER_EXT = 0x812D+gl_CONSTANT_EXT :: GLenum+gl_CONSTANT_EXT = 0x8576+gl_OP_LOG_BASE_2_EXT :: GLenum+gl_OP_LOG_BASE_2_EXT = 0x8792+gl_SET_AMD :: GLenum+gl_SET_AMD = 0x874A+gl_ONE_MINUS_SRC_ALPHA :: GLenum+gl_ONE_MINUS_SRC_ALPHA = 0x0303+gl_COMPRESSED_LUMINANCE_ALPHA_ARB :: GLenum+gl_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB+gl_MAX_SERVER_WAIT_TIMEOUT_APPLE :: GLenum+gl_MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111+gl_LINE_TOKEN :: GLenum+gl_LINE_TOKEN = 0x0702+gl_PROXY_POST_CONVOLUTION_COLOR_TABLE :: GLenum+gl_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4+gl_TEXTURE_BINDING_3D :: GLenum+gl_TEXTURE_BINDING_3D = 0x806A+gl_INTENSITY16I_EXT :: GLenum+gl_INTENSITY16I_EXT = 0x8D8B+gl_DEPENDENT_AR_TEXTURE_2D_NV :: GLenum+gl_DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9+gl_CURRENT_RASTER_NORMAL_SGIX :: GLenum+gl_CURRENT_RASTER_NORMAL_SGIX = 0x8406+gl_TEXTURE_INTENSITY_TYPE :: GLenum+gl_TEXTURE_INTENSITY_TYPE = 0x8C15+gl_TEXTURE_STORAGE_SPARSE_BIT_AMD :: GLenum+gl_TEXTURE_STORAGE_SPARSE_BIT_AMD = 0x00000001+gl_RENDERBUFFER_INTERNAL_FORMAT_EXT :: GLenum+gl_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44+gl_VERTEX_ATTRIB_ARRAY1_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY1_NV = 0x8651+gl_TEXTURE_RED_SIZE :: GLenum+gl_TEXTURE_RED_SIZE = 0x805C+gl_CURRENT_COLOR :: GLenum+gl_CURRENT_COLOR = 0x0B00+gl_COMPRESSED_RGBA_ASTC_8x5_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5+gl_STENCIL_BUFFER_BIT7_QCOM :: GLenum+gl_STENCIL_BUFFER_BIT7_QCOM = 0x00800000+gl_CLIP_PLANE0_IMG :: GLenum+gl_CLIP_PLANE0_IMG = 0x3000+gl_ALPHA_TEST_REF :: GLenum+gl_ALPHA_TEST_REF = 0x0BC2+gl_POINT_SMOOTH :: GLenum+gl_POINT_SMOOTH = 0x0B10+gl_WEIGHT_ARRAY_SIZE_OES :: GLenum+gl_WEIGHT_ARRAY_SIZE_OES = 0x86AB+gl_DECODE_EXT :: GLenum+gl_DECODE_EXT = 0x8A49+gl_SPARSE_BUFFER_PAGE_SIZE_ARB :: GLenum+gl_SPARSE_BUFFER_PAGE_SIZE_ARB = 0x82F8+gl_CLIENT_ATTRIB_STACK_DEPTH :: GLenum+gl_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1+gl_TEXTURE_BINDING_EXTERNAL_OES :: GLenum+gl_TEXTURE_BINDING_EXTERNAL_OES = 0x8D67+gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT :: GLenum+gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A+gl_RENDERBUFFER_STENCIL_SIZE_OES :: GLenum+gl_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55+gl_POST_COLOR_MATRIX_ALPHA_BIAS :: GLenum+gl_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB+gl_COMPARE_REF_DEPTH_TO_TEXTURE_EXT :: GLenum+gl_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E+gl_HSL_LUMINOSITY_KHR :: GLenum+gl_HSL_LUMINOSITY_KHR = 0x92B0+gl_MAX_VERTEX_STREAMS_ATI :: GLenum+gl_MAX_VERTEX_STREAMS_ATI = 0x876B+gl_PERFQUERY_COUNTER_THROUGHPUT_INTEL :: GLenum+gl_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3+gl_COMPRESSED_SIGNED_RED_RGTC1_EXT :: GLenum+gl_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC+gl_DEPTH_COMPONENT32_OES :: GLenum+gl_DEPTH_COMPONENT32_OES = 0x81A7+gl_CON_3_ATI :: GLenum+gl_CON_3_ATI = 0x8944+gl_COMPRESSED_RGBA_S3TC_DXT1_EXT :: GLenum+gl_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1+gl_MATRIX6_ARB :: GLenum+gl_MATRIX6_ARB = 0x88C6+gl_MAP2_VERTEX_ATTRIB5_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675+gl_LINE_WIDTH_RANGE :: GLenum+gl_LINE_WIDTH_RANGE = 0x0B22+gl_GLYPH_VERTICAL_BEARING_X_BIT_NV :: GLenum+gl_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20+gl_FOG_COORDINATE_ARRAY :: GLenum+gl_FOG_COORDINATE_ARRAY = 0x8457+gl_VERTEX_ARRAY_RANGE_LENGTH_APPLE :: GLenum+gl_VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E+gl_CLAMP_FRAGMENT_COLOR :: GLenum+gl_CLAMP_FRAGMENT_COLOR = 0x891B+gl_COMPRESSED_RGBA_ASTC_10x5_KHR :: GLenum+gl_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8+gl_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB :: GLenum+gl_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D+gl_COLOR_BUFFER_BIT4_QCOM :: GLenum+gl_COLOR_BUFFER_BIT4_QCOM = 0x00000010+gl_TEXTURE13 :: GLenum+gl_TEXTURE13 = 0x84CD+gl_MAX_DEBUG_MESSAGE_LENGTH_AMD :: GLenum+gl_MAX_DEBUG_MESSAGE_LENGTH_AMD = 0x9143+gl_EVAL_VERTEX_ATTRIB0_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB0_NV = 0x86C6+gl_ALPHA_MIN_CLAMP_INGR :: GLenum+gl_ALPHA_MIN_CLAMP_INGR = 0x8563+gl_SUB_ATI :: GLenum+gl_SUB_ATI = 0x8965+gl_SECONDARY_COLOR_ARRAY_LIST_IBM :: GLenum+gl_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077+gl_RGBA_INTEGER_MODE_EXT :: GLenum+gl_RGBA_INTEGER_MODE_EXT = 0x8D9E+gl_DEBUG_TYPE_MARKER_KHR :: GLenum+gl_DEBUG_TYPE_MARKER_KHR = 0x8268+gl_VERTEX_ATTRIB_ARRAY14_NV :: GLenum+gl_VERTEX_ATTRIB_ARRAY14_NV = 0x865E+gl_TEXTURE_MIN_LOD :: GLenum+gl_TEXTURE_MIN_LOD = 0x813A+gl_INDEX_TEST_REF_EXT :: GLenum+gl_INDEX_TEST_REF_EXT = 0x81B7+gl_AUX0 :: GLenum+gl_AUX0 = 0x0409+gl_UNSIGNED_INT_IMAGE_2D_RECT :: GLenum+gl_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065+gl_2_BYTES :: GLenum+gl_2_BYTES = 0x1407+gl_UNDEFINED_VERTEX :: GLenum+gl_UNDEFINED_VERTEX = 0x8260+gl_LINE_STIPPLE_PATTERN :: GLenum+gl_LINE_STIPPLE_PATTERN = 0x0B25+gl_FRAMEBUFFER_SRGB_CAPABLE_EXT :: GLenum+gl_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA+gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB :: GLenum+gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F+gl_UNSIGNED_INT_SAMPLER_1D_ARRAY :: GLenum+gl_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6+gl_LOAD :: GLenum+gl_LOAD = 0x0101+gl_SIGNED_ALPHA8_NV :: GLenum+gl_SIGNED_ALPHA8_NV = 0x8706+gl_STENCIL_INDEX8_EXT :: GLenum+gl_STENCIL_INDEX8_EXT = 0x8D48+gl_VIEW_CLASS_24_BITS :: GLenum+gl_VIEW_CLASS_24_BITS = 0x82C9+gl_SHADER_STORAGE_BARRIER_BIT :: GLenum+gl_SHADER_STORAGE_BARRIER_BIT = 0x00002000+gl_UNSIGNED_INT_SAMPLER_BUFFER_AMD :: GLenum+gl_UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003+gl_IMAGE_BINDING_LAYER :: GLenum+gl_IMAGE_BINDING_LAYER = 0x8F3D+gl_MULTISAMPLE_FILTER_HINT_NV :: GLenum+gl_MULTISAMPLE_FILTER_HINT_NV = 0x8534+gl_SPARE1_NV :: GLenum+gl_SPARE1_NV = 0x852F+gl_MAP_READ_BIT_EXT :: GLenum+gl_MAP_READ_BIT_EXT = 0x0001+gl_COMPRESSED_LUMINANCE :: GLenum+gl_COMPRESSED_LUMINANCE = 0x84EA+gl_COMPRESSED_TEXTURE_FORMATS :: GLenum+gl_COMPRESSED_TEXTURE_FORMATS = 0x86A3+gl_UNIFORM_IS_ROW_MAJOR :: GLenum+gl_UNIFORM_IS_ROW_MAJOR = 0x8A3E+gl_OFFSET_TEXTURE_2D_SCALE_NV :: GLenum+gl_OFFSET_TEXTURE_2D_SCALE_NV = 0x86E2+gl_RGBA_DXT5_S3TC :: GLenum+gl_RGBA_DXT5_S3TC = 0x83A4+gl_MAX_PROGRAM_LOCAL_PARAMETERS_ARB :: GLenum+gl_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4+gl_MAX_UNIFORM_BUFFER_BINDINGS :: GLenum+gl_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F+gl_RGB16UI_EXT :: GLenum+gl_RGB16UI_EXT = 0x8D77+gl_TEXTURE_COMPARE_OPERATOR_SGIX :: GLenum+gl_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B+gl_VIDEO_BUFFER_PITCH_NV :: GLenum+gl_VIDEO_BUFFER_PITCH_NV = 0x9028+gl_RELATIVE_RECT_NV :: GLenum+gl_RELATIVE_RECT_NV = 0xF7+gl_DRAW_BUFFER8_ATI :: GLenum+gl_DRAW_BUFFER8_ATI = 0x882D+gl_SRC_COLOR :: GLenum+gl_SRC_COLOR = 0x0300+gl_SHADER_OBJECT_EXT :: GLenum+gl_SHADER_OBJECT_EXT = 0x8B48+gl_GUILTY_CONTEXT_RESET_KHR :: GLenum+gl_GUILTY_CONTEXT_RESET_KHR = 0x8253+gl_EVAL_VERTEX_ATTRIB5_NV :: GLenum+gl_EVAL_VERTEX_ATTRIB5_NV = 0x86CB+gl_PALETTE4_RGBA4_OES :: GLenum+gl_PALETTE4_RGBA4_OES = 0x8B93+gl_LUMINANCE12_EXT :: GLenum+gl_LUMINANCE12_EXT = 0x8041+gl_DONT_CARE :: GLenum+gl_DONT_CARE = 0x1100+gl_TEXTURE_BUFFER :: GLenum+gl_TEXTURE_BUFFER = 0x8C2A+gl_COMPRESSED_RGBA_ASTC_4x4x4_OES :: GLenum+gl_COMPRESSED_RGBA_ASTC_4x4x4_OES = 0x93C3+gl_TEXTURE_BINDING_1D_ARRAY :: GLenum+gl_TEXTURE_BINDING_1D_ARRAY = 0x8C1C+gl_SEPARATE_SPECULAR_COLOR :: GLenum+gl_SEPARATE_SPECULAR_COLOR = 0x81FA+gl_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED :: GLenum+gl_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221+gl_NORMAL_ARRAY_LIST_IBM :: GLenum+gl_NORMAL_ARRAY_LIST_IBM = 103071+gl_CURRENT_MATRIX_STACK_DEPTH_NV :: GLenum+gl_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640+gl_INT_IMAGE_3D :: GLenum+gl_INT_IMAGE_3D = 0x9059+gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV :: GLenum+gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3+gl_CONTEXT_FLAG_DEBUG_BIT :: GLenum+gl_CONTEXT_FLAG_DEBUG_BIT = 0x00000002+gl_WEIGHT_ARRAY_BUFFER_BINDING_ARB :: GLenum+gl_WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E+gl_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX :: GLenum+gl_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA+gl_VECTOR_EXT :: GLenum+gl_VECTOR_EXT = 0x87BF+gl_TEXTURE_BUFFER_DATA_STORE_BINDING :: GLenum+gl_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D+gl_TEXTURE_LOD_BIAS :: GLenum+gl_TEXTURE_LOD_BIAS = 0x8501+gl_GEOMETRY_SHADER_EXT :: GLenum+gl_GEOMETRY_SHADER_EXT = 0x8DD9+gl_TEXTURE30 :: GLenum+gl_TEXTURE30 = 0x84DE+gl_VERTEX_SHADER_BIT :: GLenum+gl_VERTEX_SHADER_BIT = 0x00000001+gl_HISTOGRAM_BLUE_SIZE_EXT :: GLenum+gl_HISTOGRAM_BLUE_SIZE_EXT = 0x802A+gl_PATH_COMMAND_COUNT_NV :: GLenum+gl_PATH_COMMAND_COUNT_NV = 0x909D+gl_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV :: GLenum+gl_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B+gl_STENCIL_TAG_BITS_EXT :: GLenum+gl_STENCIL_TAG_BITS_EXT = 0x88F2+gl_MAX_PROGRAM_LOOP_DEPTH_NV :: GLenum+gl_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7+gl_FLOAT_MAT2x3_NV :: GLenum+gl_FLOAT_MAT2x3_NV = 0x8B65+gl_CURRENT_RASTER_DISTANCE :: GLenum+gl_CURRENT_RASTER_DISTANCE = 0x0B09+gl_COMPRESSED_SRGB8_ETC2_OES :: GLenum+gl_COMPRESSED_SRGB8_ETC2_OES = 0x9275+gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES :: GLenum+gl_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES = 0x9276+gl_PIXEL_MAP_I_TO_G_SIZE :: GLenum+gl_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3+gl_COMBINE :: GLenum+gl_COMBINE = 0x8570+gl_FOG_HINT :: GLenum+gl_FOG_HINT = 0x0C54+gl_COMPUTE_SUBROUTINE_UNIFORM :: GLenum+gl_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3+gl_FRAGMENT_LIGHT3_SGIX :: GLenum+gl_FRAGMENT_LIGHT3_SGIX = 0x840F+gl_DEBUG_TYPE_PORTABILITY_ARB :: GLenum+gl_DEBUG_TYPE_PORTABILITY_ARB = 0x824F+gl_MIN_PROGRAM_TEXEL_OFFSET_EXT :: GLenum+gl_MIN_PROGRAM_TEXEL_OFFSET_EXT = 0x8904+gl_TRANSFORM_FEEDBACK_BUFFER_NV :: GLenum+gl_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E+gl_UNKNOWN_CONTEXT_RESET_EXT :: GLenum+gl_UNKNOWN_CONTEXT_RESET_EXT = 0x8255+gl_INT_SAMPLER_CUBE_MAP_ARRAY_ARB :: GLenum+gl_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E+gl_UNSIGNED_INT_24_8_NV :: GLenum+gl_UNSIGNED_INT_24_8_NV = 0x84FA+gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY :: GLenum+gl_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C+gl_MANUAL_GENERATE_MIPMAP :: GLenum+gl_MANUAL_GENERATE_MIPMAP = 0x8294+gl_MAP2_VERTEX_ATTRIB6_4_NV :: GLenum+gl_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676+gl_FRAMEBUFFER_EXT :: GLenum+gl_FRAMEBUFFER_EXT = 0x8D40+gl_INT16_NV :: GLenum+gl_INT16_NV = 0x8FE4+gl_FULL_RANGE_EXT :: GLenum+gl_FULL_RANGE_EXT = 0x87E1+gl_MAP1_VERTEX_ATTRIB2_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662+gl_UNSIGNED_INT_8_8_8_8_EXT :: GLenum+gl_UNSIGNED_INT_8_8_8_8_EXT = 0x8035+gl_TESS_CONTROL_SUBROUTINE_UNIFORM :: GLenum+gl_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF+gl_PREVIOUS_TEXTURE_INPUT_NV :: GLenum+gl_PREVIOUS_TEXTURE_INPUT_NV = 0x86E4+gl_ATOMIC_COUNTER_BUFFER_DATA_SIZE :: GLenum+gl_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4+gl_SYNC_STATUS_APPLE :: GLenum+gl_SYNC_STATUS_APPLE = 0x9114+gl_4PASS_0_EXT :: GLenum+gl_4PASS_0_EXT = 0x80A4+gl_POLYGON_SMOOTH :: GLenum+gl_POLYGON_SMOOTH = 0x0B41+gl_FEEDBACK_BUFFER_SIZE :: GLenum+gl_FEEDBACK_BUFFER_SIZE = 0x0DF1+gl_COLORBURN_KHR :: GLenum+gl_COLORBURN_KHR = 0x929A+gl_DEPTH24_STENCIL8 :: GLenum+gl_DEPTH24_STENCIL8 = 0x88F0+gl_LINEAR_CLIPMAP_LINEAR_SGIX :: GLenum+gl_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170+gl_TEXTURE_MAX_LEVEL :: GLenum+gl_TEXTURE_MAX_LEVEL = 0x813D+gl_TEXTURE_WRAP_R_EXT :: GLenum+gl_TEXTURE_WRAP_R_EXT = 0x8072+gl_OBJECT_SUBTYPE_ARB :: GLenum+gl_OBJECT_SUBTYPE_ARB = 0x8B4F+gl_MATRIX18_ARB :: GLenum+gl_MATRIX18_ARB = 0x88D2+gl_MATRIX_INDEX_ARRAY_POINTER_OES :: GLenum+gl_MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849+gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB :: GLenum+gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E+gl_ALPHA8_SNORM :: GLenum+gl_ALPHA8_SNORM = 0x9014+gl_TESS_CONTROL_SUBROUTINE :: GLenum+gl_TESS_CONTROL_SUBROUTINE = 0x92E9+gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB :: GLenum+gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F+gl_POST_CONVOLUTION_ALPHA_SCALE_EXT :: GLenum+gl_POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F+gl_RGB5_A1_EXT :: GLenum+gl_RGB5_A1_EXT = 0x8057+gl_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS :: GLenum+gl_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC+gl_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM :: GLenum+gl_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = 0x8FB3+gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV :: GLenum+gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A+gl_TEXTURE21_ARB :: GLenum+gl_TEXTURE21_ARB = 0x84D5+gl_SAMPLER_2D_RECT_SHADOW :: GLenum+gl_SAMPLER_2D_RECT_SHADOW = 0x8B64+gl_DEPTH_STENCIL_TEXTURE_MODE :: GLenum+gl_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA+gl_MAP1_VERTEX_ATTRIB10_4_NV :: GLenum+gl_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A+gl_PINLIGHT_NV :: GLenum+gl_PINLIGHT_NV = 0x92A8+gl_TEXTURE_INTERNAL_FORMAT :: GLenum+gl_TEXTURE_INTERNAL_FORMAT = 0x1003+gl_VERTEX_ARRAY_OBJECT_AMD :: GLenum+gl_VERTEX_ARRAY_OBJECT_AMD = 0x9154+gl_OBJECT_LINEAR :: GLenum+gl_OBJECT_LINEAR = 0x2401+gl_TEXTURE_IMMUTABLE_FORMAT_EXT :: GLenum+gl_TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F+gl_COMBINER_COMPONENT_USAGE_NV :: GLenum+gl_COMBINER_COMPONENT_USAGE_NV = 0x8544+gl_RENDERBUFFER_GREEN_SIZE_EXT :: GLenum+gl_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51+gl_CONVOLUTION_FILTER_SCALE :: GLenum+gl_CONVOLUTION_FILTER_SCALE = 0x8014+gl_TEXTURE11 :: GLenum+gl_TEXTURE11 = 0x84CB+gl_BITMAP :: GLenum+gl_BITMAP = 0x1A00+gl_VIEW_COMPATIBILITY_CLASS :: GLenum+gl_VIEW_COMPATIBILITY_CLASS = 0x82B6+gl_TEXTURE26 :: GLenum+gl_TEXTURE26 = 0x84DA+gl_UNSIGNED_INT8_VEC4_NV :: GLenum+gl_UNSIGNED_INT8_VEC4_NV = 0x8FEF+gl_UNSIGNED_INT_VEC3 :: GLenum+gl_UNSIGNED_INT_VEC3 = 0x8DC7+gl_VERTEX_PRECLIP_SGIX :: GLenum+gl_VERTEX_PRECLIP_SGIX = 0x83EE+gl_PACK_LSB_FIRST :: GLenum+gl_PACK_LSB_FIRST = 0x0D01+gl_NEGATIVE_Y_EXT :: GLenum+gl_NEGATIVE_Y_EXT = 0x87DA+gl_FRAMEBUFFER_BINDING_ANGLE :: GLenum+gl_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6+gl_MAP_INVALIDATE_BUFFER_BIT_EXT :: GLenum+gl_MAP_INVALIDATE_BUFFER_BIT_EXT = 0x0008+gl_NO_RESET_NOTIFICATION :: GLenum+gl_NO_RESET_NOTIFICATION = 0x8261+gl_MINMAX_EXT :: GLenum+gl_MINMAX_EXT = 0x802E+gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST :: GLenum+gl_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC+gl_QUARTER_BIT_ATI :: GLenum+gl_QUARTER_BIT_ATI = 0x00000010+gl_TEXTURE9 :: GLenum+gl_TEXTURE9 = 0x84C9+gl_FLOAT_R16_NV :: GLenum+gl_FLOAT_R16_NV = 0x8884+gl_BLEND_ADVANCED_COHERENT_KHR :: GLenum+gl_BLEND_ADVANCED_COHERENT_KHR = 0x9285+gl_MATRIX_INDEX_ARRAY_POINTER_ARB :: GLenum+gl_MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849+gl_PROXY_TEXTURE_1D_EXT :: GLenum+gl_PROXY_TEXTURE_1D_EXT = 0x8063+gl_PERTURB_EXT :: GLenum+gl_PERTURB_EXT = 0x85AE+gl_IUI_N3F_V3F_EXT :: GLenum+gl_IUI_N3F_V3F_EXT = 0x81B0+gl_COMBINE_RGB_ARB :: GLenum+gl_COMBINE_RGB_ARB = 0x8571+gl_DEBUG_SOURCE_APPLICATION_KHR :: GLenum+gl_DEBUG_SOURCE_APPLICATION_KHR = 0x824A+gl_MAX_GEOMETRY_UNIFORM_COMPONENTS :: GLenum+gl_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE :: GLenum+gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = 0x8D56+gl_PROGRAM_ALU_INSTRUCTIONS_ARB :: GLenum+gl_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805+gl_VERTEX_STREAM0_ATI :: GLenum+gl_VERTEX_STREAM0_ATI = 0x876C+gl_EDGE_FLAG_ARRAY_POINTER_EXT :: GLenum+gl_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093+gl_INT_IMAGE_2D_EXT :: GLenum+gl_INT_IMAGE_2D_EXT = 0x9058+gl_READ_FRAMEBUFFER_BINDING_EXT :: GLenum+gl_READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA+gl_TEXTURE_CUBE_MAP_ARB :: GLenum+gl_TEXTURE_CUBE_MAP_ARB = 0x8513+gl_LUMINANCE12_ALPHA12 :: GLenum+gl_LUMINANCE12_ALPHA12 = 0x8047+gl_FUNC_ADD :: GLenum+gl_FUNC_ADD = 0x8006+gl_TRANSPOSE_COLOR_MATRIX_ARB :: GLenum+gl_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6+gl_COLOR_ATTACHMENT6 :: GLenum+gl_COLOR_ATTACHMENT6 = 0x8CE6+gl_GEOMETRY_SUBROUTINE :: GLenum+gl_GEOMETRY_SUBROUTINE = 0x92EB+gl_MAX_ELEMENT_INDEX :: GLenum+gl_MAX_ELEMENT_INDEX = 0x8D6B+gl_QUERY_OBJECT_AMD :: GLenum+gl_QUERY_OBJECT_AMD = 0x9153+gl_TEXTURE_CUBE_MAP_EXT :: GLenum+gl_TEXTURE_CUBE_MAP_EXT = 0x8513+gl_CONSTANT_ATTENUATION :: GLenum+gl_CONSTANT_ATTENUATION = 0x1207+gl_LUMINANCE_FLOAT32_APPLE :: GLenum+gl_LUMINANCE_FLOAT32_APPLE = 0x8818+gl_R32UI :: GLenum+gl_R32UI = 0x8236+gl_UNSIGNED_INT_VEC4_EXT :: GLenum+gl_UNSIGNED_INT_VEC4_EXT = 0x8DC8+gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT :: GLenum+gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C+gl_SAMPLE_MASK_VALUE :: GLenum+gl_SAMPLE_MASK_VALUE = 0x8E52+gl_STRICT_DEPTHFUNC_HINT_PGI :: GLenum+gl_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216+gl_CONVOLUTION_HEIGHT_EXT :: GLenum+gl_CONVOLUTION_HEIGHT_EXT = 0x8019+gl_DEPTH_BUFFER_BIT1_QCOM :: GLenum+gl_DEPTH_BUFFER_BIT1_QCOM = 0x00000200+gl_CLIP_DISTANCE_NV :: GLenum+gl_CLIP_DISTANCE_NV = 0x8C7A+gl_DISPATCH_INDIRECT_BUFFER :: GLenum+gl_DISPATCH_INDIRECT_BUFFER = 0x90EE+gl_LUMINANCE4 :: GLenum+gl_LUMINANCE4 = 0x803F+gl_CLAMP :: GLenum+gl_CLAMP = 0x2900+gl_CONVOLUTION_FORMAT :: GLenum+gl_CONVOLUTION_FORMAT = 0x8017+gl_IMAGE_2D_MULTISAMPLE :: GLenum+gl_IMAGE_2D_MULTISAMPLE = 0x9055+gl_TRIANGLE_STRIP :: GLenum+gl_TRIANGLE_STRIP = 0x0005+gl_BGRA_INTEGER_EXT :: GLenum+gl_BGRA_INTEGER_EXT = 0x8D9B+gl_FRAGMENTS_INSTRUMENT_MAX_SGIX :: GLenum+gl_FRAGMENTS_INSTRUMENT_MAX_SGIX = 0x8315+gl_TESS_CONTROL_SHADER_BIT :: GLenum+gl_TESS_CONTROL_SHADER_BIT = 0x00000008+gl_POINT_SIZE_ARRAY_BUFFER_BINDING_OES :: GLenum+gl_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F+gl_BACK_NORMALS_HINT_PGI :: GLenum+gl_BACK_NORMALS_HINT_PGI = 0x1A223+gl_FOG_COORD_ARRAY :: GLenum+gl_FOG_COORD_ARRAY = 0x8457+gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR :: GLenum+gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D+gl_OPERAND1_RGB_EXT :: GLenum+gl_OPERAND1_RGB_EXT = 0x8591+gl_LINEAR_SHARPEN_COLOR_SGIS :: GLenum+gl_LINEAR_SHARPEN_COLOR_SGIS = 0x80AF+gl_POST_TEXTURE_FILTER_SCALE_SGIX :: GLenum+gl_POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A+gl_FRAMEBUFFER_COMPLETE_OES :: GLenum+gl_FRAMEBUFFER_COMPLETE_OES = 0x8CD5+gl_SYNC_OBJECT_APPLE :: GLenum+gl_SYNC_OBJECT_APPLE = 0x8A53+gl_INDEX_WRITEMASK :: GLenum+gl_INDEX_WRITEMASK = 0x0C21+gl_SIGNED_INTENSITY_NV :: GLenum+gl_SIGNED_INTENSITY_NV = 0x8707+gl_SGX_PROGRAM_BINARY_IMG :: GLenum+gl_SGX_PROGRAM_BINARY_IMG = 0x9130+gl_T4F_V4F :: GLenum+gl_T4F_V4F = 0x2A28++data GLsyncob+type GLsync = Ptr GLsyncob++type GLhalf = Word16+type GLhalfARB = Word16+type GLintptrARB = CPtrdiff+type GLsizeiptrARB = CPtrdiff+type GLDEBUGPROC =+ FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())+type GLDEBUGPROCARB = GLDEBUGPROC+type GLDEBUGPROCKHR = GLDEBUGPROC+type GLDEBUGPROCAMD =+ FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr GLchar -> Ptr () -> IO ())+type GLbyte = CChar+type GLubyte = CUChar+type GLfloat = CFloat+type GLclampf = CFloat+type GLfixed = Int32+type GLint64 = Int64+type GLuint64 = Word64+type GLint64EXT = Int64+type GLuint64EXT = Word64+type GLintptr = CIntPtr+type GLsizeiptr = CSize+type GLhalfNV = CUShort+type GLvdpauSurfaceNV = GLintptr+type GLenum = CUInt+type GLboolean = CUChar+type GLvoid = ()+type GLbitfield = CUInt+type GLshort = CShort+type GLint = CInt+type GLclampx = CInt+type GLushort = CUShort+type GLuint = CUInt+type GLsizei = CInt+type GLdouble = CDouble+type GLclampd = CDouble+data GLeglImageOESob+type GLeglImageOES = Ptr GLeglImageOESob+type GLchar = CChar+type GLcharARB = CChar+#ifdef __APPLE__+type GLhandleARB = Ptr ()+#else+type GLhandleARB = CUInt+#endif+
+ src/Graphics/Caramia/Internal/Lens.hs view
@@ -0,0 +1,22 @@+-- | 'lens' package compatible Lens.+--+-- This is used to avoid 'lens' dependency.+--++{-# LANGUAGE RankNTypes, NoImplicitPrelude #-}++module Graphics.Caramia.Internal.Lens+ ( Lens+ , Lens'+ , lens )+ where++import Graphics.Caramia.Prelude++type Lens s t a b = forall f. Functor f => (a -> f b) -> s -> f t+type Lens' s a = Lens s s a a++lens :: (s -> a) -> (s -> a -> s) -> Lens' s a+lens sa sbt afb s = sbt s `fmap` afb (sa s)+{-# INLINE lens #-}+
+ src/Graphics/Caramia/Internal/OpenGLCApi.hs view
@@ -0,0 +1,306 @@+-- | Module for using the raw OpenGL API.+--+-- This is a mixture from the OpenGLRaw package and some of our own stuff.+--+-- TODO: Some of this stuff should probably be in OpenGLRaw so we could add+-- stuff there instead.+--++{-# LANGUAGE ForeignFunctionInterface, NoImplicitPrelude #-}++module Graphics.Caramia.Internal.OpenGLCApi+ ( module Ex++ , gi+ , gf++ , withBoundVAO+ , withBoundBuffer+ , withBoundElementBuffer+ , withBoundPixelUnpackBuffer+ , withBoundProgram+ , withBoundDrawFramebuffer++ , setBoundProgram+ , setBoundElementBuffer++ -- Functions that I made up that I wish were in OpenGL.+ , mglDeleteBuffer+ , mglGenBuffer+ , mglDeleteVertexArray+ , mglGenVertexArray+ , mglDeleteFramebuffer+ , mglGenFramebuffer+ , mglNamedBufferData+ , mglVertexArrayVertexAttribOffsetAndEnable+ , mglVertexArrayVertexAttribIOffsetAndEnable+ , mglVertexArrayVertexAttribDivisor+ -- GL_ARB_separate_shader_objects...but I want them even if that extension+ -- is not available.+ , mglProgramUniform1ui+ , mglProgramUniform2ui+ , mglProgramUniform3ui+ , mglProgramUniform4ui+ , mglProgramUniform1i+ , mglProgramUniform2i+ , mglProgramUniform3i+ , mglProgramUniform4i+ , mglProgramUniform1f+ , mglProgramUniform2f+ , mglProgramUniform3f+ , mglProgramUniform4f+ , mglProgramUniformMatrix4fv+ , mglProgramUniformMatrix3fv+ , mglMapNamedBufferRange+ , mglUnmapNamedBuffer+ , mglNamedCopyBufferSubData+ )+ where++import Graphics.Caramia.Prelude++import Graphics.Caramia.Internal.FlextGL as Ex+import Foreign.Ptr+import Foreign.C.Types+import Foreign.Storable+import Foreign.Marshal.Alloc+import Foreign.Marshal.Utils+import Control.Exception++{-# ANN module ("HLint: ignore Use camelCase" :: String) #-}++whenExt :: IO Bool -> IO a -> IO a -> IO a+whenExt test action other_action = do+ x <- test+ if x then action else other_action+{-# INLINE whenExt #-}++mglDeleteBuffer :: GLuint -> IO ()+mglDeleteBuffer x = with x $ \x_ptr -> glDeleteBuffers 1 x_ptr++mglDeleteVertexArray :: GLuint -> IO ()+mglDeleteVertexArray x = with x $ \x_ptr -> glDeleteVertexArrays 1 x_ptr++mglGenBuffer :: IO GLuint+mglGenBuffer = alloca $ \x_ptr -> glGenBuffers 1 x_ptr *> peek x_ptr++mglGenVertexArray :: IO GLuint+mglGenVertexArray = alloca $ \x_ptr -> glGenVertexArrays 1 x_ptr *> peek x_ptr++mglGenFramebuffer :: IO GLuint+mglGenFramebuffer = alloca $ \x_ptr -> glGenFramebuffers 1 x_ptr *> peek x_ptr++mglDeleteFramebuffer :: GLuint -> IO ()+mglDeleteFramebuffer x = with x $ \x_ptr -> glDeleteFramebuffers 1 x_ptr++withBoundDrawFramebuffer :: GLuint -> IO a -> IO a+withBoundDrawFramebuffer x action = do+ old <- gi gl_DRAW_FRAMEBUFFER_BINDING+ finally (glBindFramebuffer gl_DRAW_FRAMEBUFFER x *> action)+ (glBindFramebuffer gl_DRAW_FRAMEBUFFER old)++withBoundProgram :: GLuint -> IO a -> IO a+withBoundProgram program action = do+ old <-+ alloca $ \x_ptr -> glGetIntegerv gl_CURRENT_PROGRAM x_ptr *> peek x_ptr+ finally (glUseProgram program *> action)+ (glUseProgram $ fromIntegral old)++setBoundProgram :: GLuint -> IO ()+setBoundProgram = glUseProgram++withBoundBuffer :: GLuint -> IO a -> IO a+withBoundBuffer buf action = do+ old <-+ alloca $ \x_ptr -> glGetIntegerv gl_ARRAY_BUFFER_BINDING x_ptr *>+ peek x_ptr+ finally (glBindBuffer gl_ARRAY_BUFFER buf *> action)+ (glBindBuffer gl_ARRAY_BUFFER $ fromIntegral old)++setBoundElementBuffer :: GLuint -> IO ()+setBoundElementBuffer =+ glBindBuffer gl_ELEMENT_ARRAY_BUFFER++withBoundElementBuffer :: GLuint -> IO a -> IO a+withBoundElementBuffer buf action = do+ old <-+ alloca $ \x_ptr -> glGetIntegerv gl_ELEMENT_ARRAY_BUFFER_BINDING x_ptr *>+ peek x_ptr+ finally (glBindBuffer gl_ELEMENT_ARRAY_BUFFER buf *> action)+ (glBindBuffer gl_ELEMENT_ARRAY_BUFFER $ fromIntegral old)++withBoundPixelUnpackBuffer :: GLuint -> IO a -> IO a+withBoundPixelUnpackBuffer buf action = do+ old <-+ alloca $ \x_ptr -> glGetIntegerv gl_PIXEL_UNPACK_BUFFER_BINDING x_ptr *>+ peek x_ptr+ finally (glBindBuffer gl_PIXEL_UNPACK_BUFFER buf *> action)+ (glBindBuffer gl_PIXEL_UNPACK_BUFFER $ fromIntegral old)++withBoundVAO :: GLuint -> IO a -> IO a+withBoundVAO vao action = do+ old <-+ alloca $ \x_ptr -> glGetIntegerv gl_VERTEX_ARRAY_BINDING x_ptr *>+ peek x_ptr+ finally (glBindVertexArray vao *> action)+ (glBindVertexArray $ fromIntegral old)++mglVertexArrayVertexAttribDivisor ::+ GLuint -> GLuint -> GLuint -> IO ()+mglVertexArrayVertexAttribDivisor vaobj index divisor = mask_ $+ withBoundVAO vaobj $+ glVertexAttribDivisor index divisor++mglVertexArrayVertexAttribOffsetAndEnable ::+ GLuint -> GLuint -> GLuint -> GLint -> GLenum+ -> GLboolean -> GLsizei -> CPtrdiff -> IO ()+mglVertexArrayVertexAttribOffsetAndEnable+ vaobj buffer index size dtype normalized stride (CPtrdiff offset) = mask_ $++ withBoundVAO vaobj $+ withBoundBuffer buffer $ do+ glEnableVertexAttribArray index+ glVertexAttribPointer index size dtype normalized stride+ (intPtrToPtr $ fromIntegral offset)++mglVertexArrayVertexAttribIOffsetAndEnable ::+ GLuint -> GLuint -> GLuint -> GLint -> GLenum+ -> GLsizei -> GLintptr -> IO ()+mglVertexArrayVertexAttribIOffsetAndEnable+ vaobj buffer index size dtype stride offset = mask_ $++ withBoundVAO vaobj $+ withBoundBuffer buffer $ do+ glEnableVertexAttribArray index+ glVertexAttribIPointer index size dtype stride+ (intPtrToPtr $ fromIntegral offset)++mglNamedBufferData :: GLuint+ -> GLsizeiptr+ -> Ptr ()+ -> GLenum+ -> IO ()+mglNamedBufferData buf size ptr usage =+ whenExt has_GL_EXT_direct_state_access+ (glNamedBufferDataEXT buf size ptr usage)+ (withBoundBuffer buf $ glBufferData gl_ARRAY_BUFFER size ptr usage)++mglProgramUniform1ui :: GLuint -> GLint -> GLuint -> IO ()+mglProgramUniform1ui program loc v1 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniform1ui program loc v1)+ (withBoundProgram program $ glUniform1ui loc v1)++mglProgramUniform2ui :: GLuint -> GLint -> GLuint -> GLuint -> IO ()+mglProgramUniform2ui program loc v1 v2 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniform2ui program loc v1 v2)+ (withBoundProgram program $ glUniform2ui loc v1 v2)++mglProgramUniform3ui :: GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ()+mglProgramUniform3ui program loc v1 v2 v3 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniform3ui program loc v1 v2 v3)+ (withBoundProgram program $ glUniform3ui loc v1 v2 v3)++mglProgramUniform4ui :: GLuint -> GLint -> GLuint -> GLuint -> GLuint+ -> GLuint -> IO ()+mglProgramUniform4ui program loc v1 v2 v3 v4 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniform4ui program loc v1 v2 v3 v4)+ (withBoundProgram program $ glUniform4ui loc v1 v2 v3 v4)++mglProgramUniform1i :: GLuint -> GLint -> GLint -> IO ()+mglProgramUniform1i program loc v1 =+ whenExt has_GL_ARB_separate_shader_objects (glProgramUniform1i program loc v1)+ (withBoundProgram program $ glUniform1i loc v1)++mglProgramUniform2i :: GLuint -> GLint -> GLint -> GLint -> IO ()+mglProgramUniform2i program loc v1 v2 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniform2i program loc v1 v2)+ (withBoundProgram program $ glUniform2i loc v1 v2)++mglProgramUniform3i :: GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()+mglProgramUniform3i program loc v1 v2 v3 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniform3i program loc v1 v2 v3)+ (withBoundProgram program $ glUniform3i loc v1 v2 v3)++mglProgramUniform4i :: GLuint -> GLint -> GLint -> GLint -> GLint+ -> GLint -> IO ()+mglProgramUniform4i program loc v1 v2 v3 v4 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniform4i program loc v1 v2 v3 v4)+ (withBoundProgram program $ glUniform4i loc v1 v2 v3 v4)++mglProgramUniform1f :: GLuint -> GLint -> GLfloat -> IO ()+mglProgramUniform1f program loc v1 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniform1f program loc v1)+ (withBoundProgram program $ glUniform1f loc v1)++mglProgramUniform2f :: GLuint -> GLint -> GLfloat -> GLfloat -> IO ()+mglProgramUniform2f program loc v1 v2 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniform2f program loc v1 v2)+ (withBoundProgram program $ glUniform2f loc v1 v2)++mglProgramUniform3f :: GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()+mglProgramUniform3f program loc v1 v2 v3 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniform3f program loc v1 v2 v3)+ (withBoundProgram program $ glUniform3f loc v1 v2 v3)++mglProgramUniform4f :: GLuint -> GLint+ -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()+mglProgramUniform4f program loc v1 v2 v3 v4 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniform4f program loc v1 v2 v3 v4)+ (withBoundProgram program $ glUniform4f loc v1 v2 v3 v4)++mglProgramUniformMatrix4fv :: GLuint -> GLint+ -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()+mglProgramUniformMatrix4fv program loc count transpose m44 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniformMatrix4fv program loc count transpose m44)+ (withBoundProgram program $+ glUniformMatrix4fv loc count transpose m44)++mglProgramUniformMatrix3fv :: GLuint -> GLint+ -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()+mglProgramUniformMatrix3fv program loc count transpose m33 =+ whenExt has_GL_ARB_separate_shader_objects+ (glProgramUniformMatrix3fv program loc count transpose m33)+ (withBoundProgram program $+ glUniformMatrix3fv loc count transpose m33)++mglMapNamedBufferRange :: GLuint -> GLintptr+ -> GLsizeiptr -> GLbitfield -> IO (Ptr ())+mglMapNamedBufferRange buffer offset length access =+ withBoundBuffer buffer $+ glMapBufferRange gl_ARRAY_BUFFER offset length access++mglUnmapNamedBuffer :: GLuint -> IO GLboolean+mglUnmapNamedBuffer buffer =+ withBoundBuffer buffer $ glUnmapBuffer gl_ARRAY_BUFFER++mglNamedCopyBufferSubData :: GLuint -> GLuint+ -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()+mglNamedCopyBufferSubData src dst src_offset dst_offset num_bytes =+ withBoundElementBuffer src $+ withBoundBuffer dst $+ glCopyBufferSubData gl_ELEMENT_ARRAY_BUFFER+ gl_ARRAY_BUFFER+ src_offset+ dst_offset+ num_bytes++-- | Shortcut to `glGetIntegerv` when you query only one integer.+gi :: GLenum -> IO GLuint+gi x = alloca $ \get_ptr -> glGetIntegerv x (castPtr get_ptr) *>+ peek get_ptr++gf :: GLenum -> IO GLfloat+gf x = alloca $ \get_ptr -> glGetFloatv x (castPtr get_ptr) *> peek get_ptr+
+ src/Graphics/Caramia/Internal/OpenGLDebug.hs view
@@ -0,0 +1,116 @@+-- | Module for using the OpenGL debug extensions for debug output.++{-# LANGUAGE NoImplicitPrelude, DeriveDataTypeable #-}++module Graphics.Caramia.Internal.OpenGLDebug+ ( activateDebugMode+ , flushDebugMessages )+ where++import Graphics.Caramia.Prelude+import Graphics.Caramia.Internal.OpenGLCApi+import Graphics.Caramia.Internal.ContextLocalData+import Control.Monad.Trans.State.Strict+import Control.Monad.IO.Class+import Control.Exception+import System.IO+import Foreign.Storable+import Foreign.C.String+import Foreign.Marshal.Array+import Foreign.Ptr++newtype DebugModeActivated = DebugModeActivated Bool+ deriving ( Typeable )++activateDebugMode :: IO ()+activateDebugMode = do+ necessary_extensions <- has_GL_KHR_debug+ when necessary_extensions reallyActivateDebugMode+ where+ reallyActivateDebugMode = mask_ $ do+ glDebugMessageControl gl_DONT_CARE+ gl_DONT_CARE+ gl_DONT_CARE+ 0+ nullPtr+ (fromIntegral gl_TRUE)+ glEnable gl_DEBUG_OUTPUT+ withCStringLen "Debug output activated." $ \(cstr, len) ->+ glDebugMessageInsert gl_DEBUG_SOURCE_APPLICATION+ gl_DEBUG_TYPE_OTHER+ 0+ gl_DEBUG_SEVERITY_LOW+ (fromIntegral len)+ cstr+ storeContextLocalData (DebugModeActivated True)++flushDebugMessages :: IO ()+flushDebugMessages = do+ DebugModeActivated debug_mode <-+ retrieveContextLocalData $ return $ DebugModeActivated False+ when debug_mode $+ allocaArray 65535 $ \cstr_msg ->+ allocaArray maxMsgs $ \sources ->+ allocaArray maxMsgs $ \types ->+ allocaArray maxMsgs $ \ids ->+ allocaArray maxMsgs $ \severities ->+ allocaArray maxMsgs $ \lengths -> do+ num_msgs <- fromIntegral <$>+ glGetDebugMessageLog (fromIntegral maxMsgs)+ 65535+ sources+ types+ ids+ severities+ lengths+ cstr_msg++ flip evalStateT cstr_msg $ for_ [0..num_msgs-1] $ \index -> do+ src <- peo sources index+ typ <- peo types index+ id <- peo ids index+ severity <- peo severities index+ length <- peo lengths index+ cur_ptr <- get++ str <- liftIO $ peekCStringLen (cur_ptr, fromIntegral length)+ liftIO $ hPutStrLn stderr $+ "[" <> show id <> ", " <>+ showSrc src <> ", " <>+ showType typ <> ", " <>+ showSeverity severity <> "] " <>+ str++ put (plusPtr cur_ptr $ fromIntegral length)++ when (num_msgs >= maxMsgs) flushDebugMessages+ where+ peo ptr idx = liftIO $ peekElemOff ptr idx++ maxMsgs = 10000++showSeverity :: GLenum -> String+showSeverity x | x == gl_DEBUG_SEVERITY_HIGH = "high"+ | x == gl_DEBUG_SEVERITY_MEDIUM = "medium"+ | x == gl_DEBUG_SEVERITY_LOW = "low"+showSeverity _ = "unknown"++showType :: GLenum -> String+showType x | x == gl_DEBUG_TYPE_ERROR = "error"+ | x == gl_DEBUG_TYPE_DEPRECATED_BEHAVIOR = "deprecated"+ | x == gl_DEBUG_TYPE_UNDEFINED_BEHAVIOR = "undefined"+ | x == gl_DEBUG_TYPE_PORTABILITY = "portability"+ | x == gl_DEBUG_TYPE_PERFORMANCE = "performance"+ | x == gl_DEBUG_TYPE_OTHER = "other"+showType _ = "unknown"++showSrc :: GLenum -> String+showSrc x | x == gl_DEBUG_SOURCE_APPLICATION = "application"+ | x == gl_DEBUG_SOURCE_OTHER = "other"+ | x == gl_DEBUG_SOURCE_API = "api"+ | x == gl_DEBUG_SOURCE_WINDOW_SYSTEM = "windowsystem"+ | x == gl_DEBUG_SOURCE_SHADER_COMPILER = "shadercompiler"+ | x == gl_DEBUG_SOURCE_THIRD_PARTY = "thirdparty"+showSrc _ = "unknown"++
+ src/Graphics/Caramia/Math.hs view
@@ -0,0 +1,1647 @@+{-# LANGUAGE NoImplicitPrelude, BangPatterns, DeriveDataTypeable #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}++-- | Matrix, vector and quaternion math module. This module is concerned about+-- common functions for graphics programming and the types from this module are+-- used by the rest of Caramia.+--+-- If you require more functionality or types, I suggest you look at a+-- dedicated linear algebra package such as \'hmatrix\' or \'linear\'.+--+-- #storable#+-- `Matrix44`, `Matrix33`, `Quaternion` and `Vector3` are all `Storable`s.+--+-- The matrices are stored as column vectors. That is, if a `Matrix4` is+-- labelled like this:+--+-- @+-- Col.1 Col.2 Col.3 Col.4+-- ---------------------------+-- Row 1 m11 m12 m13 m14+-- Row 2 m21 m22 m23 m24+-- Row 3 m31 m32 m33 m34+-- Row 4 m41 m42 m43 m44+-- ---------------------------+-- @+--+-- The matrix would occupy memory (as a `Storable`) as follows:+--+-- @+-- m11, m21, m31, m41, m12, m22, m32, m42, m13 ...+-- @+--+-- where each value is a 32-bit floating point value. This is what OpenGL uses.+--+-- (if the above matrix was a translation matrix, then m14, m24 and m34 would+-- contain the x, y and z coordinates of a translation).+--+-- The scheme is the same for a `Matrix33`, just drop the fourth row and+-- column.+--+-- `Vector3` is stored as three consecutive floating point values.+--+-- @+-- x, y, z+-- @+--+-- `Quaternion` first stores the `w` as the last element. So, the layout of a+-- quaternion is:+--+-- @+-- x, y, z, w+-- @+--+-- This is also how `Caramia.Shader` maps quaternions to vectors in shaders.+--++module Graphics.Caramia.Math+ ( Matrix44(..)+ , Matrix33(..)+ , Vector3(..)+ , Quaternion(..)++ -- * sizeOfs+ , sizeOfMatrix44+ , sizeOfMatrix33+ , sizeOfVector3+ , sizeOfQuaternion++ -- * 4x4 matrices+ , matrix44+ , withMatrix44Ptr+ , inverse44+ , identity44+ , multiply44+ , determinant44+ , zero44+ , perspective44+ , distance44+ , frustum44+ , ortho44+ , lookat44+ , translate44+ , transpose44+ , scale44+ , rotate44++ -- * 3x3 matrices+ , matrix33+ , withMatrix33Ptr+ , inverse33+ , identity33+ , multiply33+ , determinant33+ , zero33+ , distance33+ , transpose33+ , matrix33ToMatrix44+ , matrix44ToMatrix33+++ -- * quaternions+ , quaternion+ , identityq+ , canonicalizeq+ , distanceq+ , lengthq+ , normalizeq+ , multiplyq+ , zeroq+ , axisAngleToQuaternion+ , matrix44ToQuaternion+ , quaternionToMatrix44++ , toTupleq+ , fromTupleq++ -- * 3-component vectors+ , vector3+ , zero3+ , distance3+ , length3+ , plus3+ , minus3+ , normalize3+ , angle3+ , cross3+ , dot3+ , negative3+ , scalarMultiply3+ , vector3_1ToQuaternion+ , vector3Transform44+ , toTuple3+ , fromTuple3++ -- ** Lenses+ , _x+ , _y+ , _z++ -- * Misc+ , prettyShow )+ where++-- Hacking guide:+--+-- All data types are unpacked and strict. (Almost) all functions use bang+-- patterns to make sure everything is strict (mostly unneeded as they would be+-- strict anyway but, for consistency, in this module, use them everywhere).+--+-- Everything is also inlined.+--+-- Matrix44 functions have 44 at the end.+-- Matrix33 functions have 33 at the end.+-- Vector3 functions have 3 at the end.+-- Quaternion functions have q at the end.+--+--+-- Hlint likes to complain about this file, mostly about the repetitions.+--++import Graphics.Caramia.Prelude++import Foreign.Ptr ( Ptr, castPtr )+import Foreign.Storable ( pokeElemOff, Storable(..) )+import Foreign.Marshal.Array ( allocaArray )+import Foreign.C.Types ( CFloat(..) )+import Graphics.Caramia.Internal.Lens++{-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}++-- | A 4x4 matrix. Each mXX function accesses an individual element of the+-- matrix.+data Matrix44 = Matrix44 { m11 :: {-# UNPACK #-} !Float+ , m21 :: {-# UNPACK #-} !Float+ , m31 :: {-# UNPACK #-} !Float+ , m41 :: {-# UNPACK #-} !Float+ , m12 :: {-# UNPACK #-} !Float+ , m22 :: {-# UNPACK #-} !Float+ , m32 :: {-# UNPACK #-} !Float+ , m42 :: {-# UNPACK #-} !Float+ , m13 :: {-# UNPACK #-} !Float+ , m23 :: {-# UNPACK #-} !Float+ , m33 :: {-# UNPACK #-} !Float+ , m43 :: {-# UNPACK #-} !Float+ , m14 :: {-# UNPACK #-} !Float+ , m24 :: {-# UNPACK #-} !Float+ , m34 :: {-# UNPACK #-} !Float+ , m44 :: {-# UNPACK #-} !Float }+ deriving ( Eq, Show, Read, Ord, Typeable )++-- | A 3x3 matrix. Each nXX function accesses an individual element of the+-- matrix.+data Matrix33 = Matrix33 { n11 :: {-# UNPACK #-} !Float+ , n21 :: {-# UNPACK #-} !Float+ , n31 :: {-# UNPACK #-} !Float+ , n12 :: {-# UNPACK #-} !Float+ , n22 :: {-# UNPACK #-} !Float+ , n32 :: {-# UNPACK #-} !Float+ , n13 :: {-# UNPACK #-} !Float+ , n23 :: {-# UNPACK #-} !Float+ , n33 :: {-# UNPACK #-} !Float }+ deriving ( Eq, Show, Read, Ord, Typeable )++-- | A 3-dimensional vector. `x`, `y` and `z` access each individual+-- component.+data Vector3 = Vector3 { x :: {-# UNPACK #-} !Float+ , y :: {-# UNPACK #-} !Float+ , z :: {-# UNPACK #-} !Float }+ deriving ( Eq, Show, Read, Ord, Typeable )++_x :: Lens' Vector3 Float+_x = lens x (\old_vec new_x -> old_vec { x = new_x })+_y :: Lens' Vector3 Float+_y = lens y (\old_vec new_y -> old_vec { y = new_y })+_z :: Lens' Vector3 Float+_z = lens z (\old_vec new_z -> old_vec { z = new_z })++-- | A quaternion. It's composed of four values, `qx`, `qy`, `qz` and `qw`.+--+-- In the context of Caramia, quaternions are used exclusively to represent+-- rotations.+data Quaternion = Quaternion { qx :: {-# UNPACK #-} !Float+ , qy :: {-# UNPACK #-} !Float+ , qz :: {-# UNPACK #-} !Float+ , qw :: {-# UNPACK #-} !Float }+ deriving ( Eq, Show, Read, Ord, Typeable )++-- | Returns the size of a `Vector3`. This is just a shortcut to calling+-- `sizeOf` on a vector.+sizeOfVector3 :: Int+sizeOfVector3 = sizeOf (undefined :: Vector3)++-- | Returns the size of a `Matrix3`. This is just a shortcut to calling+-- `sizeOf` on a matrix.+sizeOfMatrix33 :: Int+sizeOfMatrix33 = sizeOf (undefined :: Matrix33)++-- | Returns the size of a `Matrix4`. This is just a shortcut to calling+-- `sizeOf` on a matrix.+sizeOfMatrix44 :: Int+sizeOfMatrix44 = sizeOf (undefined :: Matrix44)++-- | Returns the size of a `Quaternion`. This is just a shortcut to calling+-- `sizeOf` on a quaternion.+sizeOfQuaternion :: Int+sizeOfQuaternion = sizeOf (undefined :: Quaternion)++instance Storable Vector3 where+ sizeOf _ = sizeOf (undefined :: Float) * 3+ alignment _ = alignment (undefined :: Float)+ peek ptr = {-# SCC "Vector3_peek" #-} do+ x <- peekElemOff cptr 0 :: IO Float+ y <- peekElemOff cptr 1 :: IO Float+ z <- peekElemOff cptr 2 :: IO Float+ return $ Vector3 x y z+ where+ cptr = castPtr ptr :: Ptr Float++ poke ptr (Vector3 x y z) = {-# SCC "Vector3_poke" #-} do+ pokeElemOff cptr 0 x+ pokeElemOff cptr 1 y+ pokeElemOff cptr 2 z+ where+ cptr = castPtr ptr :: Ptr Float++instance Storable Quaternion where+ sizeOf _ = sizeOf (undefined :: Float) * 4+ alignment _ = alignment (undefined :: Float)+ peek ptr = {-# SCC "Quaternion_peek" #-} do+ x <- peekElemOff cptr 0 :: IO Float+ y <- peekElemOff cptr 1 :: IO Float+ z <- peekElemOff cptr 2 :: IO Float+ w <- peekElemOff cptr 3 :: IO Float+ return $ Quaternion x y z w+ where+ cptr = castPtr ptr :: Ptr Float++ poke ptr (Quaternion x y z w) = {-# SCC "Quaternion_poke" #-} do+ pokeElemOff cptr 0 x+ pokeElemOff cptr 1 y+ pokeElemOff cptr 2 z+ pokeElemOff cptr 3 w+ where+ cptr = castPtr ptr :: Ptr Float++instance Storable Matrix44 where+ sizeOf _ = sizeOf (undefined :: Float) * 16+ alignment _ = alignment (undefined :: Float)+ peek ptr = {-# SCC "Matrix44_peek" #-} do+ r11 <- peekElemOff cptr 0 :: IO Float+ r21 <- peekElemOff cptr 1 :: IO Float+ r31 <- peekElemOff cptr 2 :: IO Float+ r41 <- peekElemOff cptr 3 :: IO Float+ r12 <- peekElemOff cptr 4 :: IO Float+ r22 <- peekElemOff cptr 5 :: IO Float+ r32 <- peekElemOff cptr 6 :: IO Float+ r42 <- peekElemOff cptr 7 :: IO Float+ r13 <- peekElemOff cptr 8 :: IO Float+ r23 <- peekElemOff cptr 9 :: IO Float+ r33 <- peekElemOff cptr 10 :: IO Float+ r43 <- peekElemOff cptr 11 :: IO Float+ r14 <- peekElemOff cptr 12 :: IO Float+ r24 <- peekElemOff cptr 13 :: IO Float+ r34 <- peekElemOff cptr 14 :: IO Float+ r44 <- peekElemOff cptr 15 :: IO Float+ return $ matrix44 r11 r12 r13 r14+ r21 r22 r23 r24+ r31 r32 r33 r34+ r41 r42 r43 r44+ where+ cptr = castPtr ptr :: Ptr Float++ poke ptr mat = {-# SCC "Matrix44_poke" #-} do+ pokeElemOff cptr 0 f11+ pokeElemOff cptr 1 f21+ pokeElemOff cptr 2 f31+ pokeElemOff cptr 3 f41+ pokeElemOff cptr 4 f12+ pokeElemOff cptr 5 f22+ pokeElemOff cptr 6 f32+ pokeElemOff cptr 7 f42+ pokeElemOff cptr 8 f13+ pokeElemOff cptr 9 f23+ pokeElemOff cptr 10 f33+ pokeElemOff cptr 11 f43+ pokeElemOff cptr 12 f14+ pokeElemOff cptr 13 f24+ pokeElemOff cptr 14 f34+ pokeElemOff cptr 15 f44+ where+ cptr = castPtr ptr :: Ptr Float+ f11 = m11 mat+ f21 = m21 mat+ f31 = m31 mat+ f41 = m41 mat+ f12 = m12 mat+ f22 = m22 mat+ f32 = m32 mat+ f42 = m42 mat+ f13 = m13 mat+ f23 = m23 mat+ f33 = m33 mat+ f43 = m43 mat+ f14 = m14 mat+ f24 = m24 mat+ f34 = m34 mat+ f44 = m44 mat++instance Storable Matrix33 where+ sizeOf _ = sizeOf (undefined :: CFloat) * 9+ alignment _ = alignment (undefined :: CFloat)+ peek ptr = {-# SCC "Matrix33_peek" #-} do+ r11 <- peekElemOff cptr 0 :: IO Float+ r21 <- peekElemOff cptr 1 :: IO Float+ r31 <- peekElemOff cptr 2 :: IO Float+ r12 <- peekElemOff cptr 3 :: IO Float+ r22 <- peekElemOff cptr 4 :: IO Float+ r32 <- peekElemOff cptr 5 :: IO Float+ r13 <- peekElemOff cptr 6 :: IO Float+ r23 <- peekElemOff cptr 7 :: IO Float+ r33 <- peekElemOff cptr 8 :: IO Float+ return $ matrix33 r11 r12 r13+ r21 r22 r23+ r31 r32 r33+ where+ cptr = castPtr ptr :: Ptr Float++ poke ptr mat = {-# SCC "Matrix33_poke" #-} do+ pokeElemOff cptr 0 f11+ pokeElemOff cptr 1 f21+ pokeElemOff cptr 2 f31+ pokeElemOff cptr 3 f12+ pokeElemOff cptr 4 f22+ pokeElemOff cptr 5 f32+ pokeElemOff cptr 6 f13+ pokeElemOff cptr 7 f23+ pokeElemOff cptr 8 f33+ where+ cptr = castPtr ptr :: Ptr Float+ f11 = n11 mat+ f21 = n21 mat+ f31 = n31 mat+ f12 = n12 mat+ f22 = n22 mat+ f32 = n32 mat+ f13 = n13 mat+ f23 = n23 mat+ f33 = n33 mat++-- | Constructs a `Vector3` out of three values.+vector3 :: Float -- ^ X-coodinate.+ -> Float -- ^ Y-coodinate.+ -> Float -- ^ Z-coodinate.+ -> Vector3+{-# INLINE vector3 #-}+vector3 !x !y !z = Vector3 { x = x, y = y, z = z }++-- | Constructs a `Matrix44` out of 16 values.+--+-- The order of the values is column-first. That is, in this order:+--+-- @+-- m11 m12 m13 m14 m21 m22 m23 m24 m31 ...+-- @+--+-- This allows you to write the matrix out this way:+--+-- @+-- let the_greatest_4x4_matrix_of_them_all =+-- matrix4 m11 m12 m13 m14+-- m21 m22 m23 m24+-- m31 m32 m33 m34+-- m41 m42 m43 m44+-- in ...+-- @+matrix44 :: Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Matrix44+{-# INLINE matrix44 #-}+matrix44 !m11 !m12 !m13 !m14+ !m21 !m22 !m23 !m24+ !m31 !m32 !m33 !m34+ !m41 !m42 !m43 !m44 = {-# SCC "matrix44" #-}+ Matrix44 { m11 = m11+ , m21 = m21+ , m31 = m31+ , m41 = m41+ , m12 = m12+ , m22 = m22+ , m32 = m32+ , m42 = m42+ , m13 = m13+ , m23 = m23+ , m33 = m33+ , m43 = m43+ , m14 = m14+ , m24 = m24+ , m34 = m34+ , m44 = m44 }++-- | Constructs a `Matrix3` out of 9 values.+--+-- The order of the values is the same as for `matrix4`, just drop the fourth+-- row and column.+matrix33 :: Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Float+ -> Matrix33+{-# INLINE matrix33 #-}+matrix33 !m11 !m12 !m13+ !m21 !m22 !m23+ !m31 !m32 !m33 = {-# SCC "matrix33" #-}+ Matrix33 { n11 = m11+ , n21 = m21+ , n31 = m31+ , n12 = m12+ , n22 = m22+ , n32 = m32+ , n13 = m13+ , n23 = m23+ , n33 = m33 }++-- | Transforms a `Matrix33` into a `Matrix44`.+--+-- If this is the original 3x3 matrix:+--+-- @+-- ---------------------+-- m11 m12 m13+-- m21 m22 m23+-- m31 m32 m33+-- ---------------------+-- @+--+-- Then this is the resulting matrix:+--+-- @+-- -------------------------+-- m11 m12 m13 0+-- m21 m22 m23 0+-- m31 m32 m33 0+-- 0 0 0 1+-- -------------------------+-- @+matrix33ToMatrix44 :: Matrix33 -> Matrix44+{-# INLINE matrix33ToMatrix44 #-}+matrix33ToMatrix44 !mat = {-# SCC "matrix33ToMatrix44" #-}+ Matrix44 { m11 = f11+ , m21 = f21+ , m31 = f31+ , m12 = f12+ , m22 = f22+ , m32 = f32+ , m13 = f13+ , m23 = f23+ , m33 = f33++ , m41 = 0.0+ , m42 = 0.0+ , m43 = 0.0+ , m44 = 1.0+ , m14 = 0.0+ , m24 = 0.0+ , m34 = 0.0 }+ where+ f11 = n11 mat+ f21 = n21 mat+ f31 = n31 mat+ f12 = n12 mat+ f22 = n22 mat+ f32 = n32 mat+ f13 = n13 mat+ f23 = n23 mat+ f33 = n33 mat+++-- | Transforms a `Matrix44` into a `Matrix33`.+--+-- If this is the original 4x4 matrix:+--+-- @+-- ----------------------------+-- m11 m12 m13 m14+-- m21 m22 m23 m24+-- m31 m32 m33 m34+-- m41 m42 m43 m44+-- ----------------------------+-- @+--+-- Then this is the resulting 3x3 matrix:+--+-- @+-- ---------------------+-- m11 m12 m13+-- m21 m22 m23+-- m31 m32 m33+-- ---------------------+-- @+--+-- The fourth row and column are discarded.+matrix44ToMatrix33 :: Matrix44 -> Matrix33+{-# INLINE matrix44ToMatrix33 #-}+matrix44ToMatrix33 !mat = {-# SCC "matrix44ToMatrix33" #-}+ Matrix33 { n11 = f11+ , n21 = f21+ , n31 = f31+ , n12 = f12+ , n22 = f22+ , n32 = f32+ , n13 = f13+ , n23 = f23+ , n33 = f33 }+ where+ f11 = m11 mat+ f21 = m21 mat+ f31 = m31 mat+ f12 = m12 mat+ f22 = m22 mat+ f32 = m32 mat+ f13 = m13 mat+ f23 = m23 mat+ f33 = m33 mat++-- | Runs an IO action with a pointer to a Matrix44. The pointer is valid only+-- during the given IO action.+--+-- The pointer points to an array of 16 floating point values. See+-- "Caramia.Math#storable" for a description in which order the values appear.+withMatrix44Ptr :: Matrix44 -- ^ The matrix to marshal.+ -> (Ptr CFloat -> IO a) -- ^ An IO action that receives a+ -- pointer to floating point values+ -- describing the matrix.+ -> IO a+{-# INLINE withMatrix44Ptr #-}+withMatrix44Ptr mat action = {-# SCC "withMatrix44Ptr" #-}+ allocaArray 16 $ \ptr -> do+ pokeElemOff ptr 0 (CFloat $ m11 mat)+ pokeElemOff ptr 1 (CFloat $ m21 mat)+ pokeElemOff ptr 2 (CFloat $ m31 mat)+ pokeElemOff ptr 3 (CFloat $ m41 mat)+ pokeElemOff ptr 4 (CFloat $ m12 mat)+ pokeElemOff ptr 5 (CFloat $ m22 mat)+ pokeElemOff ptr 6 (CFloat $ m32 mat)+ pokeElemOff ptr 7 (CFloat $ m42 mat)+ pokeElemOff ptr 8 (CFloat $ m13 mat)+ pokeElemOff ptr 9 (CFloat $ m23 mat)+ pokeElemOff ptr 10 (CFloat $ m33 mat)+ pokeElemOff ptr 11 (CFloat $ m43 mat)+ pokeElemOff ptr 12 (CFloat $ m14 mat)+ pokeElemOff ptr 13 (CFloat $ m24 mat)+ pokeElemOff ptr 14 (CFloat $ m34 mat)+ pokeElemOff ptr 15 (CFloat $ m44 mat)+ action ptr++-- | Same as `withMatrix44Ptr`, only with 9 floating values.+withMatrix33Ptr :: Matrix33 -> (Ptr CFloat -> IO a) -> IO a+{-# INLINE withMatrix33Ptr #-}+withMatrix33Ptr mat action = {-# SCC "withMatrix33Ptr" #-}+ allocaArray 9 $ \ptr -> do+ pokeElemOff ptr 0 (CFloat $ n11 mat)+ pokeElemOff ptr 1 (CFloat $ n21 mat)+ pokeElemOff ptr 2 (CFloat $ n31 mat)+ pokeElemOff ptr 3 (CFloat $ n12 mat)+ pokeElemOff ptr 4 (CFloat $ n22 mat)+ pokeElemOff ptr 5 (CFloat $ n32 mat)+ pokeElemOff ptr 6 (CFloat $ n13 mat)+ pokeElemOff ptr 7 (CFloat $ n23 mat)+ pokeElemOff ptr 8 (CFloat $ n33 mat)+ action ptr++-- | Returns the identity 3x3 matrix.+identity33 :: Matrix33+{-# INLINE identity33 #-}+identity33 = {-# SCC "identity33" #-}+ Matrix33 { n11 = 1.0+ , n21 = 0.0+ , n31 = 0.0+ , n12 = 0.0+ , n22 = 1.0+ , n32 = 0.0+ , n13 = 0.0+ , n23 = 0.0+ , n33 = 1.0 }++-- | Returns the 3x3 matrix where all components are zero.+zero33 :: Matrix33+{-# INLINE zero33 #-}+zero33 = {-# SCC "zero33" #-}+ Matrix33 { n11 = 0.0+ , n21 = 0.0+ , n31 = 0.0+ , n12 = 0.0+ , n22 = 0.0+ , n32 = 0.0+ , n13 = 0.0+ , n23 = 0.0+ , n33 = 0.0 }++-- | Returns the identity 4x4 matrix.+identity44 :: Matrix44+{-# INLINE identity44 #-}+identity44 = {-# SCC "identity44" #-}+ Matrix44 { m11 = 1.0+ , m21 = 0.0+ , m31 = 0.0+ , m41 = 0.0+ , m12 = 0.0+ , m22 = 1.0+ , m32 = 0.0+ , m42 = 0.0+ , m13 = 0.0+ , m23 = 0.0+ , m33 = 1.0+ , m43 = 0.0+ , m14 = 0.0+ , m24 = 0.0+ , m34 = 0.0+ , m44 = 1.0 }++-- | Returns the 4x4 matrix where all components are zero.+zero44 :: Matrix44+{-# INLINE zero44 #-}+zero44 = {-# SCC "zero44" #-}+ Matrix44 { m11 = 0.0+ , m21 = 0.0+ , m31 = 0.0+ , m41 = 0.0+ , m12 = 0.0+ , m22 = 0.0+ , m32 = 0.0+ , m42 = 0.0+ , m13 = 0.0+ , m23 = 0.0+ , m33 = 0.0+ , m43 = 0.0+ , m14 = 0.0+ , m24 = 0.0+ , m34 = 0.0+ , m44 = 0.0 }++-- | Calculates the inverse of a 4x4 matrix.+--+-- A matrix doesn't always have an inverse. In this case, the matrix values+-- will most likely end up being NaNs.+inverse44 :: Matrix44 -> Matrix44+{-# INLINE inverse44 #-}+inverse44 !mat4 = {-# SCC "inverse44" #-}+ Matrix44 { m11 = (f11 * b11 - f12 * b10 + f13 * b9) * det+ , m12 = (f02 * b10 - f01 * b11 - f03 * b9) * det+ , m13 = (f31 * b5 - f32 * b4 + f33 * b3) * det+ , m14 = (f22 * b4 - f21 * b5 - f23 * b3) * det+ , m21 = (f12 * b8 - f10 * b11 - f13 * b7) * det+ , m22 = (f00 * b11 - f02 * b8 + f03 * b7) * det+ , m23 = (f32 * b2 - f30 * b5 - f33 * b1) * det+ , m24 = (f20 * b5 - f22 * b2 + f23 * b1) * det+ , m31 = (f10 * b10 - f11 * b8 + f13 * b6) * det+ , m32 = (f01 * b8 - f00 * b10 - f03 * b6) * det+ , m33 = (f30 * b4 - f31 * b2 + f33 * b0) * det+ , m34 = (f21 * b2 - f20 * b4 - f23 * b0) * det+ , m41 = (f11 * b7 - f10 * b9 - f12 * b6) * det+ , m42 = (f00 * b9 - f01 * b7 + f02 * b6) * det+ , m43 = (f31 * b1 - f30 * b3 - f32 * b0) * det+ , m44 = (f20 * b3 - f21 * b1 + f22 * b0) * det }+ where+ f00 = m11 mat4+ f10 = m21 mat4+ f20 = m31 mat4+ f30 = m41 mat4+ f01 = m12 mat4+ f11 = m22 mat4+ f21 = m32 mat4+ f31 = m42 mat4+ f02 = m13 mat4+ f12 = m23 mat4+ f22 = m33 mat4+ f32 = m43 mat4+ f03 = m14 mat4+ f13 = m24 mat4+ f23 = m34 mat4+ f33 = m44 mat4++ b0 = f00 * f11 - f01 * f10+ b1 = f00 * f12 - f02 * f10+ b2 = f00 * f13 - f03 * f10+ b3 = f01 * f12 - f02 * f11+ b4 = f01 * f13 - f03 * f11+ b5 = f02 * f13 - f03 * f12+ b6 = f20 * f31 - f21 * f30+ b7 = f20 * f32 - f22 * f30+ b8 = f20 * f33 - f23 * f30+ b9 = f21 * f32 - f22 * f31+ b10 = f21 * f33 - f23 * f31+ b11 = f22 * f33 - f23 * f32++ det' = b0*b11 - b1*b10 + b2*b9 + b3*b8 - b4*b7 + b5*b6+ det = 1.0 / det'++-- | Calculates the determinant of a 3x3 matrix.+determinant33 :: Matrix33 -> Float+{-# INLINE determinant33 #-}+determinant33 !mat = {-# SCC "determinant33" #-} det'+ where+ det' = f11*f22*f33 + f12*f23*f31 + f13*f21*f32 -+ f13*f22*f31 - f12*f21*f33 - f11*f23*f32+ f11 = n11 mat+ f21 = n21 mat+ f31 = n31 mat+ f12 = n12 mat+ f22 = n22 mat+ f32 = n32 mat+ f13 = n13 mat+ f23 = n23 mat+ f33 = n33 mat++-- | Calculats the inverse of a 3x3 matrix.+--+-- A matrix doesn't always have an inverse. In this case, the matrix values+-- will most likely end up being NaNs.+inverse33 :: Matrix33 -> Matrix33+{-# INLINE inverse33 #-}+inverse33 !mat = {-# SCC "inverse33" #-}+ Matrix33 { n11 = (f22*f33-f23*f32)*det'+ , n12 = (f13*f32-f12*f33)*det'+ , n13 = (f12*f23-f13*f22)*det'+ , n21 = (f23*f31-f21*f33)*det'+ , n22 = (f11*f33-f13*f31)*det'+ , n23 = (f13*f21-f11*f23)*det'+ , n31 = (f21*f32-f22*f31)*det'+ , n32 = (f12*f31-f11*f32)*det'+ , n33 = (f11*f22-f12*f21)*det' }+ where+ det' = 1.0 /+ (f11*f22*f33 + f12*f23*f31 + f13*f21*f32 -+ f13*f22*f31 - f12*f21*f33 - f11*f23*f32)+ f11 = n11 mat+ f21 = n21 mat+ f31 = n31 mat+ f12 = n12 mat+ f22 = n22 mat+ f32 = n32 mat+ f13 = n13 mat+ f23 = n23 mat+ f33 = n33 mat++-- | Calculates the determinant of a 4x4 matrix.+determinant44 :: Matrix44 -> Float+{-# INLINE determinant44 #-}+determinant44 !mat = {-# SCC "determinant44" #-} det'+ where+ det' = b0*b11 - b1*b10 + b2*b9 + b3*b8 - b4*b7 + b5*b6++ f00 = m11 mat+ f10 = m21 mat+ f20 = m31 mat+ f30 = m41 mat+ f01 = m12 mat+ f11 = m22 mat+ f21 = m32 mat+ f31 = m42 mat+ f02 = m13 mat+ f12 = m23 mat+ f22 = m33 mat+ f32 = m43 mat+ f03 = m14 mat+ f13 = m24 mat+ f23 = m34 mat+ f33 = m44 mat++ b0 = f00 * f11 - f01 * f10+ b1 = f00 * f12 - f02 * f10+ b2 = f00 * f13 - f03 * f10+ b3 = f01 * f12 - f02 * f11+ b4 = f01 * f13 - f03 * f11+ b5 = f02 * f13 - f03 * f12+ b6 = f20 * f31 - f21 * f30+ b7 = f20 * f32 - f22 * f30+ b8 = f20 * f33 - f23 * f30+ b9 = f21 * f32 - f22 * f31+ b10 = f21 * f33 - f23 * f31+ b11 = f22 * f33 - f23 * f32++-- | Multiplies two 3x3 matrices together.+multiply33 :: Matrix33 -> Matrix33 -> Matrix33+{-# INLINE multiply33 #-}+multiply33 !mat1 !mat2 = {-# SCC "multiply33" #-}+ Matrix33 { n11 = s11*f11 + s21*f12 + s31*f13+ , n21 = s11*f21 + s21*f22 + s31*f23+ , n31 = s11*f31 + s21*f32 + s31*f33+ , n12 = s12*f11 + s22*f12 + s32*f13+ , n22 = s12*f21 + s22*f22 + s32*f23+ , n32 = s12*f31 + s22*f32 + s32*f33+ , n13 = s13*f11 + s23*f12 + s33*f13+ , n23 = s13*f21 + s23*f22 + s33*f23+ , n33 = s13*f31 + s23*f32 + s33*f33 }+ where+ f11 = n11 mat1+ f21 = n21 mat1+ f31 = n31 mat1+ f12 = n12 mat1+ f22 = n22 mat1+ f32 = n32 mat1+ f13 = n13 mat1+ f23 = n23 mat1+ f33 = n33 mat1+ s11 = n11 mat2+ s21 = n21 mat2+ s31 = n31 mat2+ s12 = n12 mat2+ s22 = n22 mat2+ s32 = n32 mat2+ s13 = n13 mat2+ s23 = n23 mat2+ s33 = n33 mat2++-- | Multiplies two 4x4 matrices together.+multiply44 :: Matrix44 -> Matrix44 -> Matrix44+{-# INLINE multiply44 #-}+multiply44 !mat1 !mat2 = {-# SCC "multiply44" #-}+ Matrix44 { m11 = s11*f11 + s21*f12 + s31*f13 + s41*f14+ , m21 = s11*f21 + s21*f22 + s31*f23 + s41*f24+ , m31 = s11*f31 + s21*f32 + s31*f33 + s41*f34+ , m41 = s11*f41 + s21*f42 + s31*f43 + s41*f44+ , m12 = s12*f11 + s22*f12 + s32*f13 + s42*f14+ , m22 = s12*f21 + s22*f22 + s32*f23 + s42*f24+ , m32 = s12*f31 + s22*f32 + s32*f33 + s42*f34+ , m42 = s12*f41 + s22*f42 + s32*f43 + s42*f44+ , m13 = s13*f11 + s23*f12 + s33*f13 + s43*f14+ , m23 = s13*f21 + s23*f22 + s33*f23 + s43*f24+ , m33 = s13*f31 + s23*f32 + s33*f33 + s43*f34+ , m43 = s13*f41 + s23*f42 + s33*f43 + s43*f44+ , m14 = s14*f11 + s24*f12 + s34*f13 + s44*f14+ , m24 = s14*f21 + s24*f22 + s34*f23 + s44*f24+ , m34 = s14*f31 + s24*f32 + s34*f33 + s44*f34+ , m44 = s14*f41 + s24*f42 + s34*f43 + s44*f44 }+ where+ f11 = m11 mat1+ f21 = m21 mat1+ f31 = m31 mat1+ f41 = m41 mat1+ f12 = m12 mat1+ f22 = m22 mat1+ f32 = m32 mat1+ f42 = m42 mat1+ f13 = m13 mat1+ f23 = m23 mat1+ f33 = m33 mat1+ f43 = m43 mat1+ f14 = m14 mat1+ f24 = m24 mat1+ f34 = m34 mat1+ f44 = m44 mat1+ s11 = m11 mat2+ s21 = m21 mat2+ s31 = m31 mat2+ s41 = m41 mat2+ s12 = m12 mat2+ s22 = m22 mat2+ s32 = m32 mat2+ s42 = m42 mat2+ s13 = m13 mat2+ s23 = m23 mat2+ s33 = m33 mat2+ s43 = m43 mat2+ s14 = m14 mat2+ s24 = m24 mat2+ s34 = m34 mat2+ s44 = m44 mat2++-- | Returns the Euclidean distance between two 3x3 matrices, where the+-- matrices are taken to be 9-vectors.+--+-- This can be used as a rough estimate how close, or similar two matrices are+-- to each other.+distance33 :: Matrix33 -> Matrix33 -> Float+{-# INLINE distance33 #-}+distance33 !mat1 !mat2 = {-# SCC "distance33" #-}+ sqrt $ (f11-s11)**2++ (f12-s12)**2++ (f13-s13)**2++ (f21-s21)**2++ (f22-s22)**2++ (f23-s23)**2++ (f31-s31)**2++ (f32-s32)**2++ (f33-s33)**2+ where+ f11 = n11 mat1+ f21 = n21 mat1+ f31 = n31 mat1+ f12 = n12 mat1+ f22 = n22 mat1+ f32 = n32 mat1+ f13 = n13 mat1+ f23 = n23 mat1+ f33 = n33 mat1+ s11 = n11 mat2+ s21 = n21 mat2+ s31 = n31 mat2+ s12 = n12 mat2+ s22 = n22 mat2+ s32 = n32 mat2+ s13 = n13 mat2+ s23 = n23 mat2+ s33 = n33 mat2++-- | Returns the Euclidean distance between two 4x4 matrices, where the+-- matrices are taken to be 9-vectors.+--+-- This can be used as a rough estimate how close, or similar two matrices are+-- to each other.+distance44 :: Matrix44 -> Matrix44 -> Float+{-# INLINE distance44 #-}+distance44 !mat1 !mat2 = {-# SCC "distance44" #-}+ sqrt $ (f11-s11)**2++ (f12-s12)**2++ (f13-s13)**2++ (f14-s14)**2++ (f21-s21)**2++ (f22-s22)**2++ (f23-s23)**2++ (f24-s24)**2++ (f31-s31)**2++ (f32-s32)**2++ (f33-s33)**2++ (f34-s34)**2++ (f41-s41)**2++ (f42-s42)**2++ (f43-s43)**2++ (f44-s44)**2+ where+ f11 = m11 mat1+ f21 = m21 mat1+ f31 = m31 mat1+ f41 = m41 mat1+ f12 = m12 mat1+ f22 = m22 mat1+ f32 = m32 mat1+ f42 = m42 mat1+ f13 = m13 mat1+ f23 = m23 mat1+ f33 = m33 mat1+ f43 = m43 mat1+ f14 = m14 mat1+ f24 = m24 mat1+ f34 = m34 mat1+ f44 = m44 mat1+ s11 = m11 mat2+ s21 = m21 mat2+ s31 = m31 mat2+ s41 = m41 mat2+ s12 = m12 mat2+ s22 = m22 mat2+ s32 = m32 mat2+ s42 = m42 mat2+ s13 = m13 mat2+ s23 = m23 mat2+ s33 = m33 mat2+ s43 = m43 mat2+ s14 = m14 mat2+ s24 = m24 mat2+ s34 = m34 mat2+ s44 = m44 mat2++-- | Constructs a perspective projection matrix.+perspective44 :: Float -- ^ Field of view in radians.+ -> Float -- ^ Aspect ratio.+ -> Float -- ^ Near plane distance.+ -> Float -- ^ Far plane distance.+ -> Matrix44+{-# INLINE perspective44 #-}+perspective44 !fov_y !aspect_ratio !near !far = {-# SCC "perspective44" #-}+ frustum44 (-right) right (-top) top near far+ where+ top = near * tan fov_y+ right = top * aspect_ratio+++-- | Constructs a perspective projection matrix by frustum planes.+frustum44 :: Float -- ^ Left plane.+ -> Float -- ^ Right plane.+ -> Float -- ^ Bottom plane.+ -> Float -- ^ Top plane.+ -> Float -- ^ Near plane.+ -> Float -- ^ Far plane.+ -> Matrix44+{-# INLINE frustum44 #-}+frustum44 !left !right !bottom !top !near !far = {-# SCC "frustum44" #-}+ zero44 { m11 = n2 * rl+ , m22 = n2 * tb+ , m13 = (right + left) * rl+ , m23 = (top + bottom) * tb+ , m33 = (far + near) * nf+ , m43 = -1.0+ , m34 = far * n2 * nf }+ where+ rl = 1.0 / (right - left)+ tb = 1.0 / (top - bottom)+ nf = 1.0 / (near - far)+ n2 = near * 2.0++-- | Constructs an orthogonal projection matrix by planes.+ortho44 :: Float -- ^ Left plane.+ -> Float -- ^ Right plane.+ -> Float -- ^ Bottom plane.+ -> Float -- ^ Top plane.+ -> Float -- ^ Near plane.+ -> Float -- ^ Far plane.+ -> Matrix44+{-# INLINE ortho44 #-}+ortho44 !left !right !bottom !top !near !far = {-# SCC "ortho44" #-}+ zero44 { m11 = (-2.0) * lr+ , m22 = (-2.0) * bt+ , m33 = 2.0 * nf+ , m14 = (left + right) * lr+ , m24 = (top + bottom) * bt+ , m34 = (far + near) * nf+ , m44 = 1.0 }+ where+ lr = 1.0 / (left - right)+ bt = 1.0 / (bottom - top)+ nf = 1.0 / (near - far)++-- | Constructs a look-at view matrix.+lookat44 :: Vector3 -- ^ Eye position.+ -> Vector3 -- ^ Center position (that is, the point we are going+ -- to stare at).+ -> Vector3 -- ^ Up vector. You probably want to normalize this.+ -> Matrix44+{-# INLINE lookat44 #-}+lookat44 eye@(Vector3 !eyex !eyey !eyez) !center (Vector3 !ux !uy !uz)+ | ec_len < 0.000001 = identity44+ | otherwise = {-# SCC "lookat44" #-}+ Matrix44 { m11 = xx, m21 = yx, m31 = ecx, m41 = 0.0+ , m12 = xy, m22 = yy, m32 = ecy, m42 = 0.0+ , m13 = xz, m23 = yz, m33 = ecz, m43 = 0.0+ , m14 = -(xx * eyex + xy * eyey + xz * eyez)+ , m24 = -(yx * eyex + yy * eyey + yz * eyez)+ , m34 = -(ecx * eyex + ecy * eyey + ecz * eyez)+ , m44 = 1.0 }+ where+ ec = eye `minus3` center+ Vector3 ecx ecy ecz = normalize3 ec+ ec_len = length3 ec++ yvec = Vector3 (ecy*xz - ecz*xy)+ (ecz*xx - ecx*xz)+ (ecx*xy - ecy*xx)+ Vector3 yx yy yz =+ if length3 yvec == 0.0+ then Vector3 0 0 0+ else normalize3 yvec++ xvec = Vector3 (uy*ecz - uz*ecy)+ (uz*ecx - ux*ecz)+ (ux*ecy - uy*ecx)+ Vector3 xx xy xz =+ if length3 xvec == 0.0+ then Vector3 0 0 0+ else normalize3 xvec++-- | Normalizes a 3-vector to unit length.+--+-- If the vector is a zero vector then this probably gives you a vector with+-- NaNs as values.+normalize3 :: Vector3 -> Vector3+{-# INLINE normalize3 #-}+normalize3 v@(Vector3 !x !y !z) = {-# SCC "normalize3" #-}+ Vector3 (x*ilen) (y*ilen) (z*ilen)+ where+ ilen = 1.0 / length3 v++-- | Returns the Euclidean distance between to 3-vectors.+distance3 :: Vector3 -> Vector3 -> Float+{-# INLINE distance3 #-}+distance3 (Vector3 !x1 !y1 !z1) (Vector3 !x2 !y2 !z2) = {-# SCC "distance3" #-}+ sqrt $ (x2-x1)**2 + (y2-y1)**2 + (z2-z1)**2++-- | Returns the length of a 3-vector.+length3 :: Vector3 -> Float+{-# INLINE length3 #-}+length3 (Vector3 !x !y !z) = {-# SCC "length3" #-} sqrt $ x**2 + y**2 + z**2++-- | Sums two 3-vectors together.+plus3 :: Vector3 -> Vector3 -> Vector3+{-# INLINE plus3 #-}+plus3 (Vector3 !x1 !y1 !z1) (Vector3 !x2 !y2 !z2) = {-# SCC "plus3" #-}+ Vector3 (x1+x2) (y1+y2) (z1+z2)++-- | Subtracts the second 3-vector from the first.+minus3 :: Vector3 -> Vector3 -> Vector3+{-# INLINE minus3 #-}+minus3 (Vector3 !x1 !y1 !z1) (Vector3 !x2 !y2 !z2) = {-# SCC "minus3" #-}+ Vector3 (x1-x2) (y1-y2) (z1-z2)++-- | Negates all components of a 3-vector.+negative3 :: Vector3 -> Vector3+{-# INLINE negative3 #-}+negative3 (Vector3 !x !y !z) = {-# SCC "negative3" #-} Vector3 (-x) (-y) (-z)++-- | Multiplies all components of a 3-vector with a scalar.+scalarMultiply3 :: Float -> Vector3 -> Vector3+{-# INLINE scalarMultiply3 #-}+scalarMultiply3 scalar (Vector3 !x !y !z) = {-# SCC "scalarMultiply3" #-}+ Vector3 (x*scalar) (y*scalar) (z*scalar)++-- | Modify a 4x4 matrix to scale everything by given vector.+scale44 :: Vector3 -- ^ The scale vector.+ -> Matrix44 -- ^ The matrix to modify.+ -> Matrix44+{-# INLINE scale44 #-}+scale44 (Vector3 !x !y !z) !mat = {-# SCC "scale44" #-}+ mat { m11 = f11*x+ , m21 = f21*x+ , m31 = f31*x+ , m41 = f41*x+ , m12 = f12*y+ , m22 = f22*y+ , m32 = f32*y+ , m42 = f42*y+ , m13 = f13*z+ , m23 = f23*z+ , m33 = f33*z+ , m43 = f43*z }+ where+ f11 = m11 mat+ f21 = m21 mat+ f31 = m31 mat+ f41 = m41 mat+ f12 = m12 mat+ f22 = m22 mat+ f32 = m32 mat+ f42 = m42 mat+ f13 = m13 mat+ f23 = m23 mat+ f33 = m33 mat+ f43 = m43 mat++-- | Transposes a 3x3 matrix.+transpose33 :: Matrix33 -> Matrix33+{-# INLINE transpose33 #-}+transpose33 !mat = {-# SCC "transpose33" #-}+ Matrix33 { n11 = f11+ , n12 = f21+ , n13 = f31+ , n21 = f12+ , n22 = f22+ , n23 = f32+ , n31 = f13+ , n32 = f23+ , n33 = f33 }+ where+ f11 = n11 mat+ f21 = n21 mat+ f31 = n31 mat+ f12 = n12 mat+ f22 = n22 mat+ f32 = n32 mat+ f13 = n13 mat+ f23 = n23 mat+ f33 = n33 mat++-- | Transposes a 4x4 matrix.+transpose44 :: Matrix44 -> Matrix44+{-# INLINE transpose44 #-}+transpose44 !mat = {-# SCC "transpose44" #-}+ Matrix44 { m11 = f11+ , m12 = f21+ , m13 = f31+ , m14 = f41+ , m21 = f12+ , m22 = f22+ , m23 = f32+ , m24 = f42+ , m31 = f13+ , m32 = f23+ , m33 = f33+ , m34 = f43+ , m41 = f14+ , m42 = f24+ , m43 = f34+ , m44 = f44 }+ where+ f11 = m11 mat+ f21 = m21 mat+ f31 = m31 mat+ f41 = m41 mat+ f12 = m12 mat+ f22 = m22 mat+ f32 = m32 mat+ f42 = m42 mat+ f13 = m13 mat+ f23 = m23 mat+ f33 = m33 mat+ f43 = m43 mat+ f14 = m14 mat+ f24 = m24 mat+ f34 = m34 mat+ f44 = m44 mat++-- | Modifies a 4x4 matrix to include translation.+--+-- This is the same as multiplying a 4x4 matrix with a translation matrix.+translate44 :: Vector3 -- ^ The translation vector.+ -> Matrix44 -- ^ The matrix to modify.+ -> Matrix44+{-# INLINE translate44 #-}+translate44 (Vector3 !x !y !z) !mat = {-# SCC "translate44" #-}+ mat { m14 = f11*x + f12*y + f13*z + f14+ , m24 = f21*x + f22*y + f23*z + f24+ , m34 = f31*x + f32*y + f33*z + f34+ , m44 = f41*x + f42*y + f43*z + f44 }+ where+ f11 = m11 mat+ f21 = m21 mat+ f31 = m31 mat+ f41 = m41 mat+ f12 = m12 mat+ f22 = m22 mat+ f32 = m32 mat+ f42 = m42 mat+ f13 = m13 mat+ f23 = m23 mat+ f33 = m33 mat+ f43 = m43 mat+ f14 = m14 mat+ f24 = m24 mat+ f34 = m34 mat+ f44 = m44 mat++-- | Modifies a 4x4 matrix to include rotation as specified by an axis-angle+-- representation.+--+-- This is the same as multiplying a matrix with a rotation matrix.+rotate44 :: Float -- ^ The angle, how much to rotate. In radians.+ -> Vector3 -- ^ The rotation axis.+ -> Matrix44 -- ^ The matrix to modify.+ -> Matrix44+{-# INLINE rotate44 #-}+rotate44 !radians !axis !mat = {-# SCC "rotate44" #-}+ mat { m11 = f11*r11 + f21*r12 + f31*r13+ , m21 = f12*r11 + f21*r12 + f32*r13+ , m31 = f13*r11 + f23*r12 + f33*r13+ , m41 = f14*r11 + f24*r12 + f34*r13+ , m12 = f11*r21 + f21*r22 + f31*r23+ , m22 = f12*r21 + f22*r22 + f32*r23+ , m32 = f13*r21 + f23*r22 + f33*r23+ , m42 = f14*r21 + f24*r22 + f34*r23+ , m13 = f11*r31 + f21*r32 + f31*r33+ , m23 = f12*r31 + f22*r32 + f32*r33+ , m33 = f13*r31 + f23*r32 + f33*r33+ , m43 = f14*r31 + f24*r32 + f31*r33 }+ where+ r11 = x*x*t+cosf+ r12 = y*x*t+z*sinf+ r13 = z*x*t-y*sinf+ r21 = x*y*t-z*sinf+ r22 = y*y*t+cosf+ r23 = z*y*t+x*sinf+ r31 = x*z*t+y*sinf+ r32 = y*z*t-x*sinf+ r33 = z*z*t+cosf++ f11 = m11 mat+ f21 = m21 mat+ f31 = m31 mat+ f12 = m12 mat+ f22 = m22 mat+ f32 = m32 mat+ f13 = m13 mat+ f23 = m23 mat+ f33 = m33 mat+ f14 = m14 mat+ f24 = m24 mat+ f34 = m34 mat++ t = 1 - cosf+ sinf = sin radians+ cosf = cos radians+ (Vector3 !x !y !z) = normalize3 axis++-- | Transforms a 3-vector with a 4x4 matrix.+--+-- This would be the same as transforming a 4-vector with a 4x4 matrix but the+-- fourth component is taken to be 1 and is not returned.+vector3Transform44 :: Matrix44 -> Vector3 -> Vector3+{-# INLINE vector3Transform44 #-}+vector3Transform44 !mat (Vector3 !x !y !z) = {-# SCC "vector3Transform44" #-}+ Vector3 { x = f11*x + f12*y + f13*z + f14+ , y = f21*x + f22*y + f23*z + f24+ , z = f31*x + f32*y + f33*z + f34 }+ where+ f11 = m11 mat+ f21 = m21 mat+ f31 = m31 mat+ f12 = m12 mat+ f22 = m22 mat+ f32 = m32 mat+ f13 = m13 mat+ f23 = m23 mat+ f33 = m33 mat+ f14 = m14 mat+ f24 = m24 mat+ f34 = m34 mat++-- | Returns the cross product between two 3-vectors.+cross3 :: Vector3 -> Vector3 -> Vector3+{-# INLINE cross3 #-}+cross3 (Vector3 !x1 !y1 !z1) (Vector3 !x2 !y2 !z2) = {-# SCC "cross3" #-}+ Vector3 { x = y1*z2 - z1*y2+ , y = z1*x2 - x1*z2+ , z = x1*y2 - y1*x2 }++-- | Returns the angle, in radians, between two 3-vectors.+--+-- The vectors are normalized by this function so you need not to do that+-- yourself.+angle3 :: Vector3 -> Vector3 -> Float+{-# INLINE angle3 #-}+angle3 v1 v2 = {-# SCC "angle3" #-} acos $ n1 `dot3` n2+ where+ n1 = normalize3 v1+ n2 = normalize3 v2++-- | Returns the dot product between two 3-vectors.+dot3 :: Vector3 -> Vector3 -> Float+{-# INLINE dot3 #-}+dot3 (Vector3 !x1 !y1 !z1) (Vector3 !x2 !y2 !z2) = {-# SCC "dot3" #-}+ x1*x2 + y1*y2 + z1*z2++-- | Transforms a 3-vector into a tuple.+toTuple3 :: Vector3 -> (Float, Float, Float)+{-# INLINE toTuple3 #-}+toTuple3 (Vector3 !x !y !z) = {-# SCC "toTuple3" #-} (x, y, z)++-- | Transforms a tuple into a 3-vector.+fromTuple3 :: (Float, Float, Float) -> Vector3+{-# INLINE fromTuple3 #-}+fromTuple3 (!x, !y, !z) = {-# SCC "fromTuple3" #-}+ Vector3 { x = x, y = y, z = z }++-- | Returns a vector where all components are 0.+zero3 :: Vector3+{-# INLINE zero3 #-}+zero3 = {-# SCC "zero3" #-} Vector3 { x = 0, y = 0, z = 0 }++-- | Transforms a 4x4 matrix to a list of floats.+--+-- The list follows the same order as the `Storable` instance does for+-- `Matrix44` floating point values. The list will always have 16 elements.+toList4 :: Matrix44 -> [Float]+toList4 mat = {-# SCC "toList4" #-}+ (\f -> f mat) <$>+ [m11, m21, m31, m41+ ,m12, m22, m32, m42+ ,m13, m23, m33, m43+ ,m14, m24, m34, m44]++-- | Construct a quaternion out of 4 values.+quaternion :: Float -- ^ The x-component.+ -> Float -- ^ The y-component.+ -> Float -- ^ The z-component.+ -> Float -- ^ The w-component.+ -> Quaternion+{-# INLINE quaternion #-}+quaternion !x !y !z !w = {-# SCC "quaternion" #-}+ Quaternion { qx = x, qy = y, qz = z, qw = w }++-- | Turns a quaternion into a 4-tuple.+toTupleq :: Quaternion -> (Float, Float, Float, Float)+{-# INLINE toTupleq #-}+toTupleq (Quaternion !x !y !z !w) = {-# SCC "toTupleq" #-} (x, y, z, w)++-- | Turns a 4-tuple into a quaternion.+fromTupleq :: (Float, Float, Float, Float) -> Quaternion+{-# INLINE fromTupleq #-}+fromTupleq (!x, !y, !z, !w) = {-# SCC "fromTupleq" #-} Quaternion x y z w++-- | \"canonicalizes\" a quaternion.+--+-- Some rotations have different representations as a quaternion. This function+-- canonicalizes the quaternion so that those rotations are the same.+--+-- Don't rely on this. This is used in some automatic tests to see that the+-- quaternions work correctly.+canonicalizeq :: Quaternion -> Quaternion+{-# INLINE canonicalizeq #-}+canonicalizeq q@(Quaternion !x !y !z !w) = {-# SCC "canonicalizeq" #-}+ canonicalizeq'+ where+ canonicalizeq'+ | w > 0 = q+ | otherwise = Quaternion (-x) (-y) (-z) (-w)++-- | Normalizes a quaternion to unit length.+normalizeq :: Quaternion -> Quaternion+{-# INLINE normalizeq #-}+normalizeq (Quaternion !x !y !z !w) = {-# SCC "normalizeq" #-}+ Quaternion (x*t) (y*t) (z*t) (w*t)+ where+ t = 1.0 / sqrt (x*x + y*y + z*z + w*w)++-- | Returns the Euclidean distance between two quaternions.+distanceq :: Quaternion -> Quaternion -> Float+{-# INLINE distanceq #-}+distanceq (Quaternion !x1 !y1 !z1 !w1)+ (Quaternion !x2 !y2 !z2 !w2) = {-# SCC "distanceq" #-}+ sqrt $ (x1-x2)**2 + (y1-y2)**2 + (z1-z2)**2 + (w1-w2)**2++-- | Returns the length of a quaternion.+lengthq :: Quaternion -> Float+{-# INLINE lengthq #-}+lengthq (Quaternion !x !y !z !w) = {-# SCC "lengthq" #-}+ sqrt $ x*x + y*y + z*z + w*w++-- | Turns an axis angle rotation into a quaternion.+axisAngleToQuaternion :: Float -- ^ The angle, in radians.+ -> Vector3 -- ^ The rotation axis.+ -> Quaternion+{-# INLINE axisAngleToQuaternion #-}+axisAngleToQuaternion !radians !vec = {-# SCC "axisAngleToQuaternion" #-}+ Quaternion { qx = x * sin_angle+ , qy = y * sin_angle+ , qz = z * sin_angle+ , qw = cos hangle }+ where+ Vector3 x y z = normalize3 vec+ sin_angle = sin hangle+ hangle = radians * 0.5++-- | Returns a quaternion where all the elements are zero.+zeroq :: Quaternion+{-# INLINE zeroq #-}+zeroq = {-# SCC "zeroq" #-} Quaternion 0 0 0 0++-- | Turns the quaternion into a 4x4 rotation matrix.+quaternionToMatrix44 :: Quaternion -> Matrix44+{-# INLINE quaternionToMatrix44 #-}+quaternionToMatrix44 !q = {-# SCC "quaternionToMatrix44" #-}+ identity44 { m11 = 1 - yy2 - zz2+ , m22 = 1 - xx2 - zz2+ , m33 = 1 - xx2 - yy2++ , m32 = yz2 - wx2+ , m23 = yz2 + wx2+ , m21 = xy2 - wz2+ , m12 = xy2 + wz2+ , m13 = xz2 - wy2+ , m31 = xz2 + wy2 }+ where+ Quaternion x y z w = normalizeq q+ x2 = x+x+ y2 = y+y+ z2 = z+z+ xx2 = x*x2+ yy2 = y*y2+ zz2 = z*z2+ yz2 = y*z2+ wx2 = w*x2+ xy2 = x*y2+ wz2 = w*z2+ xz2 = x*z2+ wy2 = w*y2++-- | Extracts rotation from a 4x4 matrix and returns it as a quaternion.+--+-- Note that+--+-- @+-- matrix44ToQuaternion . quaternionToMatrix44+-- @+--+-- may not be the identity function. The signs on the quaternion components may+-- be different and because the floating point calculation is not completely+-- precise, the values are often slightly different than they were originally.+matrix44ToQuaternion :: Matrix44 -> Quaternion+{-# INLINE matrix44ToQuaternion #-}+matrix44ToQuaternion !mat = {-# SCC "matrix44ToQuaternion" #-}+ matrix44ToQuaternion'+ where+ matrix44ToQuaternion'+ | trace > 0 =+ let t = trace + 1+ s = 0.5 * isqrt t+ in Quaternion { qw = s * t+ , qz = (f12 - f21) * s+ , qy = (f31 - f13) * s+ , qx = (f23 - f32) * s }++ | f11 > f22 && f11 > f33 =+ let t = f11 - f22 - f33 + 1+ s = 0.5 * isqrt t+ in Quaternion { qx = s * t+ , qy = (f12 + f21) * s+ , qz = (f31 + f13) * s+ , qw = (f23 - f32) * s }++ | f22 > f33 =+ let t = (-f11) + f22 - f33 + 1+ s = 0.5 * isqrt t+ in Quaternion { qy = s * t+ , qx = (f12 + f21) * s+ , qw = (f31 - f13) * s+ , qz = (f23 + f32) * s }++ | otherwise =+ let t = (-f11) - f22 + f33 + 1+ s = 0.5 * isqrt t+ in Quaternion { qz = s * t+ , qw = (f12 - f21) * s+ , qx = (f31 + f13) * s+ , qy = (f23 + f32) * s }++ trace = f11 + f22 + f33+ isqrt = (1.0 /) . sqrt++ f11 = m11 mat+ f21 = m21 mat+ f31 = m31 mat+ f12 = m12 mat+ f22 = m22 mat+ f32 = m32 mat+ f13 = m13 mat+ f23 = m23 mat+ f33 = m33 mat++-- | Returns the identity quaternion. It won't rotate anything.+identityq :: Quaternion+{-# INLINE identityq #-}+identityq = {-# SCC "identityq" #-} quaternion 0 0 0 1++{-# ANN vector3_1ToQuaternion ("HLint: ignore Use camelCase" :: String) #-}+-- | Turns a `Vector3` and an extra value to a quaternion.+vector3_1ToQuaternion :: Vector3 -> Float -> Quaternion+{-# INLINE vector3_1ToQuaternion #-}+vector3_1ToQuaternion (Vector3 x y z) = quaternion x y z++-- | Multiplies two quaternions together.+multiplyq :: Quaternion -> Quaternion -> Quaternion+multiplyq (Quaternion !x1 !y1 !z1 !w1)+ (Quaternion !x2 !y2 !z2 !w2) = {-# SCC "multiplyq" #-}+ Quaternion { qw = w1*w2 - x1*x2 - y1*y2 - z1*z2+ , qx = w1*x2 + x1*w2 + y1*z2 - z1*y2+ , qy = w1*y2 - x1*z2 + y1*w2 + z1*x2+ , qz = w1*z2 + x1*y2 - y1*x2 + z1*w2 }++pad :: Int -> String -> String+pad wanted_len str+ | len < wanted_len = str ++ replicate (wanted_len - len) ' '+ | otherwise = str+ where+ len = length str++-- | Returns a \"pretty\" string that represents a 4x4 matrix.+--+-- This could be useful for debugging (and has been used as such in the+-- development of Caramia). The default `Show` instance for `Matrix44` is+-- machine-readable but annoying for humans to read. This function returns a+-- somewhat more human-readable string that you can display.+--+-- The string will contain newlines.+prettyShow :: Matrix44 -> String+prettyShow mat =+ lines [[f11,f12,f13,f14],[f21,f22,f23,f24],+ [f31,f32,f33,f34],[f41,f42,f43,f44]]+ where+ lines = concatMap ((++ "\n") . line)+ line marks =+ "[ " ++ concatMap ((" " ++) . pad wanted_len . show) marks ++ " ]"+ wanted_len = 1 + maximum (map (length . show) $ toList4 mat)++ f11 = m11 mat+ f21 = m21 mat+ f31 = m31 mat+ f41 = m41 mat+ f12 = m12 mat+ f22 = m22 mat+ f32 = m32 mat+ f42 = m42 mat+ f13 = m13 mat+ f23 = m23 mat+ f33 = m33 mat+ f43 = m43 mat+ f14 = m14 mat+ f24 = m24 mat+ f34 = m34 mat+ f44 = m44 mat+
+ src/Graphics/Caramia/Memory.hs view
@@ -0,0 +1,64 @@+-- | Retrieve video memory information.+--++{-# LANGUAGE MultiWayIf, NoImplicitPrelude, DeriveDataTypeable #-}++module Graphics.Caramia.Memory+ ( getMemoryInfo+ , MemoryInfo(..) )+ where++import Graphics.Caramia.Prelude+import Graphics.Caramia.Context+import Graphics.Caramia.Internal.OpenGLCApi+import Foreign.Marshal.Alloc+import Foreign.Storable++data MemoryInfo = MemoryInfo+ { availableVideoMemory :: !(Maybe Int)+ , totalVideoMemory :: !(Maybe Int) }+ deriving ( Eq, Ord, Show, Read, Typeable )++-- | Returns information about current state of video memory.+--+-- There is no guarantee that all, or even any information is actually+-- returned. You need either \'GL_ATI_meminfo\' or \'GL_NVX_gpu_memory_info\'+-- extension to get any results.+--+-- No guarantees for accuracy either. Seriously, don't rely on this for+-- anything but rough estimation.+getMemoryInfo :: IO MemoryInfo+getMemoryInfo = do+ _ <- currentContextID -- Just checking that OpenGL context is active.+ has_meminfo <- has_GL_ATI_meminfo+ has_gpu_memory_info <- has_GL_NVX_gpu_memory_info+ if | has_meminfo -> atiGetMem+ | has_gpu_memory_info -> nvidiaGetMem+ | otherwise -> return noInformation++noInformation :: MemoryInfo+noInformation = MemoryInfo+ { availableVideoMemory = Nothing+ , totalVideoMemory = Nothing }++atiGetMem :: IO MemoryInfo+atiGetMem =+ alloca $ \result_ptr -> do+ glGetIntegerv gl_TEXTURE_FREE_MEMORY_ATI result_ptr+ result <- peek result_ptr+ return MemoryInfo { availableVideoMemory = Just $ fromIntegral result+ , totalVideoMemory = Nothing }++nvidiaGetMem :: IO MemoryInfo+nvidiaGetMem =+ alloca $ \result_ptr -> alloca $ \result2_ptr -> do+ glGetIntegerv gl_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX+ result_ptr+ glGetIntegerv gl_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX+ result2_ptr+ result <- peek result_ptr+ result2 <- peek result2_ptr+ return MemoryInfo { availableVideoMemory = Just $ fromIntegral result2+ , totalVideoMemory = Just $ fromIntegral result }++
+ src/Graphics/Caramia/Prelude.hs view
@@ -0,0 +1,56 @@+-- | This module is used as the prelude module inside Caramia.+--++{-# LANGUAGE ScopedTypeVariables #-}++module Graphics.Caramia.Prelude+ ( module Ex+ , safeFromIntegral+ , showT+ , atomicModifyIORef_' )+ where++import Prelude as Ex hiding+ ( sequence, mapM, or, concat, notElem, elem+ , foldl, foldr1, concatMap, any, sum, foldr+ , and, all, mapM_, sequence_, product, maximum+ , foldl1, minimum, (.), id )++import Data.Foldable as Ex+import Data.Traversable as Ex+import Data.Int as Ex+import Data.Word as Ex+import Data.Typeable as Ex+import Control.Category as Ex+import Control.Arrow as Ex+import Control.Monad as Ex hiding ( msum, forM, forM_, sequence, mapM, mapM_+ , sequence_ )+import Control.Applicative as Ex+import Data.Semigroup as Ex+import Data.Maybe as Ex+import Data.IORef as Ex+import qualified Data.Text as T++-- | Same as `show` but the result will be a `T.Text`, not `String`.+showT :: Show a => a -> T.Text+showT = T.pack . show+{-# INLINE showT #-}++-- | Same as `atomicModifyIORef'` but does not return a value.+atomicModifyIORef_' :: IORef a -> (a -> a) -> IO ()+atomicModifyIORef_' ref fun = atomicModifyIORef' ref $ \old -> ( fun old, () )+{-# INLINE atomicModifyIORef_' #-}++-- | Similar to `fromIntegral` but raises a user error if the source+-- integer cannot be represented in the target type.+--+-- This cannot turn an integral into a non-integral type.+safeFromIntegral :: forall a b. (Num a, Integral a, Num b, Integral b) =>+ a -> b+safeFromIntegral from+ | from /= (fromIntegral result :: a) = error "Invalid coercion."+ | otherwise = result+ where+ result = fromIntegral from :: b+{-# INLINE safeFromIntegral #-}+
+ src/Graphics/Caramia/Render.hs view
@@ -0,0 +1,455 @@+-- | Rendering things.+--++{-# LANGUAGE RecordWildCards, GeneralizedNewtypeDeriving #-}+{-# LANGUAGE ViewPatterns, NoImplicitPrelude, DeriveDataTypeable #-}++module Graphics.Caramia.Render+ ( + -- * The drawing functions+ draw+ , runDraws+ -- * Draw command stream+ , Draw()+ , drawR+ , setPipeline+ , setTextureBindings+ , setBlending+ , setTargetFramebuffer+ , setFragmentPassTests+ , setPolygonOffset+ -- * Specifying what to draw+ , DrawCommand(..)+ , drawCommand+ , DrawParams(..)+ , defaultDrawParams+ , SourceData(..)+ , IndexType(..)+ , Primitive(..)+ , IndexTypeable(..)+ -- * Fragment pass tests+ , FragmentPassTests(..)+ , defaultFragmentPassTests+ , ComparisonFunc(..)+ , StencilOp(..)+ , Culling(..) )+ where++import Graphics.Caramia.Prelude++import qualified Graphics.Caramia.VAO.Internal as VAO+import qualified Graphics.Caramia.Shader.Internal as Shader+import qualified Graphics.Caramia.Framebuffer as FBuf+import qualified Graphics.Caramia.Framebuffer.Internal as FBuf+import qualified Graphics.Caramia.Texture.Internal as Texture+import qualified Data.IntMap.Strict as IM+import Graphics.Caramia.Render.Internal hiding ( setFragmentPassTests )+import qualified Graphics.Caramia.Render.Internal as I+import Graphics.Caramia.Blend+import Graphics.Caramia.Blend.Internal+import Graphics.Caramia.Texture+import Graphics.Caramia.Texture.Internal ( withTextureBinding )+import Graphics.Caramia.Resource+import Graphics.Caramia.Buffer.Internal+import Graphics.Caramia.Internal.OpenGLCApi+import Control.Monad.IO.Class+import Control.Monad.Trans.State.Strict+import Control.Exception+import Foreign+import Foreign.C.Types++-- | The different types of primitives you can use for rendering.+--+-- <https://www.opengl.org/wiki/Primitive>+data Primitive =+ Triangles+ | TriangleStrip+ | TriangleFan+ | Points+ | Lines+ | LineStrip+ | LineLoop+ | LinesAdjacency+ | LineStripAdjacency+ | TriangleStripAdjacency+ | TrianglesAdjacency+ deriving ( Eq, Ord, Show, Read )++toConstant :: Primitive -> GLenum+toConstant Triangles = gl_TRIANGLES+toConstant TriangleStrip = gl_TRIANGLE_STRIP+toConstant TriangleFan = gl_TRIANGLE_FAN+toConstant Points = gl_POINTS+toConstant Lines = gl_LINES+toConstant LineStrip = gl_LINE_STRIP+toConstant LineLoop = gl_LINE_LOOP+toConstant LinesAdjacency = gl_LINES_ADJACENCY+toConstant LineStripAdjacency = gl_LINE_STRIP_ADJACENCY+toConstant TriangleStripAdjacency = gl_TRIANGLE_STRIP_ADJACENCY+toConstant TrianglesAdjacency = gl_TRIANGLES_ADJACENCY++-- | The type of indices in an index buffer. See `indexBuffer`.+data IndexType =+ IWord32+ | IWord16+ | IWord8+ deriving ( Eq, Ord, Show, Read )++toConstantIT :: IndexType -> GLenum+toConstantIT IWord32 = gl_UNSIGNED_INT+toConstantIT IWord16 = gl_UNSIGNED_SHORT+toConstantIT IWord8 = gl_UNSIGNED_BYTE++class IndexTypeable a where+ -- | Turns a Haskell type to `IndexType`.+ toIndexType :: a -- ^ Used to pass the type, not evaluated.+ -> IndexType++instance IndexTypeable Word32 where+ toIndexType _ = IWord32++instance IndexTypeable Word16 where+ toIndexType _ = IWord16++instance IndexTypeable Word8 where+ toIndexType _ = IWord8++instance IndexTypeable CUInt where+ toIndexType _ = IWord32++instance IndexTypeable CUShort where+ toIndexType _ = IWord16++instance IndexTypeable CUChar where+ toIndexType _ = IWord8++-- | Contains drawing parameters.+--+-- You can use `defaultDrawParams` to obtain default draw parameters.+data DrawParams = DrawParams+ {+ pipeline :: Shader.Pipeline+ -- ^ Which shader pipeline to use.+ , fragmentPassTests :: !FragmentPassTests+ -- ^ What kind of fragment pass tests to use.+ , blending :: BlendSpec -- ^ Which blending to use.+ , targetFramebuffer :: FBuf.Framebuffer+ -- ^ Where do you want to render?+ , bindTextures :: IM.IntMap Texture+ -- ^ Which textures do you want to bind? The keys in this integer map are+ -- `TextureUnit`s and tell which texture units you want to bind given+ -- textures.+ , polygonOffset :: !(Float, Float)+ -- ^ Modify the depth values that are being written.+ --+ -- @ (factor, units) @.+ --+ -- By default this is (0, 0) (that is, do nothing). See @ glPolygonOffset @+ -- for the meaning of these values.+ }+ deriving ( Eq, Typeable )++-- | Default drawing parameters.+--+-- `pipeline` is not set (that is, it's undefined). You must set it.+--+-- No textures are bound.+--+-- Blending mode is premultiplied alpha.+--+-- `targetFramebuffer` is the screen framebuffer.+defaultDrawParams :: DrawParams+defaultDrawParams = DrawParams {+ pipeline = error "defaultDrawParams: pipeline is not set."+ , fragmentPassTests = defaultFragmentPassTests+ , blending = preMultipliedAlpha+ , bindTextures = IM.empty+ , targetFramebuffer = FBuf.screenFramebuffer+ , polygonOffset = (0, 0) }++-- | Contains a specification of what to draw.+--+-- It is recommended to use `drawCommand` instead of this constructor.+data DrawCommand = DrawCommand+ { primitiveType :: Primitive+ , primitivesVAO :: VAO.VAO -- ^ This is the VAO from which attributes+ -- are retrieved in the shader pipeline.+ , numIndices :: Int -- ^ How many indices to render?+ , numInstances :: Int -- ^ How many instances to render.+ , sourceData :: SourceData+ -- ^ How to select the attribute data from `primitivesVAO`.+ }+ deriving ( Eq, Typeable )++-- | Returns a default draw command.+--+-- Several fields are undefined so you must set them. These are+--+-- * `primitiveType`+-- * `primitivesVAO`+-- * `numIndices`+-- * `sourceData`+--+-- `numInstances` is set to 1. In future (minor) versions if we add any new+-- fields those fields will have a sane default value.+drawCommand :: DrawCommand+drawCommand = DrawCommand+ { primitiveType = error "drawCommand: primitiveType is not set."+ , primitivesVAO = error "drawCommand: primitivesVAO is not set."+ , numIndices = error "drawCommand: numIndices is not set."+ , sourceData = error "drawCommand: sourceData is not set."+ , numInstances = 1 }+{-# INLINE drawCommand #-}++-- | Values of this type tell how to select attribute data from+-- `primitivesVAO`.+--+-- Future minor versions will not add any new fields or remove any fields from+-- these values. Instead, new constructors are introduced.+data SourceData =+ -- | Simply start from some index and continue from there, 0, 1, 2, etc.+ --+ -- OpenGL equivalent is @ glDrawArrays() @ or @ glDrawArraysInstanced() @.+ Primitives+ { firstIndex :: Int }+ -- | Use an index buffer.+ --+ -- OpenGL equivalent is @ glDrawElements() @ or @ glDrawElementsInstanced()+ -- @. Index buffer contains indices that point to offsets in the vertex+ -- arrays.+ | PrimitivesWithIndices+ { indexBuffer :: Buffer+ , indexOffset :: Int+ , indexType :: IndexType }+ deriving ( Eq, Ord, Typeable )++-- | Draws according to a `DrawCommand`.+--+-- There is a very large overhead in doing a single `draw` call. You probably+-- want to use `runDraws` and `drawR` instead.+draw :: DrawCommand -> DrawParams -> IO ()+draw cmd params = runDraws params (drawR cmd)++-- | Same as `draw` but in a `Draw` command stream.+drawR :: DrawCommand -> Draw ()+drawR (DrawCommand {..})+ | numIndices == 0 = return ()+ | otherwise = Draw $ do+ old_ebo <- boundEbo <$> get+ liftIO $+ withResource (VAO.resource primitivesVAO) $ \(VAO.VAO_ vao_name) ->+ withBoundVAO vao_name $+ case sourceData of+ Primitives {..} ->+ glDrawArraysInstanced+ (toConstant primitiveType)+ (safeFromIntegral firstIndex)+ (safeFromIntegral numIndices)+ (safeFromIntegral numInstances)+ PrimitivesWithIndices {..} ->+ withResource (resource indexBuffer) $+ \(Buffer_ buf_name) -> do+ when (buf_name /= old_ebo) $+ setBoundElementBuffer buf_name+ glDrawElementsInstanced+ (toConstant primitiveType)+ (safeFromIntegral numIndices)+ (toConstantIT indexType)+ (intPtrToPtr $+ fromIntegral indexOffset)+ (safeFromIntegral numInstances)+-- inline `draw` because it's probably quite common to directly construct+-- `DrawCommand` right there, so we can avoid all sorts of boxing and checking+-- that happens.+{-# INLINE draw #-}++-- We use a state to keep track of what we have bound. Why? For garbage+-- collection! If we don't keep references, it's possible things get garbage+-- collected under our feet because `runDraws` might have bound resources in+-- OpenGL with no Haskell values pointing to them.+data DrawState = DrawState+ { boundPipeline :: !Shader.Pipeline+ , boundEbo :: !GLuint+ , boundTextures :: !(IM.IntMap Texture)+ , boundBlending :: !BlendSpec+ , boundFramebuffer :: !FBuf.Framebuffer+ , boundFragmentPassTests :: !FragmentPassTests+ , activeTexture :: !GLuint }++newtype Draw a = Draw (StateT DrawState IO a)+ deriving ( Monad, Applicative, Functor, Typeable )++-- | Using `liftIO` is safe inside a `Draw` stream. It is possible to run+-- nested `Draw` streams this way as well.+--+-- One useful thing to do is to set uniforms to pipelines with `setUniform`.+instance MonadIO Draw where+ liftIO = Draw . liftIO++-- | Runs a drawing specification.+--+-- You can think of this as running many `draw` commands with similar draw+-- command specifications. This call is an optimization to `draw` which has a+-- high overhead by itself.+--+-- Another way to think of this is a place where the functional, \"no hidden+-- state\" design of the Caramia API is relaxed inside the `Draw` stream.+runDraws :: DrawParams -- ^ Initial drawing parameters. These can be+ -- changed in the `Draw` command stream.+ -> Draw a -- ^ Draw command stream.+ -> IO a+runDraws params (Draw cmd_stream) =+ withParams params $ do+ (result, st) <-+ runStateT cmd_stream DrawState+ { boundPipeline = pipeline params+ , boundFragmentPassTests = fragmentPassTests params+ , boundEbo = 0+ , boundBlending = blending params+ , boundFramebuffer = targetFramebuffer params+ , boundTextures = bindTextures params+ , activeTexture = 0+ }+ st `seq` return result++withParams :: DrawParams -> IO a -> IO a+withParams (DrawParams {..}) action =+ FBuf.withBinding targetFramebuffer $+ withPipeline pipeline $+ withFragmentPassTests fragmentPassTests $+ withBlendings blending $+ withBoundTextures bindTextures $+ withBoundElementBuffer 0 $+ withPolygonOffset polygonOffset $ do+ old_active <- gi gl_ACTIVE_TEXTURE+ -- Framebuffer may not restore the viewport so we have to do it here.+ allocaArray 4 $ \viewport_ptr -> do+ glGetIntegerv gl_VIEWPORT viewport_ptr+ ox <- peekElemOff viewport_ptr 0+ oy <- peekElemOff viewport_ptr 1+ ow <- peekElemOff viewport_ptr 2+ oh <- peekElemOff viewport_ptr 3+ finally (glActiveTexture gl_TEXTURE0 *>+ action)+ (glActiveTexture old_active *>+ glViewport ox oy ow oh)++withPolygonOffset :: (Float, Float) -> IO a -> IO a+withPolygonOffset (factor, units) action = do+ old_factor <- gf gl_POLYGON_OFFSET_FACTOR+ old_units <- gf gl_POLYGON_OFFSET_UNITS+ finally (do glPolygonOffset (CFloat factor) (CFloat units)+ action) $+ glPolygonOffset old_factor old_units++-- | Sets the active texture (not public API! What would they use this for+-- anyway?).+setActiveTexture :: GLuint -> Draw ()+setActiveTexture unit = Draw $ do+ old_active <- activeTexture <$> get+ when (old_active /= unit) $+ liftIO (glActiveTexture $ gl_TEXTURE0 + unit) *>+ modify (\old -> old { activeTexture = unit })++-- | Sets new texture bindings.+setTextureBindings :: IM.IntMap Texture -> Draw ()+setTextureBindings texes = do+ old_texes <- Draw $ boundTextures <$> get+ -- Iterate over the old bindings.+ for_ (IM.assocs old_texes) $ \(index, tex) ->+ case IM.lookup index texes of+ -- A texture was bound previously, new bindings don't bind the+ -- texture at this unit.+ Nothing -> setActiveTexture (safeFromIntegral index) *>+ let (bind_target, _) =+ Texture.getTopologyBindPoints $+ topology $ viewSpecification tex+ in liftIO $ glBindTexture bind_target 0+ -- A texture was bound previously, new bindings also bind some+ -- texture here.+ Just new_tex -> do+ old_name <-+ liftIO $ withResource (Texture.resource tex) $+ \(Texture.Texture_ old_name) -> return old_name+ name <-+ liftIO $ withResource (Texture.resource new_tex) $+ \(Texture.Texture_ name) -> return name+ -- Only bind if the texture changed.+ when (name /= old_name) $ do+ setActiveTexture (safeFromIntegral index)+ let (bind_target, _) =+ Texture.getTopologyBindPoints $+ topology $ viewSpecification new_tex+ in liftIO $ glBindTexture bind_target name+ -- Iterate over new bindings. We need to only check those that were not+ -- part of the old bindings.+ for_ (IM.assocs texes) $ \(index, tex) ->+ case IM.lookup index old_texes of+ Just _ -> pure () -- already handled in the above for_+ Nothing -> do+ name <- liftIO $ withResource (Texture.resource tex) $+ \(Texture.Texture_ name) -> return name+ setActiveTexture (safeFromIntegral index)+ let (bind_target, _) =+ Texture.getTopologyBindPoints $+ topology $ viewSpecification tex+ in liftIO $ glBindTexture bind_target name++ Draw $ modify (\old -> old { boundTextures = texes })++-- | Changes the pipeline in a `Draw` command stream.+setPipeline :: Shader.Pipeline -> Draw ()+setPipeline pl = Draw $ do+ old_pl <- boundPipeline <$> get+ when (old_pl /= pl) $ do+ liftIO $ withResource (Shader.resourcePL pl) $+ \(Shader.Pipeline_ program) ->+ setBoundProgram program+ modify (\old -> old { boundPipeline = pl })+{-# INLINE setPipeline #-}++-- | Changes the current blending mode.+setBlending :: BlendSpec -> Draw ()+setBlending blends = Draw $ do+ old_blending <- boundBlending <$> get+ when (blends /= old_blending) $ do+ liftIO $ setBlendings blends+ modify (\old -> old { boundBlending = blends })+{-# INLINE setBlending #-}++-- | Sets the new fragment pass tests.+setFragmentPassTests :: FragmentPassTests -> Draw ()+setFragmentPassTests tests = Draw $ do+ old_tests <- boundFragmentPassTests <$> get+ when (old_tests /= tests) $ do+ liftIO $ I.setFragmentPassTests tests+ modify (\old -> old { boundFragmentPassTests = tests })+{-# INLINE setFragmentPassTests #-}++-- | Sets polygon offset.+setPolygonOffset :: Float -> Float -> Draw ()+setPolygonOffset factor units = Draw $+ liftIO $ glPolygonOffset (CFloat factor) (CFloat units)++-- | Sets the current framebuffer.+setTargetFramebuffer :: FBuf.Framebuffer -> Draw ()+setTargetFramebuffer fbuf = Draw $ do+ old_fbuf <- boundFramebuffer <$> get+ when (old_fbuf /= fbuf) $ do+ liftIO $ FBuf.setBinding fbuf+ modify (\old -> old { boundFramebuffer = fbuf })+{-# INLINE setTargetFramebuffer #-}++withBoundTextures :: IM.IntMap Texture -> IO a -> IO a+withBoundTextures (IM.assocs -> bindings) action = rec bindings+ where+ rec [] = action+ rec ((unit, tex):rest) =+ withTextureBinding tex unit $ rec rest++withPipeline :: Shader.Pipeline -> IO a -> IO a+withPipeline pipeline action =+ withResource (Shader.resourcePL pipeline) $ \(Shader.Pipeline_ program) ->+ withBoundProgram program action+{-# INLINE withPipeline #-}+
+ src/Graphics/Caramia/Render/Internal.hs view
@@ -0,0 +1,239 @@+{-# LANGUAGE RecordWildCards, NoImplicitPrelude, DeriveDataTypeable #-}++module Graphics.Caramia.Render.Internal where++import Graphics.Caramia.Prelude++import Graphics.Caramia.Internal.OpenGLCApi+import Control.Exception++-- | A comparison function. Incoming value is compared with this function to+-- the existing value.+--+-- This can be used with depth and stencil tests.+--+-- See @ glDepthFunc @ from OpenGL specification or man pages for more detailed+-- explanation.+data ComparisonFunc =+ Never+ | Less+ | Equal+ | LEqual+ | Greater+ | NotEqual+ | GEqual+ | Always+ deriving ( Eq, Ord, Show, Read, Typeable )++comparisonFuncToConstant :: ComparisonFunc -> GLenum+comparisonFuncToConstant Never = gl_NEVER+comparisonFuncToConstant Less = gl_LESS+comparisonFuncToConstant Equal = gl_EQUAL+comparisonFuncToConstant LEqual = gl_LEQUAL+comparisonFuncToConstant Greater = gl_GREATER+comparisonFuncToConstant NotEqual = gl_NOTEQUAL+comparisonFuncToConstant GEqual = gl_GEQUAL+comparisonFuncToConstant Always = gl_ALWAYS++-- | Stencil buffer operations.+--+-- See @ glStencilOp @ for explanations of each constructor.+data StencilOp =+ Keep+ | Zero+ | Replace+ -- ^ This one replaces the old value in the stencil buffer with the given+ -- reference value and ANDs the result with mask.+ | Increment+ | IncrementAndWrap+ | Decrease+ | DecreaseAndWrap+ | Invert+ deriving ( Eq, Ord, Show, Read, Typeable )++stencilOpToConstant :: StencilOp -> GLenum+stencilOpToConstant Keep = gl_KEEP+stencilOpToConstant Zero = gl_ZERO+stencilOpToConstant Replace = gl_REPLACE+stencilOpToConstant Increment = gl_INCR+stencilOpToConstant IncrementAndWrap = gl_INCR_WRAP+stencilOpToConstant Decrease = gl_DECR+stencilOpToConstant DecreaseAndWrap = gl_DECR_WRAP+stencilOpToConstant Invert = gl_INVERT++setStencilFunc :: ComparisonFunc+ -> StencilOp+ -> StencilOp+ -> StencilOp+ -> Word32+ -> Word32+ -> IO ()+setStencilFunc func op1 op2 op3 ref mask = do+ glStencilFunc (comparisonFuncToConstant func)+ (fromIntegral ref)+ (fromIntegral mask)+ glStencilOp (stencilOpToConstant op1)+ (stencilOpToConstant op2)+ (stencilOpToConstant op3)+{-# INLINE setStencilFunc #-}++withStencilFunc :: ComparisonFunc+ -> StencilOp+ -> StencilOp+ -> StencilOp+ -> Word32+ -> Word32+ -> IO a+ -> IO a+withStencilFunc func op1 op2 op3 ref mask action = do+ old_func <- gi gl_STENCIL_FUNC+ old_ref <- gi gl_STENCIL_REF+ old_mask <- gi gl_STENCIL_VALUE_MASK+ old_op1 <- gi gl_STENCIL_FAIL+ old_op2 <- gi gl_STENCIL_PASS_DEPTH_FAIL+ old_op3 <- gi gl_STENCIL_PASS_DEPTH_PASS+ finally (setStencilFunc func op1 op2 op3 ref mask *> action)+ (glStencilFunc old_func (fromIntegral old_ref) old_mask *>+ glStencilOp old_op1 old_op2 old_op3)++withCulling :: Culling -> IO a -> IO a+withCulling culling action = do+ old_culling <- gi gl_CULL_FACE_MODE+ was_enabled <- glIsEnabled gl_CULL_FACE+ finally (setCulling culling *> action)+ (do if was_enabled == fromIntegral gl_TRUE+ then glEnable gl_CULL_FACE+ else glDisable gl_CULL_FACE+ glCullFace old_culling)++setCulling :: Culling -> IO ()+setCulling NoCulling = glDisable gl_CULL_FACE+setCulling x = mask_ $+ glEnable gl_CULL_FACE *>+ glCullFace (cullingToConstant x)++setDepthFunc :: ComparisonFunc -> Bool -> IO ()+setDepthFunc func write_depth =+ glDepthFunc (comparisonFuncToConstant func) *>+ glDepthMask (fromIntegral $ if write_depth then gl_TRUE else gl_FALSE)++withDepthFunc :: ComparisonFunc -> Bool -> IO a -> IO a+withDepthFunc func write_depth action = do+ old_depth_func <- gi gl_DEPTH_FUNC+ old_depth_write <- gi gl_DEPTH_WRITEMASK+ finally (setDepthFunc func write_depth *> action)+ (glDepthFunc old_depth_func *>+ glDepthMask (fromIntegral old_depth_write))++setFragmentPassTests :: FragmentPassTests -> IO ()+setFragmentPassTests (FragmentPassTests {..}) = do+ case depthTest of+ Nothing -> glDisable gl_DEPTH_TEST+ Just dt -> glEnable gl_DEPTH_TEST *>+ setDepthFunc dt writeDepth+ case stencilTest of+ Nothing -> glDisable gl_STENCIL_TEST+ Just st -> glEnable gl_STENCIL_TEST *>+ setStencilFunc st+ failStencilOp+ depthFailStencilOp+ depthPassStencilOp+ stencilReference+ stencilMask+ setCulling cullFace++withFragmentPassTests :: FragmentPassTests -> IO a -> IO a+withFragmentPassTests (FragmentPassTests {..}) action = do+ was_it_enabled <- glIsEnabled gl_DEPTH_TEST+ finally+ (case depthTest of+ Nothing -> glDisable gl_DEPTH_TEST *> next+ Just dt -> glEnable gl_DEPTH_TEST *>+ withDepthFunc dt writeDepth next) $+ if was_it_enabled == fromIntegral gl_TRUE+ then glEnable gl_DEPTH_TEST+ else glDisable gl_DEPTH_TEST+ where+ next = do+ was_it_enabled <- glIsEnabled gl_STENCIL_TEST+ finally+ (case stencilTest of+ Nothing -> glDisable gl_STENCIL_TEST *> next'+ Just st -> glEnable gl_STENCIL_TEST *>+ withStencilFunc st+ failStencilOp+ depthFailStencilOp+ depthPassStencilOp+ stencilReference+ stencilMask+ next') $+ if was_it_enabled == fromIntegral gl_TRUE+ then glEnable gl_STENCIL_TEST+ else glDisable gl_STENCIL_TEST++ next' = withCulling cullFace action++data Culling =+ Back+ | Front+ | FrontAndBack -- ^ This stops the drawing of any faces but points and lines+ -- (or other non-facey like primitives) are drawn.+ | NoCulling+ deriving ( Eq, Ord, Show, Read, Typeable )++cullingToConstant :: Culling -> GLenum+cullingToConstant Back = gl_BACK+cullingToConstant Front = gl_FRONT+cullingToConstant FrontAndBack = gl_FRONT_AND_BACK+cullingToConstant NoCulling = 0++-- | Specifies the tests that are run on a fragment to decide if it should be+-- seen.+data FragmentPassTests = FragmentPassTests {+ depthTest :: !(Maybe ComparisonFunc)+ -- ^ Which depth test to use, if any?+ , writeDepth :: Bool+ -- ^ If depth test is specified, should we also update the depth buffer with+ -- new depth values? The depth buffer will not be written if `depthTest` is+ -- not specified regardless of the value in this field.+ , stencilTest :: !(Maybe ComparisonFunc)+ -- ^ Which stencil test to use, if any?+ , stencilReference :: !Word32+ , stencilMask :: !Word32+ , failStencilOp :: !StencilOp+ -- ^ What to do with the stencil buffer if stencil test fails.+ , depthFailStencilOp :: !StencilOp+ -- ^ What to do with the stencil buffer if stencil test passes but depth+ -- testing fails).+ , depthPassStencilOp :: !StencilOp+ -- ^ What to do with the stencil buffer if stencil and depth test passes, or+ -- if depth buffer is not present or depth test is disabled.+ , cullFace :: !Culling+ -- ^ What kind of face culling should we do.+ }+ deriving ( Eq, Ord, Show, Read, Typeable )++-- | Returns the default fragment pass tests.+--+-- Neither depth or stencil test is enabled. `writeDepth` is set to true but+-- that value is only used if you specify with depth test to use.+--+-- All stencil operations are set to `Keep`.+--+-- Culling is set to `Back`.+defaultFragmentPassTests :: FragmentPassTests+defaultFragmentPassTests = FragmentPassTests+ { depthTest = Nothing+ , writeDepth = True+ , stencilTest = Nothing+ , stencilReference = 0+ , stencilMask = 0xffffffff+ , failStencilOp = Keep+ , depthFailStencilOp = Keep+ , depthPassStencilOp = Keep+ , cullFace = Back }++-- TODO: separate stencil tests for backsides of triangles+-- (glStencilOpSeparate)++
+ src/Graphics/Caramia/Resource.hs view
@@ -0,0 +1,144 @@+-- | Caramia resources.+--+-- Resources in Caramia encapsulate OpenGL resources which have some+-- constraints on their use:+--+-- * They are, in the general case, only valid in a specific operating+-- system thread.+-- * They need an implicit OpenGL context active to be used.+--+-- This module helps with the correct finalization of OpenGL resources as+-- according to those constraints.+--+-- Most of the time, Caramia keeps `Resource` objects hidden so you, the user,+-- is unlikely to see these directly.+--++{-# LANGUAGE BangPatterns #-}++module Graphics.Caramia.Resource+ ( Resource()+ , newResource+ , withResource )+ where++import Graphics.Caramia.Prelude+import Graphics.Caramia.Context+import Control.Exception++-- | The data type of a Caramia resource.+data Resource a = Resource+ { rawResource :: !(IORef (Maybe+ ( a -- the unmanaged resource+ , IO () -- opengl finalizer+ , IO ()))) -- normal finalizer+ , nativeCid :: !ContextID+ }++instance Eq (Resource a) where+ res1 == res2 = rawResource res1 == rawResource res2++-- | Creates a new resource.+--+-- Must be called in a thread that has an OpenGL context active. Otherwise, an+-- error will be thrown.+--+-- If you throw an exception in the OpenGL finalizer, then this will disrupt+-- Caramia context and make it invalid. So try not to throw those exceptions?+newResource :: IO a -- ^ Action that returns the raw, unmanaged+ -- resource. Good place to create it.+ -> (a -> IO ()) -- ^ OpenGL finalizer. Will only be called in+ -- the same thread as this `newResource` is+ -- called, but only if the same OpenGL+ -- context is still alive.+ -> IO () -- ^ \'Ordinary\' finalizer. This will be+ -- called immediately when garbage collector+ -- collects the resource which means before+ -- the OpenGL finalizer and in a separate+ -- thread. If this finalizer throws an+ -- exception then the OpenGL finalizer is+ -- cancelled and the resource is marked as+ -- finalized. This will be run even if the+ -- OpenGL context is gone.+ -> IO (Resource a)+newResource resource_creator finalizer normal_finalizer = mask_ $+ -- We need the context ID for correct finalization so we cannot take away+ -- this check with NO_RESOURCE_RUNTIME_CHECKS.+ maybe (error "newResource: no OpenGL context active.")+ (\cid -> do+ resource <- resource_creator+ let opengl_finalizer = finalizer resource+ ref <- newIORef (Just ( resource+ , opengl_finalizer+ , normal_finalizer ))+ let res = Resource { rawResource = ref+ , nativeCid = cid }+ void $ mkWeakIORef ref $ finalizeNow res+ return res)+ =<<+ currentContextID++-- | Promptly finalize a resource.+--+-- The ordinary finalizer will be run immediately. The OpenGL finalizer will be+-- run if the current thread is the same OpenGL thread where the resource was+-- created.+--+-- If you want asynchronous finalization, then use `finalizeAsync`, which+-- behaves more like actual garbage collection, only more promptly.+--+-- I recommend you use `finalizeAsync` because it is more consistent with+-- normal garbage collection behaviour and thus is more difficult to use+-- incorrectly.+--+-- If ordinary finalizer throws an exception, the OpenGL finalizer is not run+-- and the resource is marked as finalized. The exception propagates out from+-- this call to you.+--+-- Does nothing if the resource is already finalized.+--+-- ***********************+-- TODO: this is not actually exported API. Some resources cannot be finalized+-- like this because other resources might refer to them. How do we handle+-- resources that can refer to each other? Right now, we cannot. So we can't+-- allow users to finalize things by themselves.+finalizeNow :: Resource a -> IO ()+finalizeNow resource = mask_ $ do+ maybe_res <- atomicModifyIORef (rawResource resource) $+ \old -> ( Nothing, old )+ case maybe_res of+ Nothing -> return ()+ Just (_, opengl_finalizer, normal_finalizer) -> do+ normal_finalizer+ let schedule = scheduleFinalizer (nativeCid resource)+ opengl_finalizer+ maybe schedule+ (\cid ->+ if cid == nativeCid resource+ then opengl_finalizer+ else schedule)+ =<<+ currentContextID++-- | Uses a resource.+--+-- Throws an user error if the resource is used in a wrong or dead context.+withResource :: Resource a+ -> (a -> IO b) -- ^ Use the resource inside this action. Don't+ -- return the unmanaged resource from this+ -- because behaviour is then undefined.+ -> IO b+withResource resource action =+ maybe (error "withResource: resource has been finalized.")+ (\(res, _, _) -> do+ cid <- currentContextID+ if cid == Just (nativeCid resource)+ then action res <* touchIORef ref+ else error $ "withResource: attempted resource use " <>+ "in a wrong context.")+ =<<+ readIORef ref+ where+ ref = rawResource resource+ touchIORef !_ = return ()+
+ src/Graphics/Caramia/Shader.hs view
@@ -0,0 +1,568 @@+-- | Shaders.+--+-- This module lets you use GLSL shaders in rendering.+--+-- This abstracts OpenGL shaders and shader objects. In the future, we might+-- implement separate shader programs (that is,+-- GL_ARB_separate_shader_objects).+--+-- At the moment, you need to use explicit attribute locations in shaders+-- themselves. There is no functionality to retrieve attribute locations in+-- this API; you simply have to know them.+--+-- <https://www.opengl.org/wiki/OpenGL_Shading_Language>+--++-- TODO: separable program objects. This is an extension and only became core+-- in OpenGL 4.1 (GL_ARB_separate_shader_objects). As of writing of this, I+-- think it's not prime time to use those yet. Maybe in a few years.+--++{-# LANGUAGE NoImplicitPrelude, FlexibleInstances, DeriveDataTypeable #-}+{-# LANGUAGE ExistentialQuantification, ViewPatterns, OverloadedStrings #-}++module Graphics.Caramia.Shader+ ( newShader+ , newShaderB+ , newShaderBL+ , newPipeline+ , newPipelineVF+ , Shader()+ , Pipeline()+ -- * Uniforms+ , setUniform+ , getUniformLocation+ , Uniformable()+ , UniformLocation+ -- * Shader stages+ , ShaderStage(..)+ -- * Views+ , viewStage+ -- * Misc+ , nopPipeline+ -- * Exception+ , ShaderCompilationError(..)+ , ShaderLinkingError(..)+ , ShaderBuildingError(..)+ )+ where++import Graphics.Caramia.Prelude++import Graphics.Caramia.Shader.Internal++import Graphics.Caramia.Context+import Graphics.Caramia.Resource+import Graphics.Caramia.Internal.OpenGLCApi+import Graphics.Caramia.Math++import GHC.Float ( double2Float )++import Control.Exception+import Foreign+import Foreign.C.Types+import qualified Data.ByteString as B+import qualified Data.ByteString.Unsafe as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Foreign as T++type UniformLocation = Int++-- TODO: add tesselation shaders++toConstant :: ShaderStage -> GLenum+toConstant Vertex = gl_VERTEX_SHADER+toConstant Fragment = gl_FRAGMENT_SHADER+toConstant Geometry = gl_GEOMETRY_SHADER++-- | Thrown when either a compilation or linking error occurs.+data ShaderBuildingError = forall e. Exception e => ShaderBuildingError e+ deriving ( Typeable )++instance Show ShaderBuildingError where+ show (ShaderBuildingError e) = show e++-- | Thrown when a shader compilation error occurs. The text is the error log+-- for compilation.+--+-- Can also be caught as `ShaderBuildingError`.+data ShaderCompilationError = ShaderCompilationError !T.Text+ deriving ( Eq, Typeable, Show )++-- | Thrown when a shader linking error occurs. The text is the error log for+-- linking.+--+-- Can also be caught as `ShaderBuildingError`.+data ShaderLinkingError = ShaderLinkingError !T.Text+ deriving ( Eq, Typeable, Show )++instance Exception ShaderBuildingError++shaderExceptionToException :: Exception e => e -> SomeException+shaderExceptionToException = toException . ShaderBuildingError++shaderExceptionFromException :: Exception e => SomeException -> Maybe e+shaderExceptionFromException exc = do+ ShaderBuildingError a <- fromException exc+ cast a++instance Exception ShaderCompilationError where+ toException = shaderExceptionToException+ fromException = shaderExceptionFromException++instance Exception ShaderLinkingError where+ toException = shaderExceptionToException+ fromException = shaderExceptionFromException++-- | Sets a uniform in a pipeline.+setUniform :: Uniformable a+ => a+ -> UniformLocation+ -> Pipeline+ -> IO ()+setUniform uniformable location pipeline =+ withResource (resourcePL pipeline) $ \(Pipeline_ program) ->+ setUniform_ program (safeFromIntegral location) uniformable+{-# INLINE [1] setUniform #-}++newShaderGeneric :: Ptr CChar+ -> Int+ -> ShaderStage+ -> IO Shader+newShaderGeneric source_code_ptr source_code_len stage = mask_ $ do+ res <- newResource create+ deleter+ (return ())+ nid <- atomicModifyIORef' shaderIdentifierSupply $ \old ->+ ( old + 1, old )+ return Shader { resource = res+ , identifier = nid+ , viewStage = stage }+ where+ deleter (CompiledShader shader) =+ glDeleteShader shader++ create = do+ shader_name <- glCreateShader (toConstant stage)+ with source_code_ptr $ \cstr_ptr ->+ with (fromIntegral source_code_len :: GLint) $ \len_ptr ->+ glShaderSource+ shader_name+ 1+ cstr_ptr+ len_ptr+ glCompileShader shader_name+ checkCompilationErrors shader_name+ return $ CompiledShader shader_name++-- | Creates a shader from GLSL shader source, using a strict bytestring.+newShaderB :: B.ByteString+ -> ShaderStage+ -> IO Shader+newShaderB source_code stage =+ B.unsafeUseAsCStringLen source_code $ \(cstr, len) ->+ newShaderGeneric cstr len stage++-- | Creates a shader from GLSL shader source, using a lazy bytestring.+--+-- The bytestring will be forced and converted to a strict bytestring+-- internally, so this is not so efficient, if you care about storage+-- efficiency in shader compilation.+newShaderBL :: BL.ByteString+ -> ShaderStage+ -> IO Shader+newShaderBL source_code = newShaderB (BL.toStrict source_code)++-- | Creates a shader from GLSL shader source, encoding a Text into an UTF-8+-- string.+--+-- This can throw `ShaderCompilationError` if compilation fails.+newShader :: T.Text -- ^ The shader source code.+ -> ShaderStage+ -> IO Shader+newShader source_code stage = T.withCStringLen source_code $ \(cstr, len) ->+ newShaderGeneric cstr len stage++-- | Checks that there are no compilation errors in an OpenGL shader object.+--+-- DELETES the shader if there were errors.+checkCompilationErrors :: GLuint -> IO ()+checkCompilationErrors shader_name = do+ status <- gget $ glGetShaderiv shader_name gl_COMPILE_STATUS+ when (status == fromIntegral gl_FALSE) $ do+ log_len <- gget $ glGetShaderiv shader_name gl_INFO_LOG_LENGTH+ allocaBytes (safeFromIntegral log_len) $ \str -> do+ glGetShaderInfoLog shader_name log_len nullPtr str+ log <- T.peekCStringLen ( str+ , safeFromIntegral $ max 0 $ log_len-1 )+ glDeleteShader shader_name+ throwIO $ ShaderCompilationError log++-- | Same as `checkCompilationErrors` but for linking.+--+-- DELETES the program if there were errors.+checkLinkingErrors :: GLuint -> IO ()+checkLinkingErrors program_name = do+ status <- gget $ glGetProgramiv program_name gl_LINK_STATUS+ when (status == fromIntegral gl_FALSE) $ do+ log_len <- gget $ glGetProgramiv program_name gl_INFO_LOG_LENGTH+ allocaBytes (safeFromIntegral log_len) $ \str -> do+ glGetProgramInfoLog program_name log_len nullPtr str+ log <- T.peekCStringLen ( str+ , safeFromIntegral $ max 0 $ log_len-1)+ glDeleteProgram program_name+ throwIO $ ShaderLinkingError log++-- | Creates a pipeline from vertex and fragment shader source.+--+-- This is a convenience function for a common use case.+newPipelineVF :: T.Text -- ^ Vertex shader source.+ -> T.Text -- ^ Fragment shader source.+ -> IO Pipeline+newPipelineVF vert_src frag_src = do+ vsh <- newShader vert_src Vertex+ fsh <- newShader frag_src Fragment+ newPipeline [vsh, fsh]++-- | Creates a pipeline composed of different shaders.+newPipeline :: [Shader] -> IO Pipeline+newPipeline = newTraditionalPipeline++newTraditionalPipeline :: [Shader] -> IO Pipeline+newTraditionalPipeline shaders = mask_ $ do+ res <- newResource creator+ deleter+ (return ())+ nid <- atomicModifyIORef' shaderIdentifierSupply $ \old ->+ ( old+1, old )+ return Pipeline { resourcePL = res+ , pipelineIdentifier = nid+ , shaders = shaders }+ where+ creator = do+ program <- glCreateProgram+ for_ shaders $ \shader ->+ withResource (resource shader) $ \(CompiledShader sname) ->+ glAttachShader program sname+ glLinkProgram program+ checkLinkingErrors program+ return $ Pipeline_ program++ deleter (Pipeline_ program) = glDeleteProgram program++gget :: Storable a => (Ptr a -> IO ()) -> IO a+gget action = alloca $ \ptr -> action ptr >> peek ptr++-- | Class of data types that can be set to a uniform in a shader pipeline.+--+-- We provide instances for large integer values (such as `Integer`) but you+-- should know that uniforms are rarely larger than 32-bit. We throw a user+-- error if you pass a value that is larger than what the OpenGL API can accept+-- (which is 2^32-1 for unsigned integer types and 2^31-1 for signed integer+-- types).+class Uniformable a where+ setUniform_ :: GLuint -> GLint -> a -> IO ()++type USetter1 a = GLuint -> GLint -> a -> IO ()+type USetter2 a = GLuint -> GLint -> (a, a) -> IO ()+type USetter3 a = GLuint -> GLint -> (a, a, a) -> IO ()+type USetter4 a = GLuint -> GLint -> (a, a, a, a) -> IO ()++setUi1 :: Integral a => USetter1 a+setUi1 program loc w =+ mglProgramUniform1ui program loc (safeFromIntegral w)+{-# INLINE setUi1 #-}++setUi2 :: Integral a => USetter2 a+setUi2 program loc (w1, w2) =+ mglProgramUniform2ui program loc (safeFromIntegral w1)+ (safeFromIntegral w2)+{-# INLINE setUi2 #-}++setUi3 :: Integral a => USetter3 a+setUi3 program loc (w1, w2, w3) =+ mglProgramUniform3ui program loc (safeFromIntegral w1)+ (safeFromIntegral w2)+ (safeFromIntegral w3)+{-# INLINE setUi3 #-}++setUi4 :: Integral a => USetter4 a+setUi4 program loc (w1, w2, w3, w4) =+ mglProgramUniform4ui program loc (safeFromIntegral w1)+ (safeFromIntegral w2)+ (safeFromIntegral w3)+ (safeFromIntegral w4)+{-# INLINE setUi4 #-}++setI1 :: Integral a => USetter1 a+setI1 program loc w =+ mglProgramUniform1i program loc (safeFromIntegral w)+{-# INLINE setI1 #-}++setI2 :: Integral a => USetter2 a+setI2 program loc (w1, w2) =+ mglProgramUniform2i program loc (safeFromIntegral w1)+ (safeFromIntegral w2)+{-# INLINE setI2 #-}++setI3 :: Integral a => USetter3 a+setI3 program loc (w1, w2, w3) =+ mglProgramUniform3i program loc (safeFromIntegral w1)+ (safeFromIntegral w2)+ (safeFromIntegral w3)+{-# INLINE setI3 #-}++setI4 :: Integral a => USetter4 a+setI4 program loc (w1, w2, w3, w4) =+ mglProgramUniform4i program loc (safeFromIntegral w1)+ (safeFromIntegral w2)+ (safeFromIntegral w3)+ (safeFromIntegral w4)+{-# INLINE setI4 #-}++instance Uniformable Word8 where+ setUniform_ = setUi1+instance Uniformable (Word8, Word8) where+ setUniform_ = setUi2+instance Uniformable (Word8, Word8, Word8) where+ setUniform_ = setUi3+instance Uniformable (Word8, Word8, Word8, Word8) where+ setUniform_ = setUi4+instance Uniformable Word16 where+ setUniform_ = setUi1+instance Uniformable (Word16, Word16) where+ setUniform_ = setUi2+instance Uniformable (Word16, Word16, Word16) where+ setUniform_ = setUi3+instance Uniformable (Word16, Word16, Word16, Word16) where+ setUniform_ = setUi4+instance Uniformable Word32 where+ setUniform_ = setUi1+instance Uniformable (Word32, Word32) where+ setUniform_ = setUi2+instance Uniformable (Word32, Word32, Word32) where+ setUniform_ = setUi3+instance Uniformable (Word32, Word32, Word32, Word32) where+ setUniform_ = setUi4+instance Uniformable Word64 where+ setUniform_ = setUi1+instance Uniformable (Word64, Word64) where+ setUniform_ = setUi2+instance Uniformable (Word64, Word64, Word64) where+ setUniform_ = setUi3+instance Uniformable (Word64, Word64, Word64, Word64) where+ setUniform_ = setUi4+instance Uniformable CUInt where+ setUniform_ = setUi1+instance Uniformable (CUInt, CUInt) where+ setUniform_ = setUi2+instance Uniformable (CUInt, CUInt, CUInt) where+ setUniform_ = setUi3+instance Uniformable (CUInt, CUInt, CUInt, CUInt) where+ setUniform_ = setUi4+instance Uniformable CInt where+ setUniform_ = setI1+instance Uniformable (CInt, CInt) where+ setUniform_ = setI2+instance Uniformable (CInt, CInt, CInt) where+ setUniform_ = setI3+instance Uniformable (CInt, CInt, CInt, CInt) where+ setUniform_ = setI4++instance Uniformable Int8 where+ setUniform_ = setI1+instance Uniformable (Int8, Int8) where+ setUniform_ = setI2+instance Uniformable (Int8, Int8, Int8) where+ setUniform_ = setI3+instance Uniformable (Int8, Int8, Int8, Int8) where+ setUniform_ = setI4+instance Uniformable Int16 where+ setUniform_ = setI1+instance Uniformable (Int16, Int16) where+ setUniform_ = setI2+instance Uniformable (Int16, Int16, Int16) where+ setUniform_ = setI3+instance Uniformable (Int16, Int16, Int16, Int16) where+ setUniform_ = setI4+instance Uniformable Int32 where+ setUniform_ = setI1+instance Uniformable (Int32, Int32) where+ setUniform_ = setI2+instance Uniformable (Int32, Int32, Int32) where+ setUniform_ = setI3+instance Uniformable (Int32, Int32, Int32, Int32) where+ setUniform_ = setI4+instance Uniformable Int64 where+ setUniform_ = setI1+instance Uniformable (Int64, Int64) where+ setUniform_ = setI2+instance Uniformable (Int64, Int64, Int64) where+ setUniform_ = setI3+instance Uniformable (Int64, Int64, Int64, Int64) where+ setUniform_ = setI4+instance Uniformable Int where+ setUniform_ = setI1+instance Uniformable (Int, Int) where+ setUniform_ = setI2+instance Uniformable (Int, Int, Int) where+ setUniform_ = setI3+instance Uniformable (Int, Int, Int, Int) where+ setUniform_ = setI4+instance Uniformable Integer where+ setUniform_ = setI1+instance Uniformable (Integer, Integer) where+ setUniform_ = setI2+instance Uniformable (Integer, Integer, Integer) where+ setUniform_ = setI3+instance Uniformable (Integer, Integer, Integer, Integer) where+ setUniform_ = setI4+instance Uniformable Float where+ setUniform_ program loc f1 =+ mglProgramUniform1f program loc (CFloat f1)+instance Uniformable (Float, Float) where+ setUniform_ program loc (f1, f2) =+ mglProgramUniform2f program loc (CFloat f1) (CFloat f2)+instance Uniformable (Float, Float, Float) where+ setUniform_ program loc (f1, f2, f3) =+ mglProgramUniform3f program loc+ (CFloat f1)+ (CFloat f2)+ (CFloat f3)+instance Uniformable (Float, Float, Float, Float) where+ setUniform_ program loc (f1, f2, f3, f4) =+ mglProgramUniform4f program loc+ (CFloat f1)+ (CFloat f2)+ (CFloat f3)+ (CFloat f4)+instance Uniformable CFloat where+ setUniform_ = mglProgramUniform1f+instance Uniformable (CFloat, CFloat) where+ setUniform_ program loc (f1, f2) =+ mglProgramUniform2f program loc f1 f2+instance Uniformable (CFloat, CFloat, CFloat) where+ setUniform_ program loc (f1, f2, f3) =+ mglProgramUniform3f program loc f1 f2 f3+instance Uniformable (CFloat, CFloat, CFloat, CFloat) where+ setUniform_ program loc (f1, f2, f3, f4) =+ mglProgramUniform4f program loc f1 f2 f3 f4++instance Uniformable Double where+ setUniform_ program loc f1 =+ mglProgramUniform1f program loc (double2CFloat f1)+instance Uniformable (Double, Double) where+ setUniform_ program loc (f1, f2) =+ mglProgramUniform2f program loc (double2CFloat f1) (double2CFloat f2)+instance Uniformable (Double, Double, Double) where+ setUniform_ program loc (f1, f2, f3) =+ mglProgramUniform3f program loc+ (double2CFloat f1)+ (double2CFloat f2)+ (double2CFloat f3)+instance Uniformable (Double, Double, Double, Double) where+ setUniform_ program loc (f1, f2, f3, f4) =+ mglProgramUniform4f program loc+ (double2CFloat f1)+ (double2CFloat f2)+ (double2CFloat f3)+ (double2CFloat f4)+instance Uniformable CDouble where+ setUniform_ program loc f1 =+ mglProgramUniform1f program loc (cdouble2CFloat f1)+instance Uniformable (CDouble, CDouble) where+ setUniform_ program loc (f1, f2) =+ mglProgramUniform2f program loc (cdouble2CFloat f1) (cdouble2CFloat f2)+instance Uniformable (CDouble, CDouble, CDouble) where+ setUniform_ program loc (f1, f2, f3) =+ mglProgramUniform3f program loc+ (cdouble2CFloat f1)+ (cdouble2CFloat f2)+ (cdouble2CFloat f3)+instance Uniformable (CDouble, CDouble, CDouble, CDouble) where+ setUniform_ program loc (f1, f2, f3, f4) =+ mglProgramUniform4f program loc+ (cdouble2CFloat f1)+ (cdouble2CFloat f2)+ (cdouble2CFloat f3)+ (cdouble2CFloat f4)++instance Uniformable Vector3 where+ setUniform_ program loc (toTuple3 -> tuple) =+ setUniform_ program loc tuple++instance Uniformable Quaternion where+ setUniform_ program loc (toTupleq -> tuple) =+ setUniform_ program loc tuple++instance Uniformable Matrix33 where+ setUniform_ program loc m33 =+ withMatrix33Ptr m33 $+ mglProgramUniformMatrix3fv program loc 1+ (fromIntegral gl_FALSE)++instance Uniformable Matrix44 where+ setUniform_ program loc m44 =+ withMatrix44Ptr m44 $ mglProgramUniformMatrix4fv program loc 1+ (fromIntegral gl_FALSE)++-- these are for RULES firing+newtype Transpose33 = Transpose33 Matrix33+newtype Transpose44 = Transpose44 Matrix44++instance Uniformable Transpose33 where+ setUniform_ program loc (Transpose33 m33) =+ withMatrix33Ptr m33 $+ mglProgramUniformMatrix3fv program loc 1 (fromIntegral gl_TRUE)++instance Uniformable Transpose44 where+ setUniform_ program loc (Transpose44 m44) =+ withMatrix44Ptr m44 $ mglProgramUniformMatrix4fv program loc 1+ (fromIntegral gl_TRUE)++double2CFloat :: Double -> CFloat+double2CFloat dbl = CFloat $ double2Float dbl++cdouble2CFloat :: CDouble -> CFloat+cdouble2CFloat (CDouble dbl) = CFloat $ double2Float dbl++{-# RULES "transpose/glProgramUniformMatrix3fv" forall (a :: Matrix33) b c.+ setUniform (transpose33 a) b c =+ setUniform (Transpose33 a) b c #-}++{-# RULES "transpose/glProgramUniformMatrix4fv" forall (a :: Matrix44) b c.+ setUniform (transpose44 a) b c =+ setUniform (Transpose44 a) b c #-}++-- | Returns a uniform location for a given name.+--+-- The uniform may not be in the shader or it may not be active. If this+-- happens, a special uniform location is returned that can be used in+-- `setUniform` to make it do nothing.+getUniformLocation :: T.Text -> Pipeline -> IO UniformLocation+getUniformLocation name pipeline = fromIntegral <$>+ withResource (resourcePL pipeline) (\(Pipeline_ program) ->+ B.useAsCString (T.encodeUtf8 name) $ \cstr ->+ glGetUniformLocation program cstr)++-- context local pipeline+newtype CLNopPipeline = CLNopPipeline { unwrapCLNop :: Pipeline }+ deriving ( Typeable )++-- | Returns a pipeline that does not do anything.+--+-- Within the same context, this returns the same pipeline for each invocation.+nopPipeline :: IO Pipeline+nopPipeline =+ unwrapCLNop <$> retrieveContextLocalData (CLNopPipeline <$> cr)+ where+ cr = do+ vsh <- newShader vsh_src Vertex+ fsh <- newShader fsh_src Fragment+ newPipeline [vsh, fsh]+ where+ vsh_src = "#version 330\nvoid main() { }\n"+ fsh_src = "#version 330\nvoid main() { }\n"+
+ src/Graphics/Caramia/Shader/Internal.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE ViewPatterns, NoImplicitPrelude, DeriveDataTypeable #-}++module Graphics.Caramia.Shader.Internal where++import Graphics.Caramia.Prelude++import Graphics.Caramia.Resource+import System.IO.Unsafe+import Graphics.Caramia.Internal.OpenGLCApi++-- | A shader object for a specific shader stage.+--+-- OpenGL equivalent is the shader object.+data Shader = Shader+ { resource :: !(Resource Shader_)+ , viewStage :: !ShaderStage+ -- ^ Which stage does this shader belong to.+ , identifier :: !Int+ }+ deriving ( Typeable )++instance Eq Shader where+ (resource -> res1) == (resource -> res2) = res1 == res2++-- | The ordering has no inherent meaning but it allows shaders to be stored+-- correctly in containers that have `Ord` constraint.+instance Ord Shader where+ (identifier -> id1) `compare` (identifier -> id2) = id1 `compare` id2++data Shader_ = CompiledShader !GLuint -- OpenGL shader++-- | A pipeline object that references a collection of shaders.+--+-- OpenGL equivalent is the shader program object.+data Pipeline = Pipeline+ { resourcePL :: !(Resource Pipeline_)+ , pipelineIdentifier :: !Int+ , shaders :: [Shader] }+ deriving ( Typeable )++instance Eq Pipeline where+ p1 == p2 = resourcePL p1 == resourcePL p2++instance Ord Pipeline where+ p1 `compare` p2 = pipelineIdentifier p1 `compare` pipelineIdentifier p2++newtype Pipeline_ = Pipeline_ GLuint++shaderIdentifierSupply :: IORef Int+shaderIdentifierSupply = unsafePerformIO $ newIORef 0+{-# NOINLINE shaderIdentifierSupply #-}++data ShaderStage =+ Vertex+ | Fragment+ | Geometry+ deriving ( Eq, Ord, Show, Read )+
+ src/Graphics/Caramia/Sync.hs view
@@ -0,0 +1,68 @@+-- | Synchronization primitives.+--+-- This module implements fence synchronization objects. They can be used to+-- check when a GPU operation has been done.+--+-- At the moment, the only place where these objects are useful in Caramia is+-- unsynchronized buffer mapping.+--++{-# LANGUAGE NoImplicitPrelude, DeriveDataTypeable, MultiWayIf #-}++module Graphics.Caramia.Sync+ (+ -- * Operations+ fence+ , waitFence+ , isFenceSignalled+ -- * Types+ , Fence() )+ where++import Graphics.Caramia.Internal.OpenGLCApi+import Graphics.Caramia.Prelude+import Graphics.Caramia.Resource+import Control.Exception++newtype Fence = Fence (Resource GLsync)+ deriving ( Eq, Typeable )++-- | Create a fence.+fence :: IO Fence+fence = mask_ $ do+ resource <-+ newResource createFence+ glDeleteSync+ (return ())+ return $ Fence resource+ where+ createFence = glFenceSync gl_SYNC_GPU_COMMANDS_COMPLETE 0++-- | Waits for a fence to signal.+--+-- IMPORTANT: this is not interruptible by asynchronous exceptions.+waitFence :: Int -- ^ Number of microseconds to wait.+ -> Fence+ -> IO Bool -- ^ `True` if the fence was signalled,+ -- `False` if waiting timed out.+waitFence useconds (Fence resource) =+ withResource resource $ \fencesync -> do+ ret <- glClientWaitSync fencesync gl_SYNC_FLUSH_COMMANDS_BIT+ (fromIntegral actual_seconds)+ if | ret == gl_ALREADY_SIGNALED -> return True+ | ret == gl_TIMEOUT_EXPIRED -> return False+ | ret == gl_CONDITION_SATISFIED -> return True+ | ret == gl_WAIT_FAILED -> return True -- should we throw an error?+ where+ actual_seconds :: Word64+ actual_seconds =+ if useconds * 1000 < useconds+ then maxBound+ else safeFromIntegral $ useconds * 1000++-- | Checks if a fence has been signalled.+--+-- @ isFenceSignalled = waitFence 0 @+isFenceSignalled :: Fence -> IO Bool+isFenceSignalled = waitFence 0+
+ src/Graphics/Caramia/Texture.hs view
@@ -0,0 +1,728 @@+-- | Textures.+--++{-# LANGUAGE RecordWildCards, ScopedTypeVariables, NoImplicitPrelude #-}+{-# LANGUAGE MultiWayIf, ViewPatterns, DeriveDataTypeable #-}++module Graphics.Caramia.Texture+ (+ -- * Creating textures+ newTexture+ , Texture()+ , TextureSpecification(..)+ , textureSpecification+ , Topology(..)+ -- * Uploading to textures+ , uploadToTexture+ , Uploading(..)+ , uploading1D+ , uploading2D+ , uploading3D+ , UploadFormat(..)+ , CubeSide(..)+ -- * Texture units+ , TextureUnit+ -- * Mipmapping+ , generateMipmaps+ -- * Texture parameters+ , setWrapping+ , getWrapping+ , setMinFilter+ , setMagFilter+ , getMinFilter+ , getMagFilter+ , setAnisotropy+ , getAnisotropy+ , setCompareMode+ , getCompareMode+ , MinFilter(..)+ , MagFilter(..)+ , Wrapping(..)+ , CompareMode(..)+ -- * Views+ , viewSpecification+ , viewWidth+ , viewHeight+ , viewDepth+ , viewMipmapLevels+ -- * Utilities+ , maxMipmapLevels )+ where++import Graphics.Caramia.Prelude++import Graphics.Caramia.Texture.Internal+import Graphics.Caramia.Internal.OpenGLCApi+import qualified Graphics.Caramia.Buffer.Internal as Buf+import Graphics.Caramia.ImageFormats.Internal+import Graphics.Caramia.Resource+import Control.Exception+import Foreign+import Foreign.C.Types++textureSpecification :: TextureSpecification+textureSpecification = TextureSpecification {+ topology = error "textureSpecification: topology is not set."+ , imageFormat = error "textureSpecification: image format is not set."+ , mipmapLevels = 1 }++-- | Returns the width of a texture.+viewWidth :: Texture -> Int+viewWidth (viewSpecification -> spec) = viewWidth' (topology spec)+ where+ viewWidth' (Tex1D {..}) = width1D+ viewWidth' (Tex2D {..}) = width2D+ viewWidth' (Tex3D {..}) = width3D+ viewWidth' (Tex1DArray {..}) = width1DArray+ viewWidth' (Tex2DArray {..}) = width2DArray+ viewWidth' (Tex2DMultisample {..}) = width2DMS+ viewWidth' (Tex2DMultisampleArray {..}) = width2DMSArray+ viewWidth' (TexCube {..}) = widthCube+ viewWidth' (TexBuffer {}) =+ error "viewWidth: buffer texture has no meaningful width."+ -- TODO: you can actually infer that from the buffer size+ -- so implement it++-- | Returns the height of a texture.+--+-- This is 1 for one-dimensional textures.+viewHeight :: Texture -> Int+viewHeight (viewSpecification -> spec) = viewHeight' (topology spec)+ where+ viewHeight' (Tex1D {..}) = 1+ viewHeight' (Tex2D {..}) = height2D+ viewHeight' (Tex3D {..}) = height3D+ viewHeight' (Tex1DArray {..}) = 1+ viewHeight' (Tex2DArray {..}) = height2DArray+ viewHeight' (Tex2DMultisample {..}) = height2DMS+ viewHeight' (Tex2DMultisampleArray {..}) = height2DMSArray+ viewHeight' (TexCube {..}) = widthCube+ viewHeight' (TexBuffer {}) = 1++-- | Returns the depth of a 3D texture or number of layers in array textures.+--+-- This is 1 for any other type of texture.+viewDepth :: Texture -> Int+viewDepth (viewSpecification -> spec) = viewDepth' (topology spec)+ where+ viewDepth' (Tex1D {..}) = 1+ viewDepth' (Tex2D {..}) = 1+ viewDepth' (Tex3D {..}) = depth3D+ viewDepth' (Tex1DArray {..}) = layers1D+ viewDepth' (Tex2DArray {..}) = layers2D+ viewDepth' (Tex2DMultisample {..}) = 1+ viewDepth' (Tex2DMultisampleArray {..}) = layers2DMS+ viewDepth' (TexCube {..}) = 1+ viewDepth' (TexBuffer {}) = 1++viewMipmapLevels :: Texture -> Int+viewMipmapLevels = mipmapLevels . viewSpecification++isMultisamplingTopology :: Topology -> Bool+isMultisamplingTopology (Tex2DMultisample {..}) = True+isMultisamplingTopology (Tex2DMultisampleArray {..}) = True+isMultisamplingTopology _ = False++-- | Creates a new texture.+--+-- Initially the contents of the texture are undefined.+--+-- Texture dimensions must be positive.+newTexture :: TextureSpecification+ -> IO Texture+newTexture spec = mask_ $ do+ topologySanityCheck (topology spec)+ when (not (isMultisamplingTopology (topology spec)) &&+ mipmapLevels spec < 1) $+ error "newTexture: mipmapLevels is not positive."++ res <- newResource creator+ deleter+ (return ())++ index <- atomicModifyIORef' ordIndices $ \old -> ( old+1, old )+ return Texture { resource = res+ , ordIndex = index+ , viewSpecification = spec }+ where+ num_mipmaps = mipmapLevels spec++ -- a lot of code just to check that all the dimensions are positive...+ topologySanityCheck t@(Tex1D {..})+ | width1D <= 0 = badTopology t+ | not (isValidMipmap width1D num_mipmaps) = badMipmaps+ | otherwise = return ()+ topologySanityCheck t@(Tex2D {..})+ | width2D <= 0 || height2D <= 0 = badTopology t+ | not (isValidMipmap (max width2D height2D) num_mipmaps) = badMipmaps+ | otherwise = return ()+ topologySanityCheck t@(Tex3D {..})+ | width3D <= 0 || height3D <= 0 || depth3D <= 0 = badTopology t+ | not (isValidMipmap (max width3D $ max height3D depth3D) num_mipmaps) =+ badMipmaps+ | otherwise = return ()+ topologySanityCheck t@(Tex1DArray {..})+ | width1DArray <= 0 || layers1D <= 0 = badTopology t+ | not (isValidMipmap width1DArray num_mipmaps) =+ badMipmaps+ | otherwise = return ()+ topologySanityCheck t@(Tex2DArray {..})+ | width2DArray <= 0 || height2DArray <= 0 ||+ layers2D <= 0 = badTopology t+ | not (isValidMipmap (max width2DArray height2DArray) num_mipmaps) =+ badMipmaps+ | otherwise = return ()+ topologySanityCheck t@(Tex2DMultisample {..})+ | width2DMS <= 0 || height2DMS <= 0 = badTopology t+ | otherwise = return ()+ topologySanityCheck t@(Tex2DMultisampleArray {..})+ | width2DMSArray <= 0 || height2DMSArray <= 0 ||+ layers2DMS <= 0 = badTopology t+ | otherwise = return ()+ topologySanityCheck t@(TexCube {..})+ | widthCube <= 0 = badTopology t+ | not (isValidMipmap widthCube num_mipmaps) =+ badMipmaps+ | otherwise = return ()+ topologySanityCheck (TexBuffer {}) = return ()++ badTopology _ = error "newTexture: bad topology."++ badMipmaps =+ error $ "newTexture: bad number of mipmap levels: " <> show num_mipmaps++ deleter (Texture_ name) =+ with name $ glDeleteTextures 1++ creator = do+ name <- bracketOnError+ (alloca $ \name_ptr ->+ glGenTextures 1 name_ptr *> peek name_ptr)+ (deleter . Texture_ )+ (\name -> do+ createByTopology name (topology spec)+ return name)+ return (Texture_ name)++ -- TODO: use DSA when available, perhaps add mglTextureStorage* functions+ -- to Caramia.Internal.OpenGLCApi?+ createByTopology :: GLuint -> Topology -> IO ()+ createByTopology name (Tex1D {..}) =+ withBinding gl_TEXTURE_1D gl_TEXTURE_BINDING_1D name $+ glTexStorage1D gl_TEXTURE_1D+ (safeFromIntegral num_mipmaps)+ (toConstantIF (imageFormat spec))+ (safeFromIntegral width1D)+ createByTopology name (Tex2D {..}) =+ withBinding gl_TEXTURE_2D gl_TEXTURE_BINDING_2D name $+ glTexStorage2D gl_TEXTURE_2D+ (safeFromIntegral num_mipmaps)+ (toConstantIF (imageFormat spec))+ (safeFromIntegral width2D)+ (safeFromIntegral height2D)+ createByTopology name (Tex3D {..}) =+ withBinding gl_TEXTURE_3D gl_TEXTURE_BINDING_3D name $+ glTexStorage3D gl_TEXTURE_3D+ (safeFromIntegral num_mipmaps)+ (toConstantIF (imageFormat spec))+ (safeFromIntegral width3D)+ (safeFromIntegral height3D)+ (safeFromIntegral depth3D)+ createByTopology name (Tex1DArray {..}) =+ withBinding gl_TEXTURE_1D_ARRAY gl_TEXTURE_BINDING_1D_ARRAY name $+ glTexStorage2D gl_TEXTURE_1D_ARRAY+ (safeFromIntegral num_mipmaps)+ (toConstantIF (imageFormat spec))+ (safeFromIntegral width1DArray)+ (safeFromIntegral layers1D)+ createByTopology name (Tex2DArray {..}) =+ withBinding gl_TEXTURE_2D_ARRAY gl_TEXTURE_BINDING_2D_ARRAY name $+ glTexStorage3D gl_TEXTURE_2D_ARRAY+ (safeFromIntegral num_mipmaps)+ (toConstantIF (imageFormat spec))+ (safeFromIntegral width2DArray)+ (safeFromIntegral height2DArray)+ (safeFromIntegral layers2D)+ createByTopology name (Tex2DMultisample {..}) =+ withBinding gl_TEXTURE_2D_MULTISAMPLE+ gl_TEXTURE_BINDING_2D_MULTISAMPLE+ name $+ glTexImage2DMultisample+ gl_TEXTURE_2D_MULTISAMPLE+ (safeFromIntegral samples2DMS)+ (fromIntegral $ toConstantIF (imageFormat spec))+ (safeFromIntegral width2DMS)+ (safeFromIntegral height2DMS)+ (if fixedSampleLocations2DMS+ then 1 else 0)+ createByTopology name (Tex2DMultisampleArray {..}) =+ withBinding gl_TEXTURE_2D_MULTISAMPLE_ARRAY+ gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY+ name $+ glTexImage3DMultisample+ gl_TEXTURE_2D_MULTISAMPLE_ARRAY+ (safeFromIntegral samples2DMSArray)+ (fromIntegral $ toConstantIF (imageFormat spec))+ (safeFromIntegral width2DMSArray)+ (safeFromIntegral height2DMSArray)+ (safeFromIntegral layers2DMS)+ (if fixedSampleLocations2DMSArray+ then 1 else 0)+ createByTopology name (TexCube {..}) =+ withBinding gl_TEXTURE_CUBE_MAP+ gl_TEXTURE_BINDING_CUBE_MAP+ name $+ glTexStorage2D gl_TEXTURE_CUBE_MAP+ (safeFromIntegral num_mipmaps)+ (fromIntegral $ toConstantIF (imageFormat spec))+ (safeFromIntegral widthCube)+ (safeFromIntegral widthCube)+ createByTopology name (TexBuffer {..}) =+ withBinding gl_TEXTURE_BUFFER+ gl_TEXTURE_BINDING_BUFFER+ name $+ withResource (Buf.resource texBuffer) $ \(Buf.Buffer_ bufname) ->+ glTexBuffer gl_TEXTURE_BUFFER+ (fromIntegral $ toConstantIF (imageFormat spec))+ bufname++-- | Generate all mipmaps for a texture. If mipmap levels were specified, that+-- is.+generateMipmaps :: Texture -> IO ()+generateMipmaps = flip withBindingByTopology glGenerateMipmap++-- | Specifies the format in which buffer data is for the purposes of uploading+-- said data to a texture.+data UploadFormat =+ UR -- ^ Just red.+ | URG -- ^ Red and green.+ | URGB -- ^ You know the drill.+ | URGBA+ | UBGR+ | UBGRA+ | UDEPTH_COMPONENT -- ^ Depth values.+ | USTENCIL_INDEX -- ^ Stencil values.+ deriving ( Eq, Ord, Show, Read, Typeable )++-- TODO: add UDEPTH_STENCIL when `SpecificationType` has special interpretation+-- formats.++toConstantUF :: UploadFormat -> GLenum+toConstantUF UR = gl_RED+toConstantUF URG = gl_RG+toConstantUF URGB = gl_RGB+toConstantUF URGBA = gl_RGBA+toConstantUF UBGR = gl_BGR+toConstantUF UBGRA = gl_BGRA+toConstantUF UDEPTH_COMPONENT = gl_DEPTH_COMPONENT+toConstantUF USTENCIL_INDEX = gl_STENCIL_INDEX++-- | Used to specify how to move the data from a `Buffer` to a `Texture` in+-- `uploadToTexture`.+--+-- This is common for all texture topologies. However, some fields are ignored+-- depending on the topology.+--+-- For example, if you upload into a 1D texture, then all fields that deal with+-- higher dimensions (`yOffset`, `zOffset`, `uHeight` etc.) are ignored.+--+-- It is recommended that you use one of the smart constructors as they+-- implement the common use cases so you don't have to fill all these fields by+-- yourself.+data Uploading = Uploading+ { fromBuffer :: !Buf.Buffer -- ^ From which buffer to upload.+ , bufferOffset :: !Int -- ^ Offset in the buffer, in bytes,+ -- from where to start uploading.+ , toMipmapLevel :: !Int -- ^ To which mipmap level to upload.+ -- (0 = base level).+ , specificationType :: !SpecificationType+ -- ^ What data type is used for each component value in a pixel.+ , uploadFormat :: !UploadFormat+ -- ^ What format is the source data in.+ , xOffset :: !Int -- ^ X offset where to put the data.+ , yOffset :: !Int -- ^ Y offset where to put the data.+ , zOffset :: !Int -- ^ Z offset where to put the data.+ , uWidth :: !Int -- ^ Width of the data to put.+ , uHeight :: !Int -- ^ Height of the data to put.+ , uDepth :: !Int -- ^ Number of 2D images to put.+ , cubeSide :: CubeSide -- ^ Only used for cube map textures.+ -- Specifies which side of the cube to upload.+ -- Not evaluated if the texture is not a cube+ -- texture.+ , numColumns :: !Int+ -- ^ Number of columns in the image in the source buffer. This value is+ -- also sometimes known as \'pitch\'. It is the same as `uWidth` except in+ -- cases where the next row in source data does not come immediately after+ -- the current row but after `numColumns` from the first pixel in the row.+ , numRows :: !Int+ -- ^ Same as `numColumns` but for images in 3D uploading.+ , pixelAlignment :: !Int+ -- ^ Alignment in which the source texture data is. Every row is aligned to+ -- this value. Allowed values are 1, 2, 4 and 8. The default value in smart+ -- constructors is 1.+ }+ deriving ( Eq, Typeable )++-- | Values of this type refer to sides of a cube.+data CubeSide =+ PositiveY+ | NegativeY+ | PositiveX+ | NegativeX+ | PositiveZ+ | NegativeZ+ deriving ( Eq, Ord, Show, Read, Typeable )++toConstantCS :: CubeSide -> GLenum+toConstantCS PositiveX = gl_TEXTURE_CUBE_MAP_POSITIVE_X+toConstantCS NegativeX = gl_TEXTURE_CUBE_MAP_NEGATIVE_X+toConstantCS PositiveY = gl_TEXTURE_CUBE_MAP_POSITIVE_Y+toConstantCS NegativeY = gl_TEXTURE_CUBE_MAP_NEGATIVE_Y+toConstantCS PositiveZ = gl_TEXTURE_CUBE_MAP_POSITIVE_Z+toConstantCS NegativeZ = gl_TEXTURE_CUBE_MAP_NEGATIVE_Z++-- | Constructs a common 1D uploading.+uploading1D :: Buf.Buffer+ -> Int -- ^ How many pixels to upload.+ -> SpecificationType+ -> UploadFormat+ -> Uploading+uploading1D buffer pixels stype uf =+ Uploading {+ fromBuffer = buffer+ , bufferOffset = 0+ , specificationType = stype+ , uploadFormat = uf+ , toMipmapLevel = 0+ , xOffset = 0+ , yOffset = 0+ , zOffset = 0+ , uWidth = pixels+ , uHeight = 1+ , uDepth = 1+ , numColumns = pixels+ , cubeSide = PositiveY+ , numRows = 1+ , pixelAlignment = 1 }++-- | Constructs a common 2D uploading.+--+-- This can also be used for uploading into 1D texture arrays.+uploading2D :: Buf.Buffer+ -> Int -- ^ Width of the image to upload.+ -> Int -- ^ Height of the image to upload.+ -> SpecificationType+ -> UploadFormat+ -> Uploading+uploading2D buffer width height stype uf =+ Uploading {+ fromBuffer = buffer+ , bufferOffset = 0+ , specificationType = stype+ , uploadFormat = uf+ , toMipmapLevel = 0+ , xOffset = 0+ , yOffset = 0+ , zOffset = 0+ , uWidth = width+ , uHeight = height+ , uDepth = 1+ , numColumns = width+ , cubeSide = PositiveY+ , numRows = height+ , pixelAlignment = 1 }++-- | Constructs a common 3D uploading.+--+-- This can also be used for uploading into 2D texture arrays.+uploading3D :: Buf.Buffer+ -> Int -- ^ Width of the image to upload.+ -> Int -- ^ Height of the image to upload.+ -> Int -- ^ Number of images to upload.+ -> SpecificationType+ -> UploadFormat+ -> Uploading+uploading3D buffer width height depth stype uf =+ Uploading {+ fromBuffer = buffer+ , bufferOffset = 0+ , specificationType = stype+ , uploadFormat = uf+ , toMipmapLevel = 0+ , xOffset = 0+ , yOffset = 0+ , zOffset = 0+ , uWidth = width+ , uHeight = height+ , uDepth = depth+ , numColumns = width+ , cubeSide = PositiveY+ , numRows = height+ , pixelAlignment = 1 }++-- | Uploads an image to a texture.+uploadToTexture :: Uploading+ -> Texture+ -> IO ()+uploadToTexture uploading tex = mask_ $+ withResource (Buf.resource (fromBuffer uploading)) $ \(Buf.Buffer_ buf) ->+ withBoundPixelUnpackBuffer buf $ do+ old_num_cols <- fromIntegral <$> gi gl_UNPACK_ROW_LENGTH+ old_num_rows <- fromIntegral <$> gi gl_UNPACK_IMAGE_HEIGHT+ old_alignment <- fromIntegral <$> gi gl_UNPACK_ALIGNMENT+ glPixelStorei gl_UNPACK_ROW_LENGTH+ (safeFromIntegral $ numColumns uploading)+ flip finally (glPixelStorei gl_UNPACK_ROW_LENGTH old_num_cols) $ do+ glPixelStorei gl_UNPACK_IMAGE_HEIGHT+ (safeFromIntegral $ numRows uploading)+ flip finally (glPixelStorei gl_UNPACK_IMAGE_HEIGHT old_num_rows) $ do+ glPixelStorei gl_UNPACK_ALIGNMENT+ (safeFromIntegral $ pixelAlignment uploading)+ flip finally (glPixelStorei gl_UNPACK_ALIGNMENT old_alignment) $+ withResource (resource tex) $ \(Texture_ texname) ->+ case topology $ viewSpecification tex of+ Tex1D {..} ->+ upload1D gl_TEXTURE_1D gl_TEXTURE_BINDING_1D+ texname uploading+ Tex2D {..} ->+ upload2D gl_TEXTURE_2D gl_TEXTURE_BINDING_2D+ texname uploading+ Tex3D {..} ->+ upload3D gl_TEXTURE_3D gl_TEXTURE_BINDING_3D+ texname uploading+ Tex1DArray {..} ->+ upload2D gl_TEXTURE_1D_ARRAY gl_TEXTURE_BINDING_1D_ARRAY+ texname uploading+ Tex2DArray {..} ->+ upload3D gl_TEXTURE_2D_ARRAY gl_TEXTURE_BINDING_2D_ARRAY+ texname uploading+ Tex2DMultisample {..} ->+ error $ "uploadToTexture: cannot upload to " <>+ "multisampling textures."+ Tex2DMultisampleArray {..} ->+ error $ "uploadToTexture: cannot upload to " <>+ "multisampling array textures."+ TexCube {..} ->+ uploadCube gl_TEXTURE_CUBE_MAP+ gl_TEXTURE_BINDING_CUBE_MAP+ texname uploading+ TexBuffer {..} ->+ error $ "uploadToTexture: cannot upload to " <>+ "buffer textures. (please upload directly to the " <>+ "associated buffer instead.)"++upload1D :: GLenum -> GLenum -> GLuint -> Uploading -> IO ()+upload1D target binding tex (Uploading {..}) =+ withBinding target binding tex $+ glTexSubImage1D target+ (safeFromIntegral toMipmapLevel)+ (safeFromIntegral xOffset)+ (safeFromIntegral uWidth)+ (toConstantUF uploadFormat)+ (toConstantST specificationType)+ (intPtrToPtr $+ fromIntegral bufferOffset)++upload2D :: GLenum -> GLenum -> GLuint -> Uploading -> IO ()+upload2D target binding tex (Uploading {..}) =+ withBinding target binding tex $+ glTexSubImage2D target+ (safeFromIntegral toMipmapLevel)+ (safeFromIntegral xOffset)+ (safeFromIntegral yOffset)+ (safeFromIntegral uWidth)+ (safeFromIntegral uHeight)+ (toConstantUF uploadFormat)+ (toConstantST specificationType)+ (intPtrToPtr $+ fromIntegral bufferOffset)++upload3D :: GLenum -> GLenum -> GLuint -> Uploading -> IO ()+upload3D target binding tex (Uploading {..}) =+ withBinding target binding tex $+ glTexSubImage3D target+ (safeFromIntegral toMipmapLevel)+ (safeFromIntegral xOffset)+ (safeFromIntegral yOffset)+ (safeFromIntegral zOffset)+ (safeFromIntegral uWidth)+ (safeFromIntegral uHeight)+ (safeFromIntegral uDepth)+ (toConstantUF uploadFormat)+ (toConstantST specificationType)+ (intPtrToPtr $+ fromIntegral bufferOffset)++uploadCube :: GLenum -> GLenum -> GLuint -> Uploading -> IO ()+uploadCube target binding tex (Uploading {..}) =+ withBinding target binding tex $+ glTexSubImage2D (toConstantCS cubeSide)+ (safeFromIntegral toMipmapLevel)+ (safeFromIntegral xOffset)+ (safeFromIntegral yOffset)+ (safeFromIntegral uWidth)+ (safeFromIntegral uHeight)+ (toConstantUF uploadFormat)+ (toConstantST specificationType)+ (intPtrToPtr $+ fromIntegral bufferOffset)++isValidMipmap :: Int -> Int -> Bool+isValidMipmap w level+ | w <= 0 = False+ | level < 0 = False+ | level > floor (logBase (2 :: Double) (fromIntegral w)) + 1 = False+ | otherwise = True++-- | Returns the maximal number of mipmap levels when given a side length.+maxMipmapLevels :: Int -> Int+maxMipmapLevels width+ | width <= 0 = 0+ | otherwise = floor (logBase (2 :: Double) (fromIntegral width)) + 1++class TexParam a where+ tpEnum :: a -> GLenum+ tpToConstant :: a -> GLenum+ tpFromConstant :: GLenum -> a++data MinFilter =+ MiNearest+ | MiLinear+ | MiNearestMipmapNearest+ | MiLinearMipmapNearest+ | MiNearestMipmapLinear+ | MiLinearMipmapLinear+ deriving ( Eq, Ord, Show, Read, Typeable )++data MagFilter =+ MaNearest+ | MaLinear+ deriving ( Eq, Ord, Show, Read, Typeable )++data Wrapping =+ Clamp+ | Repeat+ deriving ( Eq, Ord, Show, Read, Typeable )++-- | Texture comparison modes.+--+-- See @ glTexParameteri @ documentation in OpenGL.+data CompareMode+ = NoCompare+ | CompareRefToTexture+ deriving ( Eq, Ord, Show, Read, Typeable )++toConstantC :: CompareMode -> GLenum+toConstantC NoCompare = gl_NONE+toConstantC CompareRefToTexture = gl_COMPARE_REF_TO_TEXTURE++toConstantW :: Wrapping -> GLenum+toConstantW Clamp = gl_CLAMP_TO_EDGE+toConstantW Repeat = gl_REPEAT++instance TexParam MinFilter where+ tpEnum _ = gl_TEXTURE_MIN_FILTER+ tpToConstant MiNearest = gl_NEAREST+ tpToConstant MiLinear = gl_LINEAR+ tpToConstant MiNearestMipmapNearest = gl_NEAREST_MIPMAP_NEAREST+ tpToConstant MiLinearMipmapNearest = gl_LINEAR_MIPMAP_NEAREST+ tpToConstant MiNearestMipmapLinear = gl_NEAREST_MIPMAP_LINEAR+ tpToConstant MiLinearMipmapLinear = gl_LINEAR_MIPMAP_LINEAR+ tpFromConstant c+ | c == gl_NEAREST = MiNearest+ | c == gl_LINEAR = MiLinear+ | c == gl_NEAREST_MIPMAP_NEAREST = MiNearestMipmapNearest+ | c == gl_LINEAR_MIPMAP_NEAREST = MiLinearMipmapNearest+ | c == gl_NEAREST_MIPMAP_LINEAR = MiNearestMipmapLinear+ | c == gl_LINEAR_MIPMAP_LINEAR = MiLinearMipmapLinear+ | otherwise = error "MinFilter: unexpected filtering value."++instance TexParam MagFilter where+ tpEnum _ = gl_TEXTURE_MAG_FILTER+ tpToConstant MaNearest = gl_NEAREST+ tpToConstant MaLinear = gl_LINEAR++ tpFromConstant c+ | c == gl_NEAREST = MaNearest+ | c == gl_LINEAR = MaLinear+ | otherwise = error "MagFilter: unexpected filtering value."++setMinFilter :: MinFilter -> Texture -> IO ()+setMinFilter = setTexParam++setMagFilter :: MagFilter -> Texture -> IO ()+setMagFilter = setTexParam++getMinFilter :: Texture -> IO MinFilter+getMinFilter = getTexParam++getMagFilter :: Texture -> IO MagFilter+getMagFilter = getTexParam++setTexParam :: TexParam a => a -> Texture -> IO ()+setTexParam param tex = withBindingByTopology tex $ \target ->+ glTexParameteri target (tpEnum param) (fromIntegral $ tpToConstant param)++getTexParam :: forall a. TexParam a => Texture -> IO a+getTexParam tex = withBindingByTopology tex $ \target ->+ alloca $ \result_ptr -> do+ glGetTexParameteriv target (tpEnum (undefined :: a)) result_ptr+ tpFromConstant . fromIntegral <$> peek result_ptr++setWrapping :: Wrapping -> Texture -> IO ()+setWrapping wrapping tex = withBindingByTopology tex $ \target -> do+ glTexParameteri target gl_TEXTURE_WRAP_S+ (fromIntegral $ toConstantW wrapping)+ glTexParameteri target gl_TEXTURE_WRAP_T+ (fromIntegral $ toConstantW wrapping)+ glTexParameteri target gl_TEXTURE_WRAP_R+ (fromIntegral $ toConstantW wrapping)++setCompareMode :: CompareMode -> Texture -> IO ()+setCompareMode cmp_mode tex = withBindingByTopology tex $ \target ->+ glTexParameteri target gl_TEXTURE_COMPARE_MODE+ (fromIntegral $ toConstantC cmp_mode)++getCompareMode :: Texture -> IO CompareMode+getCompareMode tex = withBindingByTopology tex $ \target ->+ alloca $ \result_ptr -> do+ glGetTexParameteriv target gl_TEXTURE_COMPARE_MODE result_ptr+ result <- fromIntegral <$> peek result_ptr+ return $ if+ | result == gl_NONE -> NoCompare+ | result == gl_COMPARE_REF_TO_TEXTURE -> CompareRefToTexture+ | otherwise -> error "getCompareMode: unexpected comparing mode."++getWrapping :: Texture -> IO Wrapping+getWrapping tex = withBindingByTopology tex $ \target ->+ alloca $ \result_ptr -> do+ glGetTexParameteriv target gl_TEXTURE_WRAP_S result_ptr+ result <- fromIntegral <$> peek result_ptr+ return $ if+ | result == gl_CLAMP_TO_EDGE -> Clamp+ | result == gl_REPEAT -> Repeat+ | otherwise -> error "getWrapping: unexpected wrapping mode."++setAnisotropy :: Float -> Texture -> IO ()+setAnisotropy ani tex = withBindingByTopology tex $ \target ->+ glTexParameterf target gl_TEXTURE_MAX_ANISOTROPY_EXT (CFloat ani)++getAnisotropy :: Texture -> IO Float+getAnisotropy tex = withBindingByTopology tex $ \target ->+ alloca $ \ani_ptr -> do+ glGetTexParameterfv target gl_TEXTURE_MAX_ANISOTROPY_EXT ani_ptr+ unwrap <$> peek ani_ptr+ where+ unwrap (CFloat f) = f++{-+nextMipmapLevel :: Int -> Int+nextMipmapLevel 0 = 0+nextMipmapLevel 1 = 1+nextMipmapLevel x = max 1 (x `div` 2)++nthMipmapLevel :: Int -> Int -> Int+nthMipmapLevel x 0 = x+nthMipmapLevel x n = nthMipmapLevel (nextMipmapLevel x) (n-1)+-}+
+ src/Graphics/Caramia/Texture/Internal.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE RecordWildCards, NoImplicitPrelude, LambdaCase #-}+{-# LANGUAGE DeriveDataTypeable #-}++module Graphics.Caramia.Texture.Internal where++import Graphics.Caramia.Prelude++import Graphics.Caramia.Resource+import Graphics.Caramia.Internal.OpenGLCApi+import qualified Graphics.Caramia.Buffer.Internal as Buf+import Graphics.Caramia.ImageFormats+import System.IO.Unsafe+import Control.Exception++data Texture = Texture+ { resource :: !(Resource Texture_)+ , ordIndex :: !Int+ , viewSpecification :: !TextureSpecification }+ deriving ( Typeable )++newtype Texture_ = Texture_ GLuint++-- | The type of a texture unit.+--+-- The minimum valid value is 0 and maximum is implementation dependant but+-- in OpenGL at least 48 units will work at the same time in shaders.+type TextureUnit = Int++ordIndices :: IORef Int+ordIndices = unsafePerformIO $ newIORef 0+{-# NOINLINE ordIndices #-}++instance Eq Texture where+ tex1 == tex2 = resource tex1 == resource tex2++instance Ord Texture where+ tex1 `compare` tex2 = ordIndex tex1 `compare` ordIndex tex2++-- | Specification on what the texture should be like.+--+-- Use `textureSpecification` and set at least `topology` and `imageFormat`.+-- Future minor versions remain compatible if you use `textureSpecification`+-- instead of the constructor directly.+data TextureSpecification = TextureSpecification+ { topology :: Topology+ , imageFormat :: ImageFormat+ , mipmapLevels :: Int -- ^ How many mipmap levels including the base+ -- level? Must be at least 1.+ --+ -- Ignored and not evaluated for multisampling+ -- textures.+ }+ deriving ( Eq, Typeable )++-- | Specifies a topology of a texture.+data Topology =+ Tex1D { width1D :: !Int }+ | Tex2D { width2D :: !Int+ , height2D :: !Int }+ | Tex3D { width3D :: !Int+ , height3D :: !Int+ , depth3D :: !Int }+ | Tex1DArray+ { width1DArray :: !Int+ , layers1D :: !Int }+ | Tex2DArray+ { width2DArray :: !Int+ , height2DArray :: !Int+ , layers2D :: !Int }+ | Tex2DMultisample+ { width2DMS :: !Int+ , height2DMS :: !Int+ , samples2DMS :: !Int+ , fixedSampleLocations2DMS :: !Bool }+ | Tex2DMultisampleArray+ { width2DMSArray :: !Int+ , height2DMSArray :: !Int+ , layers2DMS :: !Int+ , samples2DMSArray :: !Int+ , fixedSampleLocations2DMSArray :: !Bool }+ | TexCube { widthCube :: Int }+ | TexBuffer { texBuffer :: !Buf.Buffer }+ -- ^ Buffer textures, see+ -- <https://www.opengl.org/wiki/Buffer_Texture>+ deriving ( Eq, Typeable )++withBinding :: GLenum -> GLenum -> GLuint -> IO a -> IO a+withBinding tex tex_binding tex_name action = do+ old <- gi tex_binding+ finally+ (glBindTexture tex tex_name *>+ action)+ (glBindTexture tex old)++getTopologyBindPoints :: Topology -> (GLenum, GLenum)+getTopologyBindPoints = \case+ Tex1D {..} -> (gl_TEXTURE_1D, gl_TEXTURE_BINDING_1D)+ Tex2D {..} -> (gl_TEXTURE_2D, gl_TEXTURE_BINDING_2D)+ Tex3D {..} -> (gl_TEXTURE_3D, gl_TEXTURE_BINDING_3D)+ Tex1DArray {..} -> (gl_TEXTURE_1D_ARRAY, gl_TEXTURE_BINDING_1D_ARRAY)+ Tex2DArray {..} -> (gl_TEXTURE_2D_ARRAY, gl_TEXTURE_BINDING_2D_ARRAY)+ Tex2DMultisample {..} ->+ (gl_TEXTURE_2D_MULTISAMPLE+ ,gl_TEXTURE_BINDING_2D_MULTISAMPLE)+ Tex2DMultisampleArray {..} ->+ (gl_TEXTURE_2D_MULTISAMPLE_ARRAY+ ,gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY)+ TexCube {..} ->+ (gl_TEXTURE_CUBE_MAP+ ,gl_TEXTURE_BINDING_CUBE_MAP)+ TexBuffer {} ->+ (gl_TEXTURE_BUFFER+ ,gl_TEXTURE_BINDING_BUFFER)++withBindingByTopology :: Texture -> (GLenum -> IO a) -> IO a+withBindingByTopology tex action =+ withResource (resource tex) $ \(Texture_ name) ->+ let (bind_target, bind_query) = getTopologyBindPoints topo+ in withBinding bind_target bind_query name $ action bind_target+ where+ topo = topology $ viewSpecification tex++withTextureBinding :: Texture -> TextureUnit -> IO a -> IO a+withTextureBinding tex unit action = do+ old_active <- gi gl_ACTIVE_TEXTURE+ glActiveTexture (gl_TEXTURE0 + fromIntegral unit)+ finally (withBindingByTopology tex $ const action) $+ glActiveTexture old_active+
+ src/Graphics/Caramia/VAO.hs view
@@ -0,0 +1,283 @@+-- | Vertex array objects, or VAOs as we abbreviate them.+--+-- These are used to specify how data in a `Caramia.Buffer.Buffer` is made+-- available in a shader program.+--+-- <https://www.opengl.org/wiki/Vertex_Array_Object>+--++module Graphics.Caramia.VAO+ ( -- * Creation+ newVAO+ , VAO()+ -- * Sourcing+ , sourceVertexData+ , Sourcing(..)+ , defaultSourcing+ , defaultSourcingType+ -- * Sourceable types+ , SourceableType(..)+ , SourceType(..)+ , sourceTypeSize )+ where++import Graphics.Caramia.Prelude++import Graphics.Caramia.VAO.Internal+import Graphics.Caramia.Resource+import qualified Graphics.Caramia.Buffer.Internal as Buf+import Graphics.Caramia.Internal.OpenGLCApi+import Control.Exception++-- | Creates a vertex array object.+--+-- Initially, the vertex array object makes no data available to a shader+-- program.+newVAO :: IO VAO+newVAO = mask_ $ do+ res <- newResource create+ (\(VAO_ vao) -> mglDeleteVertexArray vao)+ (return ())+ ref <- newIORef []+ return VAO { resource = res+ , boundBuffers = ref }+ where+ create = VAO_ <$> mglGenVertexArray++-- | Types allowed for sourcing.+--+-- These are mostly Haskell types except for `SHalfFloat` which has no Haskell+-- equivalent.+data SourceType =+ SWord8+ | SWord16+ | SWord32+ | SInt8+ | SInt16+ | SInt32+ | SHalfFloat -- ^ 16-bit floating point value.+ | SFloat+ | SDouble+ deriving ( Eq, Ord, Show, Read )++-- | This returns the size of a `SourceType`, in bytes.+sourceTypeSize :: SourceType -> Int+sourceTypeSize SWord8 = 1+sourceTypeSize SWord16 = 2+sourceTypeSize SWord32 = 4+sourceTypeSize SInt8 = 1+sourceTypeSize SInt16 = 2+sourceTypeSize SInt32 = 4+sourceTypeSize SHalfFloat = 2+sourceTypeSize SFloat = 4+sourceTypeSize SDouble = 8++isIntegerType :: SourceType -> Bool+isIntegerType SWord8 = True+isIntegerType SWord16 = True+isIntegerType SWord32 = True+isIntegerType SInt8 = True+isIntegerType SInt16 = True+isIntegerType SInt32 = True+isIntegerType SHalfFloat = False+isIntegerType SFloat = False+isIntegerType SDouble = False++toConstant :: SourceType -> GLenum+toConstant SWord8 = gl_UNSIGNED_BYTE+toConstant SWord16 = gl_UNSIGNED_SHORT+toConstant SWord32 = gl_UNSIGNED_INT+toConstant SInt8 = gl_BYTE+toConstant SInt16 = gl_SHORT+toConstant SInt32 = gl_INT+toConstant SHalfFloat = gl_HALF_FLOAT+toConstant SFloat = gl_FLOAT+toConstant SDouble = gl_DOUBLE++-- | Class of types that are valid for sourcing data.+--+-- This is a convenience class to turn Haskell types to `SourceType`.+class SourceableType a where+ -- ^ Reify the type to a compatible `SourceType`.+ reifyType :: a -> SourceType++instance SourceableType Word8 where+ reifyType _ = SWord8++instance SourceableType Word16 where+ reifyType _ = SWord16++instance SourceableType Word32 where+ reifyType _ = SWord32++instance SourceableType Int8 where+ reifyType _ = SInt8++instance SourceableType Int16 where+ reifyType _ = SInt16++instance SourceableType Int32 where+ reifyType _ = SInt32++instance SourceableType Float where+ reifyType _ = SFloat++instance SourceableType Double where+ reifyType _ = SDouble++-- | Specifies how to source data.+--+-- For forward compatibility, you might want to use `defaultSourcing` or+-- `defaultSourcingType` and then set the fields that are of interest to you.+data Sourcing = Sourcing+ { offset :: Int+ -- ^ Offset, in bytes, at which point from buffer to start sourcing.+ , attributeIndex :: Int+ -- ^ Which attribute index in a shader program to source this data. See+ -- `Caramia.Shader` on attributes.+ , components :: Int+ -- ^ Number of components in one piece of data (that is, per vertex).+ -- This must be an integer between 1 and 4.+ , stride :: Int+ -- ^ How many bytes there are between pieces of data. Because of OpenGL+ -- inconsistencies behind the scenes, 0 means the data is tightly packed,+ -- that is, @ stride = components * sizeOf sourceType @+ , normalize :: Bool+ -- ^ This only applies when an integer type is used in `sourceType` and+ -- `integerMapping` is false. It determines whether integer values should+ -- be normalized.+ --+ -- Normalization maps the integer value to [-1..1] or [0..1] range. For+ -- example, if you use `Word16` as the type parameter, then 0 is mapped to+ -- 0.0 and 65535 is mapped to 1.0. Signed types (for example, `Int16`) are+ -- mapped to [-1..1] instead so for `Int16` 32767 is mapped to 1 and -32768+ -- is mapped to -1.+ --+ -- This value is ignored and unevaluated for types that are one of the+ -- floating point types.+ , integerMapping :: Bool+ -- ^ Don't convert integers to floats in any way. Normally integers are+ -- converted to floating point. If this is set, then `normalize` is ignored+ -- and not evalutated.+ , instancingDivisor :: Int+ -- ^ When doing instanced rendering (`Caramia.Render.numInstances` > 1),+ -- this value tells how many instances must be rendered before the+ -- attribute from this source advances.+ --+ -- If zero (the default) then the attribute is advanced after every vertex.+ --+ -- You can look up @ glVertexAttribDivisor @ from OpenGL to find more+ -- information about this.+ , sourceType :: SourceType+ -- ^ The data type of values in the buffer. It tells the type of a single+ -- component.+ }++-- | The default sourcing.+--+-- Offset and stride are set to 0.+--+-- At the very least you must set `components` and `attributeIndex`.+--+-- You must also set `normalize`, `integerMapping` and `sourceType` in a+-- consistent way. See `Sourcing`.+defaultSourcing :: Sourcing+defaultSourcing = Sourcing+ { offset = 0+ , components =+ error "defaultSourcing: number of components is not set."+ , stride = 0+ , instancingDivisor = 0+ , attributeIndex =+ error "defaultSourcing: attribute index is not set."+ , integerMapping =+ error "defaultSourcing: whether to do integer mapping is not set."+ , normalize =+ error "defaultSourcing: normalize is not set for an integer type."+ , sourceType =+ error "defaultSourcing: source type is not set." }++-- | Same as `defaultSourcing` but sets `sourceType` according to a Haskell+-- type.+defaultSourcingType :: SourceableType a+ => a -- ^ Used to pass the type; not evaluated.+ -> Sourcing+defaultSourcingType x =+ defaultSourcing { sourceType = reifyType x }++-- | Specifies that some data from a buffer should be sourced for each vertex.+--+-- The vertex array object retains a reference to the buffer which means it+-- will not be garbage collected as long as the VAO remains active.+--+-- Consequences are undefined if your `Sourcing` does not make sense. There is+-- some error checking but it can only detect obviously invalid values in the+-- sourcing.+sourceVertexData :: Buf.Buffer -- ^ From which buffer to source the data.+ -> Sourcing -- ^ Specifies how the sourcing is done.+ -> VAO+ -> IO ()+sourceVertexData buffer sourcing vao = mask_ $+ withResource (resource vao) $ \(VAO_ name) ->+ withResource (Buf.resource buffer) $ \(Buf.Buffer_ bufname) -> do+ errorChecking++ if isIntegerType stype && integerMapping sourcing+ then doIntegerMapping name bufname+ else doOrdinaryMapping name bufname++ mglVertexArrayVertexAttribDivisor+ name+ (safeFromIntegral $ attributeIndex sourcing)+ (safeFromIntegral $ instancingDivisor sourcing)++ atomicModifyIORef' (boundBuffers vao) $ \old ->+ ( addIfNotUnique buffer old, () )+ where+ addIfNotUnique new old =+ maybe (new:old)+ (const old)+ (find (new ==) old)++ stype = sourceType sourcing+ ncomponents = components sourcing++ doIntegerMapping name bufname =+ mglVertexArrayVertexAttribIOffsetAndEnable+ name+ bufname+ (safeFromIntegral $ attributeIndex sourcing)+ (safeFromIntegral ncomponents)+ (toConstant stype)+ (safeFromIntegral $ stride sourcing)+ (safeFromIntegral $ offset sourcing)++ doOrdinaryMapping name bufname =+ mglVertexArrayVertexAttribOffsetAndEnable+ name+ bufname+ (safeFromIntegral $ attributeIndex sourcing)+ (safeFromIntegral ncomponents)+ (toConstant stype)+ (fromIntegral $ if isIntegerType stype && normalize sourcing+ then gl_TRUE+ else gl_FALSE)+ (safeFromIntegral $ stride sourcing)+ (safeFromIntegral $ offset sourcing)++ errorChecking = do+ when (isIntegerType stype) $+ unless (integerMapping sourcing) $+ let x = normalize sourcing+ in x `seq` return ()++ attributeIndex sourcing `seq` return ()+ when (stride sourcing < 0) $+ error "sourceVertexData: stride is negative."+ when (offset sourcing < 0) $+ error "sourceVertexData: offset is negative."+ when (ncomponents < 1 ||+ ncomponents > 4) $ error $+ "sourceVertexData: number of components must be between " <>+ "1 and 4. I was given " <> show ncomponents+
+ src/Graphics/Caramia/VAO/Internal.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE NoImplicitPrelude, ViewPatterns, DeriveDataTypeable #-}++module Graphics.Caramia.VAO.Internal where++import Graphics.Caramia.Prelude++import Graphics.Caramia.Resource+import Graphics.Caramia.Internal.OpenGLCApi+import qualified Graphics.Caramia.Buffer.Internal as Buf++-- | The vertex array object data type.+data VAO = VAO+ { resource :: !(Resource VAO_)+ , boundBuffers :: !(IORef [Buf.Buffer]) }+ deriving ( Typeable )++instance Eq VAO where+ (resource -> res1) == (resource -> res2) = res1 == res2++newtype VAO_ = VAO_ GLuint+