Againg, why copy if the user specified he does not want to? You're making extra copied her. Of course these copies would be made anyway by glTexSubImage2D, but in that case the extra array would only live for a brief period. In this case it is attached to the Texture until it is actually uploaded, and longer if you do not clean it up.