'''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 )
