http://bugs.winehq.org/show_bug.cgi?id=28078 --- Comment #16 from Stefan Dösinger <stefandoesinger(a)gmx.at> 2011-08-18 12:55:59 CDT --- I think I see the problem. The app is using D3DTOP_SELECTARG1 as color and alpha op, and D3DTA_SPECULAR as color and alpha arg 1. This means it is feeding the specular alpha directly as input into the alpha blending operation. The problem is that there is no such thing as specular alpha, at least not in opengl. D3D usually puts manual fog coordinates there, but the fragment processing can read the values there as well. So what the app does is murky, but legal. GL_EXT_secondary_color explicitly doesn't provide a glSecondaryColor4 function to provide the secondary color in immediate mode. It also disallows secondary color pointers with 4 components when using vertex arrays, but most GL implementations accept them, and actually do what we want with them. So when a vertex buffer is used this game works by luck. So it's a different issue than I originally thought, but the prescription is the same: With a vertex pipeline replacement shader we could use numbered attributes to pass the specular color and make this behavior work reliably. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.