Raphael <fenix <at> club-internet.fr> writes:
But we must fix all the RGB v.s. BGR problems
I'll submit a patch for this when I get home. I verified it with Age of Mythology and the latest CVS (well, from a few days ago). There are just a couple of mistakes in d3d8/utils.c (whoops this file is gone now, great!) and wined3d/utils.c that need fixing, although I don't know if my patch covers all cases, it certainly works for RGB888, RGB565, RGB332 (8bpp rgb).
For those intested here is a quick patch against dlls/wined3d/utils.c, I'll submit an "official" one to wine-patches later, in the meantime feedback is appreciated.
--- dlls/wined3d/utils.c.orig 2006-03-01 19:09:08.000000000 +0900 +++ dlls/wined3d/utils.c 2006-03-01 19:09:32.000000000 +0900 @@ -1703,9 +1703,9 @@ case WINED3DFMT_Q8W8V8U8: retVal = GL_RGBA; break; case WINED3DFMT_Q16W16V16U16: retVal = GL_COLOR_INDEX; break; /* color buffer */ - case WINED3DFMT_R3G3B2: retVal = GL_BGR; break; - case WINED3DFMT_R5G6B5: retVal = GL_BGR; break; - case WINED3DFMT_R8G8B8: retVal = GL_BGR; break; + case WINED3DFMT_R3G3B2: retVal = GL_RGB; break; + case WINED3DFMT_R5G6B5: retVal = GL_RGB; break; + case WINED3DFMT_R8G8B8: retVal = GL_RGB; break; case WINED3DFMT_A1R5G5B5: retVal = GL_BGRA; break; case WINED3DFMT_X1R5G5B5: retVal = GL_BGRA; break; case WINED3DFMT_A4R4G4B4: retVal = GL_BGRA; break;
Regards, Aric