OpenGLRaw-1.3.0.0: src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderObjects.hs
{-# 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
-- <http://www.opengl.org/registry/specs/ARB/shader_objects.txt>.
--
--------------------------------------------------------------------------------
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 Foreign.C.Types
import Graphics.Rendering.OpenGL.Raw.Core31.Types
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