{-# LANGUAGE ForeignFunctionInterface, CPP #-} -------------------------------------------------------------------------------- -- | -- Module : Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects -- Copyright : (c) Sven Panne 2009 -- License : BSD-style (see the file LICENSE) -- -- Maintainer : sven.panne@aedion.de -- Stability : stable -- Portability : portable -- -- All raw functions and tokens from the ARB_shader_objects extension, see -- . -- -------------------------------------------------------------------------------- module Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects ( -- * Functions glDeleteObject, glGetHandle, glDetachObject, glCreateShaderObject, glShaderSource, glCompileShader, glCreateProgramObject, glAttachObject, glLinkProgram, glUseProgramObject, glValidateProgram, glUniform1f, glUniform2f, glUniform3f, glUniform4f, glUniform1i, glUniform2i, glUniform3i, glUniform4i, glUniform1fv, glUniform2fv, glUniform3fv, glUniform4fv, glUniform1iv, glUniform2iv, glUniform3iv, glUniform4iv, glUniformMatrix2fv, glUniformMatrix3fv, glUniformMatrix4fv, glGetObjectParameterfv, glGetObjectParameteriv, glGetInfoLog, glGetAttachedObjects, glGetUniformLocation, glGetActiveUniform, glGetUniformfv, glGetUniformiv, glGetShaderSource, -- * Tokens gl_PROGRAM_OBJECT, gl_OBJECT_TYPE_ARB, gl_OBJECT_SUBTYPE, gl_OBJECT_DELETE_STATUS, gl_OBJECT_COMPILE_STATUS, gl_OBJECT_LINK_STATUS, gl_OBJECT_VALIDATE_STATUS, gl_OBJECT_INFO_LOG_LENGTH, gl_OBJECT_ATTACHED_OBJECTS, gl_OBJECT_ACTIVE_UNIFORMS, gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH, gl_OBJECT_SHADER_SOURCE_LENGTH, gl_SHADER_OBJECT, gl_FLOAT, gl_FLOAT_VEC2, gl_FLOAT_VEC3, gl_FLOAT_VEC4, gl_INT, gl_INT_VEC2, gl_INT_VEC3, gl_INT_VEC4, gl_BOOL, gl_BOOL_VEC2, gl_BOOL_VEC3, gl_BOOL_VEC4, gl_FLOAT_MAT2, gl_FLOAT_MAT3, gl_FLOAT_MAT4, gl_SAMPLER_1D, gl_SAMPLER_2D, gl_SAMPLER_3D, gl_SAMPLER_CUBE, gl_SAMPLER_1D_SHADOW, gl_SAMPLER_2D_SHADOW, gl_SAMPLER_2D_RECT, gl_SAMPLER_2D_RECT_SHADOW, -- * Types GLhandle ) where import Foreign.Ptr import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal import Graphics.Rendering.OpenGL.Raw.Core32 import Graphics.Rendering.OpenGL.Raw.Extensions #include "HsOpenGLRaw.h" extensionNameString :: String extensionNameString = "GL_ARB_shader_objects" EXTENSION_ENTRY(glDeleteObject,GLhandle -> IO ()) EXTENSION_ENTRY(glGetHandle,GLenum -> IO GLhandle) EXTENSION_ENTRY(glDetachObject,GLhandle -> GLhandle -> IO ()) EXTENSION_ENTRY(glCreateShaderObject,GLenum -> IO GLhandle) EXTENSION_ENTRY(glCreateProgramObject,IO GLhandle) EXTENSION_ENTRY(glAttachObject,GLhandle -> GLhandle -> IO ()) EXTENSION_ENTRY(glUseProgramObject,GLhandle -> IO ()) EXTENSION_ENTRY(glGetObjectParameterfv,GLhandle -> GLenum -> Ptr GLfloat -> IO ()) EXTENSION_ENTRY(glGetObjectParameteriv,GLhandle -> GLenum -> Ptr GLint -> IO ()) EXTENSION_ENTRY(glGetInfoLog,GLhandle -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) EXTENSION_ENTRY(glGetAttachedObjects,GLhandle -> GLsizei -> Ptr GLsizei -> Ptr GLhandle -> IO ()) gl_PROGRAM_OBJECT :: GLenum gl_PROGRAM_OBJECT = 0x8B40 -- | Note: We use the ARB suffix here, because the name clashes with the ARB_sync extension. gl_OBJECT_TYPE_ARB :: GLenum gl_OBJECT_TYPE_ARB = 0x8B4E gl_OBJECT_SUBTYPE :: GLenum gl_OBJECT_SUBTYPE = 0x8B4F gl_OBJECT_DELETE_STATUS :: GLenum gl_OBJECT_DELETE_STATUS = 0x8B80 gl_OBJECT_COMPILE_STATUS :: GLenum gl_OBJECT_COMPILE_STATUS = 0x8B81 gl_OBJECT_LINK_STATUS :: GLenum gl_OBJECT_LINK_STATUS = 0x8B82 gl_OBJECT_VALIDATE_STATUS :: GLenum gl_OBJECT_VALIDATE_STATUS = 0x8B83 gl_OBJECT_INFO_LOG_LENGTH :: GLenum gl_OBJECT_INFO_LOG_LENGTH = 0x8B84 gl_OBJECT_ATTACHED_OBJECTS :: GLenum gl_OBJECT_ATTACHED_OBJECTS = 0x8B85 gl_OBJECT_ACTIVE_UNIFORMS :: GLenum gl_OBJECT_ACTIVE_UNIFORMS = 0x8B86 gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH :: GLenum gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87 gl_OBJECT_SHADER_SOURCE_LENGTH :: GLenum gl_OBJECT_SHADER_SOURCE_LENGTH = 0x8B88 gl_SHADER_OBJECT :: GLenum gl_SHADER_OBJECT = 0x8B48