On 14 June 2013 22:34, Stefan Dösinger stefan@codeweavers.com wrote:
{float increase = eps;volatile float fogend2 = fogend;do{fogend2 += increase;increase *= 2.0f;}while (fogstart == fogend2);fogend = fogend2;}
Why is this needed? When end == start I'd expect (end - c) / (end - start) to evaluate to +/-INF, and then get clamped to [0, 1], which is pretty much what you'd want. In my (very limited) testing, that's also what actually happens with at least the GLSL backend.