DX7 is slightly slower than GL if unoptimized, optimized they are about the same speed. Being able to draw from a single surface isn't going to speed stuff up too much, as the problem lies in sending single quad to the renderer at one time. Most optimal solution is to keep as much stuff in one texture as possible, and then batch geometry by texture/render state. Without batching, you won't see much improvement, and without having everything in a single surface, batching can't work.
If you want to use single surface now, there is code on this forum on how to do it, and it's very simple. Thank IndiePath for that :) http://www.blitzbasic.com/Community/posts.php?topic=51647&hl=single%20surface
However, without batching geometry you cannot possibly achieve high end results like other games do. I think this is what buffered mode is trying to acomplish, but either way we need custom ways to handle this for optimal results. DrawVertexArray() function, if properly implemented, would solve all this
If you want to use single surface now, there is code on this forum on how to do it, and it's very simple. Thank IndiePath for that :) http://www.blitzbasic.com/Community/posts.php?topic=51647&hl=single%20surface
However, without batching geometry you cannot possibly achieve high end results like other games do. I think this is what buffered mode is trying to acomplish, but either way we need custom ways to handle this for optimal results. DrawVertexArray() function, if properly implemented, would solve all this