It would be more elegant not to require those params - to have two (one for vert+frag, one for v+f+g) shorthand function wrappers in Irrlicht.
This is somewhat easier to work around client-side than the float* int* cast, but still this would be an improvement in the API
