quote:
The point is that the transformations in the worst case are probably faster than locking the buffer and in the best case the hardware will really help
I don''t know about that if you are doing simple 2d with no rotation/scaling. If you are doing software transforms then doesn''t d3d have to lock the buffer anyways? In that case its faster to have your own vertex buffer copy and update coordinates with simple addition instead of matrix multiplies then lock and copy. The big benefit of harware transforms is really that you don''t have to send all the data over the AGP bus to the card -- you just send the matrix and the card does the transform locally. That said, I''d still use D3D for the transforms -- most computers are so fast you will never see the difference in a 2d game, unless you are really rendering an obscene amount of triangles.
Even at 1024x768, with 32x32 sprites and double full coverage, you are only rendering 3072 triangles a frame or at 60 Hz a measly 184,320 triangles a second. Even and old TNT is supposed to be able to do 6 million triangles a second, or 30 times this amount. It is actually the fillrate that will be the issue, because the TNT is going to choke and die on that many texels a second... Anyways, point being the geometry is not going to be your bottle neck in a 2d app as long as you do a reasonably efficient job of implementing it.