@ JF:
I didn't explain well. The way the lights routine works is that a changed light is made to draw LAST. This means that first the "wrong" lights are rendered, and finally the most up to date light is rendered, overwriting the other lights. Therefore, "last" actually means "draw on top" here. Then, when another light changes its state, it now takes the "king of the hill" spot at the end of the draw order.
This whole trick needs the engine to handle the draw order itself, otherwise it doesn't work. This is why I had to introduce the draw order changes. I recognize it's not perfect, but I've given up any hopes of 100% VP9 compatibility, I don't think it's possible with the new renderer without excessive work put into it at least. I've settled for something which is "good enough" to play most VP9 tables reasonably. It just won't be possible to fix all the small glitches, as when I fix one, most likely another one appears due to the change.
The reason I prioritized the proper drawing of the lights for this patch is that they are important to gameplay. If I don't see what targets are lit, I don't know what to shoot for. If, on the other hand, some flasher renders glitchy, it may be annoying but it doesn't change the game as such. I think the lights work much better in this patch.
In the end, I want to move on to VP10 and provide exciting new features for the community. Endless tweaking of the renderer to support old tables will only get us so far.
I also want to point out that, if we really want to have a dynamic camera in VP10, we do need automatic depth sorting since letting the author do that only works for a fixed point of view.
Finally, as for MB: I improved the depth calculation routine a bit, but still it buys us only 3 out of 4 properly rendering lights on the creature panel (up from 2). I found a simple fix, however: the Ramp3 (the panel itself) should be changed from an Alpha ramp to a Solid one. This lets the engine figure out that the panel isn't transparent and the lights should be drawn on top of it. As far as I see, the panel has no reason to be an alpha ramp anyway, so this doesn't degrade the rendering in any way.
@ gtxjoe:
Black was only transparent in the DX7 renderer. It used color keying for that, which is not supported in DX9.
Windowed fullscreen should actually work reasonably well in the old player (except for ball stretching) if you first set it up in the new one. The old one just lacks the menu option for it.
@ JohnnyDoe:
That's... weird. I can reproduce the bug, but I have no idea why it happens. It also happens only in release builds, not in debug ones... those are the most annoying bugs...
EDIT: Huzzah! I figured it out. All's well now.
Edited by mukuste, 16 February 2014 - 10:05 PM.