glUniformMatrix4dv doesn't exist on some systems, fixed for now with a matrix copy to float array