----Message d'origine----
De: Stefan Dösinger stefandoesinger@gmx.at A: wine-devel@winehq.org Date: Thu, 24 Nov 2005 10:14:51 +0100 Copie à: Oliver Stieber oliver_stieber@yahoo.co.uk Sujet: WINED3DFMT_R5G6B5 - is it RGB or BGR
Hello, While trying to get Moto Racer 2 running(old D3D1 game), I came across a problem with WINED3DFMT_R5G6B5. The game requests a 16 Bit surface, in RGB order. I translate this to WINED3DFMT_R5G6B5.
In some places, this format is translated to an RGB format, like in utils.c::D3DFmt2GLIntFmt, in an other function it is translated to a BRG format( utils.c::D3DFmt2GLFmt). The BRG format causes a failure in glReadPixels with the radeon driver(and broken textures) and swapped blue and red colors with fglrx. I modified D3DFmt2GLFmt to return RGB, and now everything works.
Is WINED3DFMT_R5G6B5 supposed to be RGB or BRG?
it should be RGB (as naming suppose) as majority of D3D formats . But OpenGL usually prefer use of BGR, so initially i use transformed formats. Note: we must add a check if cg support GL_RGB and/or GL_BGR formats and modify the code to adapt formats
Regards, Raphael
PS: it's not BRG but BGR :)