module Graphics.GL.Ext.EXT.SeparateShaderObjects (
gl_EXT_separate_shader_objects
, glActiveProgramEXT
, glActiveShaderProgramEXT
, glBindProgramPipelineEXT
, glCreateShaderProgramEXT
, glCreateShaderProgramvEXT
, glDeleteProgramPipelinesEXT
, glGenProgramPipelinesEXT
, glGetProgramPipelineInfoLogEXT
, glGetProgramPipelineivEXT
, glIsProgramPipelineEXT
, glProgramParameteriEXT
, glProgramUniform1fEXT
, glProgramUniform1fvEXT
, glProgramUniform1iEXT
, glProgramUniform1ivEXT
, glProgramUniform1uiEXT
, glProgramUniform1uivEXT
, glProgramUniform2fEXT
, glProgramUniform2fvEXT
, glProgramUniform2iEXT
, glProgramUniform2ivEXT
, glProgramUniform2uiEXT
, glProgramUniform2uivEXT
, glProgramUniform3fEXT
, glProgramUniform3fvEXT
, glProgramUniform3iEXT
, glProgramUniform3ivEXT
, glProgramUniform3uiEXT
, glProgramUniform3uivEXT
, glProgramUniform4fEXT
, glProgramUniform4fvEXT
, glProgramUniform4iEXT
, glProgramUniform4ivEXT
, glProgramUniform4uiEXT
, glProgramUniform4uivEXT
, glProgramUniformMatrix2fvEXT
, glProgramUniformMatrix2x3fvEXT
, glProgramUniformMatrix2x4fvEXT
, glProgramUniformMatrix3fvEXT
, glProgramUniformMatrix3x2fvEXT
, glProgramUniformMatrix3x4fvEXT
, glProgramUniformMatrix4fvEXT
, glProgramUniformMatrix4x2fvEXT
, glProgramUniformMatrix4x3fvEXT
, glUseProgramStagesEXT
, glUseShaderProgramEXT
, glValidateProgramPipelineEXT
, pattern GL_ACTIVE_PROGRAM_EXT
, pattern GL_ALL_SHADER_BITS_EXT
, pattern GL_FRAGMENT_SHADER_BIT_EXT
, pattern GL_PROGRAM_PIPELINE_BINDING_EXT
, pattern GL_PROGRAM_SEPARABLE_EXT
, pattern GL_VERTEX_SHADER_BIT_EXT
) where
import Control.Monad.IO.Class
import Data.Set
import Foreign.Ptr
import Graphics.GL.Internal.FFI
import Graphics.GL.Internal.Proc
import Graphics.GL.Internal.Shared
import Graphics.GL.Types
import System.IO.Unsafe
gl_EXT_separate_shader_objects :: Bool
gl_EXT_separate_shader_objects = member "GL_EXT_separate_shader_objects" extensions
glActiveProgramEXT :: MonadIO m => GLuint -> m ()
glActiveProgramEXT = ffiuintIOV glActiveProgramEXTFunPtr
glActiveProgramEXTFunPtr :: FunPtr (GLuint -> IO ())
glActiveProgramEXTFunPtr = unsafePerformIO (getProcAddress "glActiveProgramEXT")
glActiveShaderProgramEXT :: MonadIO m => GLuint -> GLuint -> m ()
glActiveShaderProgramEXT = ffiuintuintIOV glActiveShaderProgramEXTFunPtr
glActiveShaderProgramEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
glActiveShaderProgramEXTFunPtr = unsafePerformIO (getProcAddress "glActiveShaderProgramEXT")
glBindProgramPipelineEXT :: MonadIO m => GLuint -> m ()
glBindProgramPipelineEXT = ffiuintIOV glBindProgramPipelineEXTFunPtr
glBindProgramPipelineEXTFunPtr :: FunPtr (GLuint -> IO ())
glBindProgramPipelineEXTFunPtr = unsafePerformIO (getProcAddress "glBindProgramPipelineEXT")
glCreateShaderProgramEXT :: MonadIO m => GLenum -> Ptr GLchar -> m GLuint
glCreateShaderProgramEXT = ffienumPtrcharIOuint glCreateShaderProgramEXTFunPtr
glCreateShaderProgramEXTFunPtr :: FunPtr (GLenum -> Ptr GLchar -> IO GLuint)
glCreateShaderProgramEXTFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramEXT")
glCreateShaderProgramvEXT :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
glCreateShaderProgramvEXT = ffienumsizeiPtrPtrcharIOuint glCreateShaderProgramvEXTFunPtr
glCreateShaderProgramvEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
glCreateShaderProgramvEXTFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramvEXT")
glDeleteProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteProgramPipelinesEXT = ffisizeiPtruintIOV glDeleteProgramPipelinesEXTFunPtr
glDeleteProgramPipelinesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeleteProgramPipelinesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramPipelinesEXT")
glGenProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenProgramPipelinesEXT = ffisizeiPtruintIOV glGenProgramPipelinesEXTFunPtr
glGenProgramPipelinesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenProgramPipelinesEXTFunPtr = unsafePerformIO (getProcAddress "glGenProgramPipelinesEXT")
glGetProgramPipelineInfoLogEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetProgramPipelineInfoLogEXT = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramPipelineInfoLogEXTFunPtr
glGetProgramPipelineInfoLogEXTFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetProgramPipelineInfoLogEXTFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineInfoLogEXT")
glGetProgramPipelineivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetProgramPipelineivEXT = ffiuintenumPtrintIOV glGetProgramPipelineivEXTFunPtr
glGetProgramPipelineivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
glGetProgramPipelineivEXTFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineivEXT")
glIsProgramPipelineEXT :: MonadIO m => GLuint -> m GLboolean
glIsProgramPipelineEXT = ffiuintIOboolean glIsProgramPipelineEXTFunPtr
glIsProgramPipelineEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
glIsProgramPipelineEXTFunPtr = unsafePerformIO (getProcAddress "glIsProgramPipelineEXT")
glUseProgramStagesEXT :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
glUseProgramStagesEXT = ffiuintbitfielduintIOV glUseProgramStagesEXTFunPtr
glUseProgramStagesEXTFunPtr :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
glUseProgramStagesEXTFunPtr = unsafePerformIO (getProcAddress "glUseProgramStagesEXT")
glUseShaderProgramEXT :: MonadIO m => GLenum -> GLuint -> m ()
glUseShaderProgramEXT = ffienumuintIOV glUseShaderProgramEXTFunPtr
glUseShaderProgramEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
glUseShaderProgramEXTFunPtr = unsafePerformIO (getProcAddress "glUseShaderProgramEXT")
glValidateProgramPipelineEXT :: MonadIO m => GLuint -> m ()
glValidateProgramPipelineEXT = ffiuintIOV glValidateProgramPipelineEXTFunPtr
glValidateProgramPipelineEXTFunPtr :: FunPtr (GLuint -> IO ())
glValidateProgramPipelineEXTFunPtr = unsafePerformIO (getProcAddress "glValidateProgramPipelineEXT")
pattern GL_ACTIVE_PROGRAM_EXT = 0x8B8D
pattern GL_ALL_SHADER_BITS_EXT = 0xFFFFFFFF
pattern GL_FRAGMENT_SHADER_BIT_EXT = 0x00000002
pattern GL_PROGRAM_PIPELINE_BINDING_EXT = 0x825A
pattern GL_PROGRAM_SEPARABLE_EXT = 0x8258
pattern GL_VERTEX_SHADER_BIT_EXT = 0x00000001