If you want a hand with OpenGL stuff some more Stefan, I'd be glad to help. We could set up a time to chat/irc off-list or if you want I could see if I can get your existing stuff to work (just send me the diffs).
I'll publish a patch in the next days, I just want to fix S3TC decompression and perhaps get my hands on Diablo 2.
The problem I have with GL ATM is UnlockRect. The current code in WineD3DSurface::UnlockRect doesn't work with a lot of cards / drivers(radeon, fglrx and mesa software rendering fail). glReadPixels and glWritePixels is horribly slow on radeons, it takes 1-4 secounds for an 800x600 image.
So what I need is an UnlockRect code for render targets that doesn't use glDrawPixels. I have written a code that replaces ReadPixels with copying the render target to a texture and reading back the texture, this works much better. I tried to write an UnlockRect code that loads a temporary texture and Draws a textured quad, but the quad had the solid color of the first pixel.
Thanks for your help :) Stefan