On 15 July 2015 at 12:43, Stefan Dösinger stefandoesinger@gmail.com wrote:
The current code handles flip in the ddraw and d3d9 version by swapping the GL textures, invalidates all other locations (could move around sysmem as well, but didn't bother yet) and unloads the resource to remove the textures from the FBO cache. The same thing is currently done in flip_surface() in surface.c Especially the FBO cache handling is ugly.
I didn't review the entire set, but that's a problem. I think flip_surface() is incredibly ugly, fragile and probably broken in some way. I would very much like it to go away, so I don't think anything that expands its usage is much of an improvement. ddraw_surface7_Flip() doesn't exactly make me happy either, but at least it only swaps complete surfaces and views, instead of depending on all kinds of wined3d internals. Not invalidating basically everything is probably a good thing too.