Exemplo n.º 1
0
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
Exemplo n.º 2
0
This module customises the behaviour of the 
OpenGL.raw.GL.ARB.occlusion_query to provide a more 
Python-friendly API
'''
from OpenGL import platform, constants, constant, arrays
from OpenGL import extensions, wrapper
from OpenGL.GL import glget
import ctypes
from OpenGL.raw.GL.ARB.occlusion_query import *
### END AUTOGENERATED SECTION
from OpenGL.GL import glget
from OpenGL import converters
for func in ('glGenQueriesARB','glDeleteQueriesARB'):
	globals()[func] = wrapper.wrapper( 
		globals()[func],
	).setPyConverter('n').setCConverter(
		'n', arrays.AsArrayTypedSize( 'ids', arrays.GLuintArray ),
	).setCConverter(
		'ids', arrays.asArrayType(arrays.GLuintArray),
	).setReturnValues(
		wrapper.returnPyArgument( 'ids' )
	)

for func in (
	'glGetQueryivARB','glGetQueryObjectivARB','glGetQueryObjectuivARB',
):
	globals()[func] = wrapper.wrapper(globals()[func]).setOutput(
		"params", (1,)
	)
del func, glget