'''OpenGL extension ARB.shading_language_include

This module customises the behaviour of the 
OpenGL.raw.GL.ARB.shading_language_include to provide a more 
Python-friendly API

Overview (from the spec)
	
	This extension introduces a #include GLSL directive to allow reusing
	the same shader text in multiple shaders and defines the semantics
	and syntax of the names allowed in #include directives. It also
	defines API mechanisms to define the named string backing a
	#include.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/shading_language_include.txt
'''
from OpenGL import platform, constant, arrays
from OpenGL import extensions, wrapper
import ctypes
from OpenGL.raw.GL import _types, _glgets
from OpenGL.raw.GL.ARB.shading_language_include import *
from OpenGL.raw.GL.ARB.shading_language_include import _EXTENSION_NAME

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

# INPUT glNamedStringARB.name size not checked against namelen
# INPUT glNamedStringARB.string size not checked against stringlen
glNamedStringARB=wrapper.wrapper(glNamedStringARB).setInputArraySize(
    'name', None
).setInputArraySize(
    'string', None
)
# INPUT glDeleteNamedStringARB.name size not checked against namelen
glDeleteNamedStringARB=wrapper.wrapper(glDeleteNamedStringARB).setInputArraySize(
    'name', None
)
# INPUT glCompileShaderIncludeARB.path size not checked against count
# INPUT glCompileShaderIncludeARB.length size not checked against count
glCompileShaderIncludeARB=wrapper.wrapper(glCompileShaderIncludeARB).setInputArraySize(
    'path', None
).setInputArraySize(
    'length', None
)
# INPUT glIsNamedStringARB.name size not checked against namelen
glIsNamedStringARB=wrapper.wrapper(glIsNamedStringARB).setInputArraySize(
    'name', None
)
# INPUT glGetNamedStringARB.name size not checked against namelen
glGetNamedStringARB=wrapper.wrapper(glGetNamedStringARB).setOutput(
    'stringlen',size=(1,),orPassIn=True
).setOutput(
    'string',size=lambda x:(x,),pnameArg='bufSize',orPassIn=True
).setInputArraySize(
    'name', None
)
# INPUT glGetNamedStringivARB.name size not checked against namelen
glGetNamedStringivARB=wrapper.wrapper(glGetNamedStringivARB).setOutput(
    'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True
).setInputArraySize(
    'name', None
)
### END AUTOGENERATED SECTION