def wrapPointerFunction( name, baseFunction, glType, arrayType,startArgs, defaultSize ): """Wrap the given pointer-setting function""" function= wrapper.wrapper( baseFunction ) if 'ptr' in baseFunction.argNames: pointer_name = 'ptr' else: pointer_name = 'pointer' assert not getattr( function, 'pyConverters', None ), """Reusing wrappers?""" if arrayType: arrayModuleType = arrays.GL_CONSTANT_TO_ARRAY_TYPE[ glType ] function.setPyConverter( pointer_name, arrays.asArrayType(arrayModuleType) ) else: function.setPyConverter( pointer_name, arrays.AsArrayOfType(pointer_name,'type') ) function.setCConverter( pointer_name, converters.getPyArgsName( pointer_name ) ) if 'size' in function.argNames: function.setPyConverter( 'size' ) function.setCConverter( 'size', arrays.arraySizeOfFirstType(arrayModuleType,defaultSize) ) if 'type' in function.argNames: function.setPyConverter( 'type' ) function.setCConverter( 'type', glType ) if 'stride' in function.argNames: function.setPyConverter( 'stride' ) function.setCConverter( 'stride', 0 ) function.setStoreValues( arrays.storePointerType( pointer_name, arrayType ) ) function.setReturnValues( wrapper.returnPyArgument( pointer_name ) ) return name,function
This module customises the behaviour of the OpenGL.raw.GL.EXT.draw_range_elements to provide a more Python-friendly API The official definition of this extension is available here: https://www.opengl.org/registry/specs/EXT/draw_range_elements.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.EXT.draw_range_elements import * from OpenGL.raw.GL.EXT.draw_range_elements import _EXTENSION_NAME def glInitDrawRangeElementsEXT(): """Return boolean indicating whether this extension is available""" from OpenGL import extensions return extensions.hasGLExtension(_EXTENSION_NAME) # INPUT glDrawRangeElementsEXT.indices size not checked against "count,type" glDrawRangeElementsEXT = wrapper.wrapper( glDrawRangeElementsEXT).setInputArraySize("indices", None) # END AUTOGENERATED SECTION glDrawRangeElementsEXT = wrapper.wrapper( glDrawRangeElementsEXT).setPyConverter( "indices", arrays.AsArrayOfType("indices", "type"), ).setReturnValues(wrapper.returnPyArgument("indices"))
return name,function for name,function in [ wrapPointerFunction( *args ) for args in POINTER_FUNCTION_DATA ]: globals()[name] = function try: del name, function except NameError, err: pass glVertexPointer = wrapper.wrapper( simple.glVertexPointer ).setPyConverter( 'pointer', arrays.AsArrayOfType( 'pointer', 'type' ), ).setStoreValues( arrays.storePointerType( 'pointer', simple.GL_VERTEX_ARRAY_POINTER ) ).setReturnValues( wrapper.returnPyArgument( 'pointer' ) ) glTexCoordPointer = wrapper.wrapper( simple.glTexCoordPointer ).setPyConverter( 'pointer', arrays.AsArrayOfType( 'pointer', 'type' ), ).setStoreValues( arrays.storePointerType( 'pointer', simple.GL_TEXTURE_COORD_ARRAY_POINTER ) ).setReturnValues( wrapper.returnPyArgument( 'pointer' ) ) glNormalPointer = wrapper.wrapper( simple.glNormalPointer ).setPyConverter( 'pointer', arrays.AsArrayOfType( 'pointer', 'type' ), ).setStoreValues(
'''OpenGL extension VERSION.GL_1_2 This module customises the behaviour of the OpenGL.raw.GL.VERSION.GL_1_2 to provide a more Python-friendly API The official definition of this extension is available here: http://www.opengl.org/registry/specs/VERSION/GL_1_2.txt ''' from OpenGL import platform, constants, constant, arrays from OpenGL import extensions, wrapper from OpenGL.GL import glget import ctypes from OpenGL.raw.GL.VERSION.GL_1_2 import * ### END AUTOGENERATED SECTION from OpenGL.GL.VERSION.GL_1_2_images import * glDrawRangeElements = wrapper.wrapper( simple.glDrawRangeElements ).setPyConverter( 'indices', arrays.AsArrayOfType( 'indices', 'type' ), ).setReturnValues( wrapper.returnPyArgument( 'indices' ) )