1'''OpenGL extension VERSION.GL_3_0 2 3This module customises the behaviour of the 4OpenGL.raw.GL.VERSION.GL_3_0 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_0.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_0 import * 15from OpenGL.raw.GL.VERSION.GL_3_0 import _EXTENSION_NAME 16 17def glInitGl30VERSION(): 18 '''Return boolean indicating whether this extension is available''' 19 from OpenGL import extensions 20 return extensions.hasGLExtension( _EXTENSION_NAME ) 21 22glGetBooleani_v=wrapper.wrapper(glGetBooleani_v).setOutput( 23 'data',size=_glgets._glget_size_mapping,pnameArg='target',orPassIn=True 24) 25glGetIntegeri_v=wrapper.wrapper(glGetIntegeri_v).setOutput( 26 'data',size=_glgets._glget_size_mapping,pnameArg='target',orPassIn=True 27) 28# INPUT glTransformFeedbackVaryings.varyings size not checked against count 29glTransformFeedbackVaryings=wrapper.wrapper(glTransformFeedbackVaryings).setInputArraySize( 30 'varyings', None 31) 32glGetTransformFeedbackVarying=wrapper.wrapper(glGetTransformFeedbackVarying).setOutput( 33 'length',size=(1,),orPassIn=True 34).setOutput( 35 'type',size=(1,),orPassIn=True 36).setOutput( 37 'name',size=lambda x:(x,),pnameArg='bufSize',orPassIn=True 38).setOutput( 39 'size',size=(1,),orPassIn=True 40) 41# INPUT glVertexAttribIPointer.pointer size not checked against 'size,type,stride' 42glVertexAttribIPointer=wrapper.wrapper(glVertexAttribIPointer).setInputArraySize( 43 'pointer', None 44) 45glGetVertexAttribIiv=wrapper.wrapper(glGetVertexAttribIiv).setOutput( 46 'params',size=(1,),orPassIn=True 47) 48glGetVertexAttribIuiv=wrapper.wrapper(glGetVertexAttribIuiv).setOutput( 49 'params',size=(1,),orPassIn=True 50) 51glVertexAttribI1iv=wrapper.wrapper(glVertexAttribI1iv).setInputArraySize( 52 'v', 1 53) 54glVertexAttribI2iv=wrapper.wrapper(glVertexAttribI2iv).setInputArraySize( 55 'v', 2 56) 57glVertexAttribI3iv=wrapper.wrapper(glVertexAttribI3iv).setInputArraySize( 58 'v', 3 59) 60glVertexAttribI4iv=wrapper.wrapper(glVertexAttribI4iv).setInputArraySize( 61 'v', 4 62) 63glVertexAttribI1uiv=wrapper.wrapper(glVertexAttribI1uiv).setInputArraySize( 64 'v', 1 65) 66glVertexAttribI2uiv=wrapper.wrapper(glVertexAttribI2uiv).setInputArraySize( 67 'v', 2 68) 69glVertexAttribI3uiv=wrapper.wrapper(glVertexAttribI3uiv).setInputArraySize( 70 'v', 3 71) 72glVertexAttribI4uiv=wrapper.wrapper(glVertexAttribI4uiv).setInputArraySize( 73 'v', 4 74) 75glVertexAttribI4bv=wrapper.wrapper(glVertexAttribI4bv).setInputArraySize( 76 'v', 4 77) 78glVertexAttribI4sv=wrapper.wrapper(glVertexAttribI4sv).setInputArraySize( 79 'v', 4 80) 81glVertexAttribI4ubv=wrapper.wrapper(glVertexAttribI4ubv).setInputArraySize( 82 'v', 4 83) 84glVertexAttribI4usv=wrapper.wrapper(glVertexAttribI4usv).setInputArraySize( 85 'v', 4 86) 87# OUTPUT glGetUniformuiv.params COMPSIZE(program,location) 88# INPUT glBindFragDataLocation.name size not checked against 'name' 89glBindFragDataLocation=wrapper.wrapper(glBindFragDataLocation).setInputArraySize( 90 'name', None 91) 92# INPUT glGetFragDataLocation.name size not checked against 'name' 93glGetFragDataLocation=wrapper.wrapper(glGetFragDataLocation).setInputArraySize( 94 'name', None 95) 96# INPUT glUniform1uiv.value size not checked against count 97glUniform1uiv=wrapper.wrapper(glUniform1uiv).setInputArraySize( 98 'value', None 99) 100# INPUT glUniform2uiv.value size not checked against None 101glUniform2uiv=wrapper.wrapper(glUniform2uiv).setInputArraySize( 102 'value', None 103) 104# INPUT glUniform3uiv.value size not checked against None 105glUniform3uiv=wrapper.wrapper(glUniform3uiv).setInputArraySize( 106 'value', None 107) 108# INPUT glUniform4uiv.value size not checked against None 109glUniform4uiv=wrapper.wrapper(glUniform4uiv).setInputArraySize( 110 'value', None 111) 112# INPUT glTexParameterIiv.params size not checked against 'pname' 113glTexParameterIiv=wrapper.wrapper(glTexParameterIiv).setInputArraySize( 114 'params', None 115) 116# INPUT glTexParameterIuiv.params size not checked against 'pname' 117glTexParameterIuiv=wrapper.wrapper(glTexParameterIuiv).setInputArraySize( 118 'params', None 119) 120glGetTexParameterIiv=wrapper.wrapper(glGetTexParameterIiv).setOutput( 121 'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True 122) 123glGetTexParameterIuiv=wrapper.wrapper(glGetTexParameterIuiv).setOutput( 124 'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True 125) 126# INPUT glClearBufferiv.value size not checked against 'buffer' 127glClearBufferiv=wrapper.wrapper(glClearBufferiv).setInputArraySize( 128 'value', None 129) 130# INPUT glClearBufferuiv.value size not checked against 'buffer' 131glClearBufferuiv=wrapper.wrapper(glClearBufferuiv).setInputArraySize( 132 'value', None 133) 134# INPUT glClearBufferfv.value size not checked against 'buffer' 135glClearBufferfv=wrapper.wrapper(glClearBufferfv).setInputArraySize( 136 'value', None 137) 138# INPUT glDeleteRenderbuffers.renderbuffers size not checked against n 139glDeleteRenderbuffers=wrapper.wrapper(glDeleteRenderbuffers).setInputArraySize( 140 'renderbuffers', None 141) 142glGenRenderbuffers=wrapper.wrapper(glGenRenderbuffers).setOutput( 143 'renderbuffers',size=lambda x:(x,),pnameArg='n',orPassIn=True 144) 145glGetRenderbufferParameteriv=wrapper.wrapper(glGetRenderbufferParameteriv).setOutput( 146 'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True 147) 148# INPUT glDeleteFramebuffers.framebuffers size not checked against n 149glDeleteFramebuffers=wrapper.wrapper(glDeleteFramebuffers).setInputArraySize( 150 'framebuffers', None 151) 152glGenFramebuffers=wrapper.wrapper(glGenFramebuffers).setOutput( 153 'framebuffers',size=lambda x:(x,),pnameArg='n',orPassIn=True 154) 155glGetFramebufferAttachmentParameteriv=wrapper.wrapper(glGetFramebufferAttachmentParameteriv).setOutput( 156 'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True 157) 158# INPUT glDeleteVertexArrays.arrays size not checked against n 159glDeleteVertexArrays=wrapper.wrapper(glDeleteVertexArrays).setInputArraySize( 160 'arrays', None 161) 162glGenVertexArrays=wrapper.wrapper(glGenVertexArrays).setOutput( 163 'arrays',size=lambda x:(x,),pnameArg='n',orPassIn=True 164) 165### END AUTOGENERATED SECTION 166from ctypes import c_char_p 167glGetStringi.restype = c_char_p 168 169from OpenGL.GL.ARB.vertex_array_object import * 170from OpenGL.GL.ARB.texture_buffer_object import * 171from OpenGL.GL.ARB.framebuffer_object import * 172from OpenGL.GL.ARB.map_buffer_range import * 173 174glGenVertexArrays = wrapper.wrapper(glGenVertexArrays).setOutput( 175 'arrays', lambda n: (n,), 'n', arrayType = arrays.GLuintArray, 176 orPassIn=True, 177) 178