On Wednesday 16 January 2008 20:31:51 you wrote:
fixme:d3d_surface:flush_to_framebuffer_drawpixels >>>>>>>>>>>>>>>>> GL_INVALID_VALUE (0x501) from glDrawPixels @ surface.c / 1061
You should get see what gets passed to glDrawPixels. According to the opengl man pages GL_INVALID_VALUE can occur if e.g. the dimensions are invalid. If these are indeed invalid, you need to figure out why they are wrong (I see that the pitch is 6400, which could mean a width of 1600 assuming bpp=4)
This is a trace of the variables used to create the glDrawPixels call:
trace:d3d_surface:flush_to_framebuffer_drawpixels right 0, left 0, bottom 0, top 0, mem 0x5db0040, bpp 4, pitch 6400
I assume GL is complaining because the rectangle passed to it has a size of (0,-1).
Adding a simple right>left and bottom>top condition at least resolves this error. However, whether that is correctly emulating D3D behavior, I don't know.