Just discovered an annoying regression in the converters for lists/tuples, namely they will core when you have the accelerator module installed. They don't core without the accelerator, but that seems to just be dumb luck. Basically when you pass in a list-of-whatevers to PyOpenGL we have to convert it to something C-friendly, so we want to do this:
final_value = asArray( your_list )
pointer = dataPointer( final_value )
baseFunction( ..., pointer )
but to make that work, you need to store final_value during the call to baseFunction. Which isn't happening with the current code. Worse, the code doesn't, at the point of the from_param call have access to the data-type that's trying to be accessed (it's called from low-level ctypes code)... will need to alter the protocol to support it.
The bug managed to get pretty far along before I noticed it because I never use lists-of-floats for parameters, I always use Numpy or Numeric or ctypes objects. Anyway, will have to fix it ASAP.
Pingbacks are closed.