Hello, I'm trying to change IWineD3DSurface::UnlockRect for rendertargets to avoid glDrawPixels. Instead, I'd like to load the image from memory into an OpenGL texture, and draw that texture with a textured quad onto the front / back buffer.
The problem I have is that the texture(or better, the resulting image) only has a solid color: The color of the first pixel in the source memory. I've read the texture section of the GL programming guide, but I didn't find a solution. I've attached a patch with my changes.
The reason why I want to make this change is that glDrawPixels and glReadPixels are horribly slow on radeon cards, they take a few secounds for a 1024x768 image. The current code doesn't work for the open source driver at any color depth(mesa software acceleration doesn't work eighter), and it's broken for some color depths with the fglrx driver.