Hi,
This mail is mainly addressed at Henri and Roderick, but I'll send it here to allow others to read it too.
These patches contain some cleanups of the d3d surface loading code. It's main aim is to put the code that copies the surface between system memory, texture and drawable into a centralized place, make LockRect simpler and pbo creation and surface memory allocation in one place(surface allocation is not completely there yet). It also makes other parts of the code simpler, avoids playing with the surface flags in other places, and it will allow us to centralize the logic that in the case of fbo offscreen rendering the drawable is the same as the texture(This is also not implemented yet).
The patches don't aim at fixing any bugs themselves, and I hardly tested them, so there may be a truckload of regressions. I'm mainly showing them to show the general direction I'm heading into.
I have taken a quick look at it. I think it looks ok (I don't fully understand all changes though but that's because I didn't know the old code that well yet).
What I have been wondering why remove flush_to_framebuffer_texture? In ddraw opengl it is a very useful mode. From what I have seen on modern cards textures seem to outperform drawpixels.
Roderick