mesa: Avoid using the shine table for _tnl_RasterPos
authorMathias Fröhlich <Mathias.Froehlich@gmx.net>
Wed, 29 Feb 2012 17:19:34 +0000 (18:19 +0100)
committerMathias Fröhlich <Mathias.Froehlich@gmx.net>
Wed, 29 Feb 2012 19:37:16 +0000 (20:37 +0100)
Use direct computation of pow for computing the shininess
in _tnl_RasterPos. Since the _tnl_RasterPos function is still
used by plenty drivers that do only need the shine table for
_tnl_RasterPos but do not make use of swtnl computations, this
enables pushing down the shine table computation and validation
into the tnl module, which will happen in a followup change.

Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Mathias Froehlich <Mathias.Froehlich@web.de>
src/mesa/tnl/t_rasterpos.c

index 17611cd216aa55a57eb94ac3c4a70261b1f864ec..38f63b23af1744f367937b0666c0767d88fcabbc 100644 (file)
@@ -214,7 +214,11 @@ shade_rastpos(struct gl_context *ctx,
         n_dot_h = DOT3(normal, h);
 
         if (n_dot_h > 0.0F) {
-           GLfloat spec_coef = _mesa_lookup_shininess(ctx, 0, n_dot_h);
+           GLfloat shine;
+           GLfloat spec_coef;
+
+           shine = ctx->Light.Material.Attrib[MAT_ATTRIB_FRONT_SHININESS][0];
+           spec_coef = powf(n_dot_h, shine);
 
            if (spec_coef > 1.0e-10) {
                if (ctx->Light.Model.ColorControl==GL_SEPARATE_SPECULAR_COLOR) {