'''OpenGL extension ARB.shader_subroutine

Automatically generated by the get_gl_extensions script, do not edit!
'''
from OpenGL import platform, constants, constant, arrays
from OpenGL import extensions
from OpenGL.GL import glget
import ctypes
EXTENSION_NAME = 'GL_ARB_shader_subroutine'
_DEPRECATED = False
GL_ACTIVE_SUBROUTINES = constant.Constant( 'GL_ACTIVE_SUBROUTINES', 0x8DE5 )
GL_ACTIVE_SUBROUTINE_UNIFORMS = constant.Constant( 'GL_ACTIVE_SUBROUTINE_UNIFORMS', 0x8DE6 )
GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = constant.Constant( 'GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS', 0x8E47 )
GL_ACTIVE_SUBROUTINE_MAX_LENGTH = constant.Constant( 'GL_ACTIVE_SUBROUTINE_MAX_LENGTH', 0x8E48 )
GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = constant.Constant( 'GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH', 0x8E49 )
GL_MAX_SUBROUTINES = constant.Constant( 'GL_MAX_SUBROUTINES', 0x8DE7 )
GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = constant.Constant( 'GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS', 0x8DE8 )
GL_NUM_COMPATIBLE_SUBROUTINES = constant.Constant( 'GL_NUM_COMPATIBLE_SUBROUTINES', 0x8E4A )
GL_COMPATIBLE_SUBROUTINES = constant.Constant( 'GL_COMPATIBLE_SUBROUTINES', 0x8E4B )
glGetSubroutineUniformLocation = platform.createExtensionFunction( 
'glGetSubroutineUniformLocation',dll=platform.GL,
extension=EXTENSION_NAME,
resultType=constants.GLint, 
argTypes=(constants.GLuint,constants.GLenum,arrays.GLcharArray,),
doc='glGetSubroutineUniformLocation(GLuint(program), GLenum(shadertype), GLcharArray(name)) -> constants.GLint',
argNames=('program','shadertype','name',),
deprecated=_DEPRECATED,
)

glGetSubroutineIndex = platform.createExtensionFunction( 
'glGetSubroutineIndex',dll=platform.GL,
extension=EXTENSION_NAME,
resultType=constants.GLuint, 
argTypes=(constants.GLuint,constants.GLenum,arrays.GLcharArray,),
doc='glGetSubroutineIndex(GLuint(program), GLenum(shadertype), GLcharArray(name)) -> constants.GLuint',
argNames=('program','shadertype','name',),
deprecated=_DEPRECATED,
)

glGetActiveSubroutineUniformiv = platform.createExtensionFunction( 
'glGetActiveSubroutineUniformiv',dll=platform.GL,
extension=EXTENSION_NAME,
resultType=None, 
argTypes=(constants.GLuint,constants.GLenum,constants.GLuint,constants.GLenum,arrays.GLintArray,),
doc='glGetActiveSubroutineUniformiv(GLuint(program), GLenum(shadertype), GLuint(index), GLenum(pname), GLintArray(values)) -> None',
argNames=('program','shadertype','index','pname','values',),
deprecated=_DEPRECATED,
)

glGetActiveSubroutineUniformName = platform.createExtensionFunction( 
'glGetActiveSubroutineUniformName',dll=platform.GL,
extension=EXTENSION_NAME,
resultType=None, 
argTypes=(constants.GLuint,constants.GLenum,constants.GLuint,constants.GLsizei,arrays.GLsizeiArray,arrays.GLcharArray,),
doc='glGetActiveSubroutineUniformName(GLuint(program), GLenum(shadertype), GLuint(index), GLsizei(bufsize), GLsizeiArray(length), GLcharArray(name)) -> None',
argNames=('program','shadertype','index','bufsize','length','name',),
deprecated=_DEPRECATED,
)

glGetActiveSubroutineName = platform.createExtensionFunction( 
'glGetActiveSubroutineName',dll=platform.GL,
extension=EXTENSION_NAME,
resultType=None, 
argTypes=(constants.GLuint,constants.GLenum,constants.GLuint,constants.GLsizei,arrays.GLsizeiArray,arrays.GLcharArray,),
doc='glGetActiveSubroutineName(GLuint(program), GLenum(shadertype), GLuint(index), GLsizei(bufsize), GLsizeiArray(length), GLcharArray(name)) -> None',
argNames=('program','shadertype','index','bufsize','length','name',),
deprecated=_DEPRECATED,
)

glUniformSubroutinesuiv = platform.createExtensionFunction( 
'glUniformSubroutinesuiv',dll=platform.GL,
extension=EXTENSION_NAME,
resultType=None, 
argTypes=(constants.GLenum,constants.GLsizei,arrays.GLuintArray,),
doc='glUniformSubroutinesuiv(GLenum(shadertype), GLsizei(count), GLuintArray(indices)) -> None',
argNames=('shadertype','count','indices',),
deprecated=_DEPRECATED,
)

glGetUniformSubroutineuiv = platform.createExtensionFunction( 
'glGetUniformSubroutineuiv',dll=platform.GL,
extension=EXTENSION_NAME,
resultType=None, 
argTypes=(constants.GLenum,constants.GLint,arrays.GLuintArray,),
doc='glGetUniformSubroutineuiv(GLenum(shadertype), GLint(location), GLuintArray(params)) -> None',
argNames=('shadertype','location','params',),
deprecated=_DEPRECATED,
)

glGetProgramStageiv = platform.createExtensionFunction( 
'glGetProgramStageiv',dll=platform.GL,
extension=EXTENSION_NAME,
resultType=None, 
argTypes=(constants.GLuint,constants.GLenum,constants.GLenum,arrays.GLintArray,),
doc='glGetProgramStageiv(GLuint(program), GLenum(shadertype), GLenum(pname), GLintArray(values)) -> None',
argNames=('program','shadertype','pname','values',),
deprecated=_DEPRECATED,
)


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