'''Autogenerated by get_gl_extensions script, do not edit!'''
from OpenGL import platform as _p, constants as _cs, arrays
from OpenGL.GL import glget
import ctypes
EXTENSION_NAME = 'GL_ARB_shader_subroutine'
def _f( function ):
    return _p.createFunction( function,_p.GL,'GL_ARB_shader_subroutine',False)
_p.unpack_constants( """GL_ACTIVE_SUBROUTINES 0x8DE5
GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6
GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47
GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48
GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49
GL_MAX_SUBROUTINES 0x8DE7
GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8
GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
GL_COMPATIBLE_SUBROUTINES 0x8E4B""", globals())
@_f
@_p.types(_cs.GLint,_cs.GLuint,_cs.GLenum,arrays.GLcharArray)
def glGetSubroutineUniformLocation( program,shadertype,name ):pass
@_f
@_p.types(_cs.GLuint,_cs.GLuint,_cs.GLenum,arrays.GLcharArray)
def glGetSubroutineIndex( program,shadertype,name ):pass
@_f
@_p.types(None,_cs.GLuint,_cs.GLenum,_cs.GLuint,_cs.GLenum,arrays.GLintArray)
def glGetActiveSubroutineUniformiv( program,shadertype,index,pname,values ):pass
@_f
@_p.types(None,_cs.GLuint,_cs.GLenum,_cs.GLuint,_cs.GLsizei,arrays.GLsizeiArray,arrays.GLcharArray)
def glGetActiveSubroutineUniformName( program,shadertype,index,bufsize,length,name ):pass
@_f
@_p.types(None,_cs.GLuint,_cs.GLenum,_cs.GLuint,_cs.GLsizei,arrays.GLsizeiArray,arrays.GLcharArray)
def glGetActiveSubroutineName( program,shadertype,index,bufsize,length,name ):pass
@_f
@_p.types(None,_cs.GLenum,_cs.GLsizei,arrays.GLuintArray)
def glUniformSubroutinesuiv( shadertype,count,indices ):pass
@_f
@_p.types(None,_cs.GLenum,_cs.GLint,arrays.GLuintArray)
def glGetUniformSubroutineuiv( shadertype,location,params ):pass
@_f
@_p.types(None,_cs.GLuint,_cs.GLenum,_cs.GLenum,arrays.GLintArray)
def glGetProgramStageiv( program,shadertype,pname,values ):pass


def glInitShaderSubroutineARB():
    '''Return boolean indicating whether this extension is available'''
    from OpenGL import extensions
    return extensions.hasGLExtension( EXTENSION_NAME )
