1'''OpenGL extension VERSION.GL_3_1
2
3This module customises the behaviour of the
4OpenGL.raw.GL.VERSION.GL_3_1 to provide a more
5Python-friendly API
6
7The official definition of this extension is available here:
8http://www.opengl.org/registry/specs/VERSION/GL_3_1.txt
9'''
10from OpenGL import platform, constant, arrays
11from OpenGL import extensions, wrapper
12import ctypes
13from OpenGL.raw.GL import _types, _glgets
14from OpenGL.raw.GL.VERSION.GL_3_1 import *
15from OpenGL.raw.GL.VERSION.GL_3_1 import _EXTENSION_NAME
16
17def glInitGl31VERSION():
18    '''Return boolean indicating whether this extension is available'''
19    from OpenGL import extensions
20    return extensions.hasGLExtension( _EXTENSION_NAME )
21
22# INPUT glDrawElementsInstanced.indices size not checked against 'count,type'
23glDrawElementsInstanced=wrapper.wrapper(glDrawElementsInstanced).setInputArraySize(
24    'indices', None
25)
26# INPUT glGetUniformIndices.uniformNames size not checked against 'uniformCount'
27glGetUniformIndices=wrapper.wrapper(glGetUniformIndices).setOutput(
28    'uniformIndices',size=_glgets._glget_size_mapping,pnameArg='uniformCount',orPassIn=True
29).setInputArraySize(
30    'uniformNames', None
31)
32# OUTPUT glGetActiveUniformsiv.params COMPSIZE(uniformCount, pname)
33# INPUT glGetActiveUniformsiv.uniformIndices size not checked against uniformCount
34glGetActiveUniformsiv=wrapper.wrapper(glGetActiveUniformsiv).setInputArraySize(
35    'uniformIndices', None
36)
37glGetActiveUniformName=wrapper.wrapper(glGetActiveUniformName).setOutput(
38    'length',size=(1,),orPassIn=True
39).setOutput(
40    'uniformName',size=lambda x:(x,),pnameArg='bufSize',orPassIn=True
41)
42# INPUT glGetUniformBlockIndex.uniformBlockName size not checked against ''
43glGetUniformBlockIndex=wrapper.wrapper(glGetUniformBlockIndex).setInputArraySize(
44    'uniformBlockName', None
45)
46# OUTPUT glGetActiveUniformBlockiv.params COMPSIZE(program, uniformBlockIndex, pname)
47glGetActiveUniformBlockName=wrapper.wrapper(glGetActiveUniformBlockName).setOutput(
48    'length',size=(1,),orPassIn=True
49).setOutput(
50    'uniformBlockName',size=lambda x:(x,),pnameArg='bufSize',orPassIn=True
51)
52glGetIntegeri_v=wrapper.wrapper(glGetIntegeri_v).setOutput(
53    'data',size=_glgets._glget_size_mapping,pnameArg='target',orPassIn=True
54)
55### END AUTOGENERATED SECTION
56