I found out that using diffuse lighting with a light "in the infinity"
and non local viewer did not work on the lattest mesa 3.1 I have (and
apparently it did not work with any 3.1 version)

I tracked the reason to the fact that  light->VP_inf_norm contained
zeroes when shading should happen.

the field is initialized in light.c in gl_compute_light_positions
but apparently in my case the function was never called

I fixed this in context.c by adding (ctx->NewState & NEW_LIGHTING) ||
to the list of conditions which cause gl_compute_light_positions
to be called. (around line 2222)


I am not certain if my fix is an overkill, so somebody how knows about
this
should check it.

In any case somebody with the CVS access should fix the bug either using
the above mmentioned fix or something better.



                Eero

Reply via email to