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 = arraydatatype.GL_CONSTANT_TO_ARRAY_TYPE[ glType ] function.setPyConverter(pointer_name, arrayhelpers.asArrayType(arrayModuleType)) else: function.setPyConverter(pointer_name, arrayhelpers.AsArrayOfType(pointer_name,"type")) function.setCConverter(pointer_name, converters.getPyArgsName(pointer_name)) if "size" in function.argNames: function.setPyConverter("size") function.setCConverter("size", arrayhelpers.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(arrayhelpers.storePointerType(pointer_name, arrayType)) function.setReturnValues(wrapper.returnPyArgument(pointer_name)) return name,function
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 = arraydatatype.GL_CONSTANT_TO_ARRAY_TYPE[ glType ] function.setPyConverter( pointer_name, arrayhelpers.asArrayType(arrayModuleType) ) else: function.setPyConverter( pointer_name, arrayhelpers.AsArrayOfType(pointer_name,'type') ) function.setCConverter( pointer_name, converters.getPyArgsName( pointer_name ) ) if 'size' in function.argNames: function.setPyConverter( 'size' ) function.setCConverter( 'size', arrayhelpers.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( arrayhelpers.storePointerType( pointer_name, arrayType ) ) function.setReturnValues( wrapper.returnPyArgument( pointer_name ) ) return name,function
for name,function in [ wrapPointerFunction(*args) for args in POINTER_FUNCTION_DATA ]: globals()[name] = function try: del name, function except NameError as err: pass glVertexPointer = wrapper.wrapper(_simple.glVertexPointer).setPyConverter( "pointer", arrayhelpers.AsArrayOfType("pointer", "type"), ).setStoreValues( arrayhelpers.storePointerType("pointer", _simple.GL_VERTEX_ARRAY_POINTER) ).setReturnValues( wrapper.returnPyArgument("pointer") ) glTexCoordPointer = wrapper.wrapper(_simple.glTexCoordPointer).setPyConverter( "pointer", arrayhelpers.AsArrayOfType("pointer", "type"), ).setStoreValues( arrayhelpers.storePointerType("pointer", _simple.GL_TEXTURE_COORD_ARRAY_POINTER) ).setReturnValues( wrapper.returnPyArgument("pointer") ) glNormalPointer = wrapper.wrapper(_simple.glNormalPointer).setPyConverter( "pointer", arrayhelpers.AsArrayOfType("pointer", "type"), ).setStoreValues( arrayhelpers.storePointerType("pointer", _simple.GL_NORMAL_ARRAY_POINTER) ).setReturnValues(
for name, function in [ wrapPointerFunction(*args) for args in POINTER_FUNCTION_DATA ]: globals()[name] = function try: del name, function except NameError as err: pass glVertexPointer = wrapper.wrapper(_simple.glVertexPointer).setPyConverter( 'pointer', arrayhelpers.AsArrayOfType('pointer', 'type'), ).setStoreValues( arrayhelpers.storePointerType( 'pointer', _simple.GL_VERTEX_ARRAY_POINTER)).setReturnValues( wrapper.returnPyArgument('pointer')) glTexCoordPointer = wrapper.wrapper(_simple.glTexCoordPointer).setPyConverter( 'pointer', arrayhelpers.AsArrayOfType('pointer', 'type'), ).setStoreValues( arrayhelpers.storePointerType( 'pointer', _simple.GL_TEXTURE_COORD_ARRAY_POINTER)).setReturnValues( wrapper.returnPyArgument('pointer')) glNormalPointer = wrapper.wrapper(_simple.glNormalPointer).setPyConverter( 'pointer', arrayhelpers.AsArrayOfType('pointer', 'type'), ).setStoreValues( arrayhelpers.storePointerType( 'pointer', _simple.GL_NORMAL_ARRAY_POINTER)).setReturnValues( wrapper.returnPyArgument('pointer'))
for name,function in [ wrapPointerFunction( *args ) for args in POINTER_FUNCTION_DATA ]: globals()[name] = function try: del name, function except NameError as err: pass glVertexPointer = wrapper.wrapper( _simple.glVertexPointer ).setPyConverter( 'pointer', arrayhelpers.AsArrayOfType( 'pointer', 'type' ), ).setStoreValues( arrayhelpers.storePointerType( 'pointer', _simple.GL_VERTEX_ARRAY_POINTER ) ).setReturnValues( wrapper.returnPyArgument( 'pointer' ) ) glTexCoordPointer = wrapper.wrapper( _simple.glTexCoordPointer ).setPyConverter( 'pointer', arrayhelpers.AsArrayOfType( 'pointer', 'type' ), ).setStoreValues( arrayhelpers.storePointerType( 'pointer', _simple.GL_TEXTURE_COORD_ARRAY_POINTER ) ).setReturnValues( wrapper.returnPyArgument( 'pointer' ) ) glNormalPointer = wrapper.wrapper( _simple.glNormalPointer ).setPyConverter( 'pointer', arrayhelpers.AsArrayOfType( 'pointer', 'type' ), ).setStoreValues( arrayhelpers.storePointerType( 'pointer', _simple.GL_NORMAL_ARRAY_POINTER ) ).setReturnValues(