Am Mittwoch, 2. Januar 2008 12:44:24 schrieb Stefan Dösinger:
Am Mittwoch, 2. Januar 2008 13:38:57 schrieb Alexander Dorofeyev:
In case of colorkey emulation for a texture, if the application wants to select alpha from diffuse color at stage 0, a fixup to modulate with texture alpha more closely matches what the application wants than fixup to just select alpha from texture.
I tested pop3d and Moto Racer 2. Pop3d still works as expected, but moto racer 2 has some missing geometry. It draws some opaque parts of the scene with color keying on, and a diffuse alpha of 0.0, so the alpha test kicks in and the geometry is missing.
The moto racer 2 demo is available online, e.g. http://downloads.gamezone.com/demos/d1576.htm. Note that the installer refuses to run, unless you set your X server's depth to 16. I also caused a regression in that game when I fixed some bugs with native d3drm.dll, so you need the attached hack. (I didn't have time and energy to write a test to test that, but I think that BRANCHFORWARD tokens with offset 0 are special, and that the existing executebuffer test in d3d.c just points out the special case, but the common case is implemented incorrectly)