http://bugs.winehq.org/show_bug.cgi?id=14968
--- Comment #11 from chris ahrendt celticht32@aol.com 2008-09-04 11:34:20 ---
Hmm. Does the application use a fixed function texture coordinate specified with D3DECLUSAGE_FLOAT4?
I don't know I can look in my logs and see if I see it... but don't remember off the top of my head at the moment.
It should be simple to support this. Essentially the "int coordsToUse = sd->u.s.texCoords[coordIdx].dwType + 1" is wrong, this needs a better mapping:
decltype: coordsToUse:
D3DDECLTYPE_FLOAT1 1 D3DDECLTYPE_FLOAT2 2 D3DDECLTYPE_FLOAT3 3 D3DDECLTYPE_FLOAT4 4 D3DDECLTYPE_D3DCOLOR 4 D3DDECLTYPE_UBYTE4 4 D3DDECLTYPE_SHORT2 2 D3DDECLTYPE_SHORT4 4 D3DDECLTYPE_UBYTE4N 4 D3DDECLTYPE_SHORT2N 2 D3DDECLTYPE_SHORT4N 4 D3DDECLTYPE_USHORT2N 2 D3DDECLTYPE_USHORT4N 4 D3DDECLTYPE_UDEC3 3 - 3 unsigned decimals D3DDECLTYPE_DEC3N 3 - 3 normalized decimals D3DDECLTYPE_FLOAT16_2 2 D3DDECLTYPE_FLOAT16_4 4
The app. should pass these in to us already in the correct format
Also the function calls below shouldn't be selected based on a switch-case statement, but rather on the declaration itself. q, r, t and s should be read in a different way too. The system used for providing other parameters like diffuse_funcs sounds sane here, although some extra care is needed to keep working without GL_ARB_multitexture support.
ok explain... I am lost here.. like I said earlier I divided it into the gl calls (float, int, short) and the screen went a little bonkers... so any suggestions here would be great =)
Also I strongly recommend writing a test here. Generally, fixed function attributes with non-standard data types are spooky on Windows, so the real problem may be somewhere else.
Is there currently a test case for this written? I think on windows it just ignores the parms to be honest..
Chris