-- This file was automatically generated. {-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-} module Graphics.GL.Raw.Extension.ARB.ShaderObjects ( -- * Extension Support gl_ARB_shader_objects -- * GL_ARB_shader_objects , glAttachObjectARB , glCompileShaderARB , glCreateProgramObjectARB , glCreateShaderObjectARB , glDeleteObjectARB , glDetachObjectARB , glGetActiveUniformARB , glGetAttachedObjectsARB , glGetHandleARB , glGetInfoLogARB , glGetObjectParameterfvARB , glGetObjectParameterivARB , glGetShaderSourceARB , glGetUniformLocationARB , glGetUniformfvARB , glGetUniformivARB , glLinkProgramARB , glShaderSourceARB , glUniform1fARB , glUniform1fvARB , glUniform1iARB , glUniform1ivARB , glUniform2fARB , glUniform2fvARB , glUniform2iARB , glUniform2ivARB , glUniform3fARB , glUniform3fvARB , glUniform3iARB , glUniform3ivARB , glUniform4fARB , glUniform4fvARB , glUniform4iARB , glUniform4ivARB , glUniformMatrix2fvARB , glUniformMatrix3fvARB , glUniformMatrix4fvARB , glUseProgramObjectARB , glValidateProgramARB , pattern GL_BOOL_ARB , pattern GL_BOOL_VEC2_ARB , pattern GL_BOOL_VEC3_ARB , pattern GL_BOOL_VEC4_ARB , pattern GL_FLOAT_MAT2_ARB , pattern GL_FLOAT_MAT3_ARB , pattern GL_FLOAT_MAT4_ARB , pattern GL_FLOAT_VEC2_ARB , pattern GL_FLOAT_VEC3_ARB , pattern GL_FLOAT_VEC4_ARB , pattern GL_INT_VEC2_ARB , pattern GL_INT_VEC3_ARB , pattern GL_INT_VEC4_ARB , pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB , pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB , pattern GL_OBJECT_ATTACHED_OBJECTS_ARB , pattern GL_OBJECT_COMPILE_STATUS_ARB , pattern GL_OBJECT_DELETE_STATUS_ARB , pattern GL_OBJECT_INFO_LOG_LENGTH_ARB , pattern GL_OBJECT_LINK_STATUS_ARB , pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB , pattern GL_OBJECT_SUBTYPE_ARB , pattern GL_OBJECT_TYPE_ARB , pattern GL_OBJECT_VALIDATE_STATUS_ARB , pattern GL_PROGRAM_OBJECT_ARB , pattern GL_SAMPLER_1D_ARB , pattern GL_SAMPLER_1D_SHADOW_ARB , pattern GL_SAMPLER_2D_ARB , pattern GL_SAMPLER_2D_RECT_ARB , pattern GL_SAMPLER_2D_RECT_SHADOW_ARB , pattern GL_SAMPLER_2D_SHADOW_ARB , pattern GL_SAMPLER_3D_ARB , pattern GL_SAMPLER_CUBE_ARB , pattern GL_SHADER_OBJECT_ARB ) where import Control.Monad.IO.Class import Data.Set import Foreign.Ptr import Graphics.GL.Raw.Internal.FFI import Graphics.GL.Raw.Internal.Proc import Graphics.GL.Raw.Internal.Shared import Graphics.GL.Raw.Types import System.IO.Unsafe gl_ARB_shader_objects :: Bool gl_ARB_shader_objects = member "GL_ARB_shader_objects" extensions glAttachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m () glAttachObjectARB = ffihandleARBhandleARBIOV glAttachObjectARBFunPtr glAttachObjectARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> IO ()) glAttachObjectARBFunPtr = unsafePerformIO (getProcAddress "glAttachObjectARB") {-# NOINLINE glAttachObjectARBFunPtr #-} glCompileShaderARB :: MonadIO m => GLhandleARB -> m () glCompileShaderARB = ffihandleARBIOV glCompileShaderARBFunPtr glCompileShaderARBFunPtr :: FunPtr (GLhandleARB -> IO ()) glCompileShaderARBFunPtr = unsafePerformIO (getProcAddress "glCompileShaderARB") {-# NOINLINE glCompileShaderARBFunPtr #-} glCreateProgramObjectARB :: MonadIO m => m GLhandleARB glCreateProgramObjectARB = ffiIOhandleARB glCreateProgramObjectARBFunPtr glCreateProgramObjectARBFunPtr :: FunPtr (IO GLhandleARB) glCreateProgramObjectARBFunPtr = unsafePerformIO (getProcAddress "glCreateProgramObjectARB") {-# NOINLINE glCreateProgramObjectARBFunPtr #-} glCreateShaderObjectARB :: MonadIO m => GLenum -> m GLhandleARB glCreateShaderObjectARB = ffienumIOhandleARB glCreateShaderObjectARBFunPtr glCreateShaderObjectARBFunPtr :: FunPtr (GLenum -> IO GLhandleARB) glCreateShaderObjectARBFunPtr = unsafePerformIO (getProcAddress "glCreateShaderObjectARB") {-# NOINLINE glCreateShaderObjectARBFunPtr #-} glDeleteObjectARB :: MonadIO m => GLhandleARB -> m () glDeleteObjectARB = ffihandleARBIOV glDeleteObjectARBFunPtr glDeleteObjectARBFunPtr :: FunPtr (GLhandleARB -> IO ()) glDeleteObjectARBFunPtr = unsafePerformIO (getProcAddress "glDeleteObjectARB") {-# NOINLINE glDeleteObjectARBFunPtr #-} glDetachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m () glDetachObjectARB = ffihandleARBhandleARBIOV glDetachObjectARBFunPtr glDetachObjectARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> IO ()) glDetachObjectARBFunPtr = unsafePerformIO (getProcAddress "glDetachObjectARB") {-# NOINLINE glDetachObjectARBFunPtr #-} glGetActiveUniformARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m () glGetActiveUniformARB = ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV glGetActiveUniformARBFunPtr glGetActiveUniformARBFunPtr :: FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ()) glGetActiveUniformARBFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformARB") {-# NOINLINE glGetActiveUniformARBFunPtr #-} glGetAttachedObjectsARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m () glGetAttachedObjectsARB = ffihandleARBsizeiPtrsizeiPtrhandleARBIOV glGetAttachedObjectsARBFunPtr glGetAttachedObjectsARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ()) glGetAttachedObjectsARBFunPtr = unsafePerformIO (getProcAddress "glGetAttachedObjectsARB") {-# NOINLINE glGetAttachedObjectsARBFunPtr #-} glGetHandleARB :: MonadIO m => GLenum -> m GLhandleARB glGetHandleARB = ffienumIOhandleARB glGetHandleARBFunPtr glGetHandleARBFunPtr :: FunPtr (GLenum -> IO GLhandleARB) glGetHandleARBFunPtr = unsafePerformIO (getProcAddress "glGetHandleARB") {-# NOINLINE glGetHandleARBFunPtr #-} glGetInfoLogARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m () glGetInfoLogARB = ffihandleARBsizeiPtrsizeiPtrcharARBIOV glGetInfoLogARBFunPtr glGetInfoLogARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()) glGetInfoLogARBFunPtr = unsafePerformIO (getProcAddress "glGetInfoLogARB") {-# NOINLINE glGetInfoLogARBFunPtr #-} glGetObjectParameterfvARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLfloat -> m () glGetObjectParameterfvARB = ffihandleARBenumPtrfloatIOV glGetObjectParameterfvARBFunPtr glGetObjectParameterfvARBFunPtr :: FunPtr (GLhandleARB -> GLenum -> Ptr GLfloat -> IO ()) glGetObjectParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetObjectParameterfvARB") {-# NOINLINE glGetObjectParameterfvARBFunPtr #-} glGetObjectParameterivARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLint -> m () glGetObjectParameterivARB = ffihandleARBenumPtrintIOV glGetObjectParameterivARBFunPtr glGetObjectParameterivARBFunPtr :: FunPtr (GLhandleARB -> GLenum -> Ptr GLint -> IO ()) glGetObjectParameterivARBFunPtr = unsafePerformIO (getProcAddress "glGetObjectParameterivARB") {-# NOINLINE glGetObjectParameterivARBFunPtr #-} glGetShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m () glGetShaderSourceARB = ffihandleARBsizeiPtrsizeiPtrcharARBIOV glGetShaderSourceARBFunPtr glGetShaderSourceARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()) glGetShaderSourceARBFunPtr = unsafePerformIO (getProcAddress "glGetShaderSourceARB") {-# NOINLINE glGetShaderSourceARBFunPtr #-} glGetUniformLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint glGetUniformLocationARB = ffihandleARBPtrcharARBIOint glGetUniformLocationARBFunPtr glGetUniformLocationARBFunPtr :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint) glGetUniformLocationARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformLocationARB") {-# NOINLINE glGetUniformLocationARBFunPtr #-} glGetUniformfvARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLfloat -> m () glGetUniformfvARB = ffihandleARBintPtrfloatIOV glGetUniformfvARBFunPtr glGetUniformfvARBFunPtr :: FunPtr (GLhandleARB -> GLint -> Ptr GLfloat -> IO ()) glGetUniformfvARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformfvARB") {-# NOINLINE glGetUniformfvARBFunPtr #-} glGetUniformivARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLint -> m () glGetUniformivARB = ffihandleARBintPtrintIOV glGetUniformivARBFunPtr glGetUniformivARBFunPtr :: FunPtr (GLhandleARB -> GLint -> Ptr GLint -> IO ()) glGetUniformivARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformivARB") {-# NOINLINE glGetUniformivARBFunPtr #-} glLinkProgramARB :: MonadIO m => GLhandleARB -> m () glLinkProgramARB = ffihandleARBIOV glLinkProgramARBFunPtr glLinkProgramARBFunPtr :: FunPtr (GLhandleARB -> IO ()) glLinkProgramARBFunPtr = unsafePerformIO (getProcAddress "glLinkProgramARB") {-# NOINLINE glLinkProgramARBFunPtr #-} glShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLcharARB -> Ptr GLint -> m () glShaderSourceARB = ffihandleARBsizeiPtrcharARBPtrintIOV glShaderSourceARBFunPtr glShaderSourceARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLcharARB -> Ptr GLint -> IO ()) glShaderSourceARBFunPtr = unsafePerformIO (getProcAddress "glShaderSourceARB") {-# NOINLINE glShaderSourceARBFunPtr #-} glUniform1fARB :: MonadIO m => GLint -> GLfloat -> m () glUniform1fARB = ffiintfloatIOV glUniform1fARBFunPtr glUniform1fARBFunPtr :: FunPtr (GLint -> GLfloat -> IO ()) glUniform1fARBFunPtr = unsafePerformIO (getProcAddress "glUniform1fARB") {-# NOINLINE glUniform1fARBFunPtr #-} glUniform1fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m () glUniform1fvARB = ffiintsizeiPtrfloatIOV glUniform1fvARBFunPtr glUniform1fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ()) glUniform1fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform1fvARB") {-# NOINLINE glUniform1fvARBFunPtr #-} glUniform1iARB :: MonadIO m => GLint -> GLint -> m () glUniform1iARB = ffiintintIOV glUniform1iARBFunPtr glUniform1iARBFunPtr :: FunPtr (GLint -> GLint -> IO ()) glUniform1iARBFunPtr = unsafePerformIO (getProcAddress "glUniform1iARB") {-# NOINLINE glUniform1iARBFunPtr #-} glUniform1ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m () glUniform1ivARB = ffiintsizeiPtrintIOV glUniform1ivARBFunPtr glUniform1ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ()) glUniform1ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform1ivARB") {-# NOINLINE glUniform1ivARBFunPtr #-} glUniform2fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> m () glUniform2fARB = ffiintfloatfloatIOV glUniform2fARBFunPtr glUniform2fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ()) glUniform2fARBFunPtr = unsafePerformIO (getProcAddress "glUniform2fARB") {-# NOINLINE glUniform2fARBFunPtr #-} glUniform2fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m () glUniform2fvARB = ffiintsizeiPtrfloatIOV glUniform2fvARBFunPtr glUniform2fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ()) glUniform2fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform2fvARB") {-# NOINLINE glUniform2fvARBFunPtr #-} glUniform2iARB :: MonadIO m => GLint -> GLint -> GLint -> m () glUniform2iARB = ffiintintintIOV glUniform2iARBFunPtr glUniform2iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ()) glUniform2iARBFunPtr = unsafePerformIO (getProcAddress "glUniform2iARB") {-# NOINLINE glUniform2iARBFunPtr #-} glUniform2ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m () glUniform2ivARB = ffiintsizeiPtrintIOV glUniform2ivARBFunPtr glUniform2ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ()) glUniform2ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform2ivARB") {-# NOINLINE glUniform2ivARBFunPtr #-} glUniform3fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m () glUniform3fARB = ffiintfloatfloatfloatIOV glUniform3fARBFunPtr glUniform3fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()) glUniform3fARBFunPtr = unsafePerformIO (getProcAddress "glUniform3fARB") {-# NOINLINE glUniform3fARBFunPtr #-} glUniform3fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m () glUniform3fvARB = ffiintsizeiPtrfloatIOV glUniform3fvARBFunPtr glUniform3fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ()) glUniform3fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform3fvARB") {-# NOINLINE glUniform3fvARBFunPtr #-} glUniform3iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m () glUniform3iARB = ffiintintintintIOV glUniform3iARBFunPtr glUniform3iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ()) glUniform3iARBFunPtr = unsafePerformIO (getProcAddress "glUniform3iARB") {-# NOINLINE glUniform3iARBFunPtr #-} glUniform3ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m () glUniform3ivARB = ffiintsizeiPtrintIOV glUniform3ivARBFunPtr glUniform3ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ()) glUniform3ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform3ivARB") {-# NOINLINE glUniform3ivARBFunPtr #-} glUniform4fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m () glUniform4fARB = ffiintfloatfloatfloatfloatIOV glUniform4fARBFunPtr glUniform4fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) glUniform4fARBFunPtr = unsafePerformIO (getProcAddress "glUniform4fARB") {-# NOINLINE glUniform4fARBFunPtr #-} glUniform4fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m () glUniform4fvARB = ffiintsizeiPtrfloatIOV glUniform4fvARBFunPtr glUniform4fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ()) glUniform4fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform4fvARB") {-# NOINLINE glUniform4fvARBFunPtr #-} glUniform4iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m () glUniform4iARB = ffiintintintintintIOV glUniform4iARBFunPtr glUniform4iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ()) glUniform4iARBFunPtr = unsafePerformIO (getProcAddress "glUniform4iARB") {-# NOINLINE glUniform4iARBFunPtr #-} glUniform4ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m () glUniform4ivARB = ffiintsizeiPtrintIOV glUniform4ivARBFunPtr glUniform4ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ()) glUniform4ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform4ivARB") {-# NOINLINE glUniform4ivARBFunPtr #-} glUniformMatrix2fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m () glUniformMatrix2fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2fvARBFunPtr glUniformMatrix2fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) glUniformMatrix2fvARBFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2fvARB") {-# NOINLINE glUniformMatrix2fvARBFunPtr #-} glUniformMatrix3fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m () glUniformMatrix3fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3fvARBFunPtr glUniformMatrix3fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) glUniformMatrix3fvARBFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3fvARB") {-# NOINLINE glUniformMatrix3fvARBFunPtr #-} glUniformMatrix4fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m () glUniformMatrix4fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4fvARBFunPtr glUniformMatrix4fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) glUniformMatrix4fvARBFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4fvARB") {-# NOINLINE glUniformMatrix4fvARBFunPtr #-} glUseProgramObjectARB :: MonadIO m => GLhandleARB -> m () glUseProgramObjectARB = ffihandleARBIOV glUseProgramObjectARBFunPtr glUseProgramObjectARBFunPtr :: FunPtr (GLhandleARB -> IO ()) glUseProgramObjectARBFunPtr = unsafePerformIO (getProcAddress "glUseProgramObjectARB") {-# NOINLINE glUseProgramObjectARBFunPtr #-} glValidateProgramARB :: MonadIO m => GLhandleARB -> m () glValidateProgramARB = ffihandleARBIOV glValidateProgramARBFunPtr glValidateProgramARBFunPtr :: FunPtr (GLhandleARB -> IO ()) glValidateProgramARBFunPtr = unsafePerformIO (getProcAddress "glValidateProgramARB") {-# NOINLINE glValidateProgramARBFunPtr #-} pattern GL_BOOL_ARB = 0x8B56 pattern GL_BOOL_VEC2_ARB = 0x8B57 pattern GL_BOOL_VEC3_ARB = 0x8B58 pattern GL_BOOL_VEC4_ARB = 0x8B59 pattern GL_INT_VEC2_ARB = 0x8B53 pattern GL_INT_VEC3_ARB = 0x8B54 pattern GL_INT_VEC4_ARB = 0x8B55 pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86 pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87 pattern GL_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85 pattern GL_OBJECT_COMPILE_STATUS_ARB = 0x8B81 pattern GL_OBJECT_DELETE_STATUS_ARB = 0x8B80 pattern GL_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84 pattern GL_OBJECT_LINK_STATUS_ARB = 0x8B82 pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88 pattern GL_OBJECT_SUBTYPE_ARB = 0x8B4F pattern GL_OBJECT_TYPE_ARB = 0x8B4E pattern GL_OBJECT_VALIDATE_STATUS_ARB = 0x8B83 pattern GL_PROGRAM_OBJECT_ARB = 0x8B40 pattern GL_SAMPLER_1D_ARB = 0x8B5D pattern GL_SAMPLER_1D_SHADOW_ARB = 0x8B61 pattern GL_SAMPLER_2D_ARB = 0x8B5E pattern GL_SAMPLER_2D_RECT_ARB = 0x8B63 pattern GL_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64 pattern GL_SAMPLER_2D_SHADOW_ARB = 0x8B62 pattern GL_SAMPLER_3D_ARB = 0x8B5F pattern GL_SAMPLER_CUBE_ARB = 0x8B60 pattern GL_SHADER_OBJECT_ARB = 0x8B48