diff options
author | Eric Anholt <[email protected]> | 2005-12-06 10:38:37 +0000 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2005-12-06 10:38:37 +0000 |
commit | d5179613d5302173471a6a910fa9ec235c9ff046 (patch) | |
tree | 2eca8709957427b52d9c7f9af8ad6edcfac2e754 /src/mesa/drivers/dri/savage | |
parent | b4ebb682027e42c1f6525d0f8cee9ccd41e15ca0 (diff) |
Add support for GL_EXT_secondary_color. It looks like using
NEED_SECONDARY_COLOR to turn it off/on was what we wanted -- now results look
correct using seccolor on Savage IX and Savage4.
Diffstat (limited to 'src/mesa/drivers/dri/savage')
-rw-r--r-- | src/mesa/drivers/dri/savage/savage_xmesa.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/savage/savagestate.c | 18 |
2 files changed, 5 insertions, 15 deletions
diff --git a/src/mesa/drivers/dri/savage/savage_xmesa.c b/src/mesa/drivers/dri/savage/savage_xmesa.c index 53415d535b5..4f5201491d8 100644 --- a/src/mesa/drivers/dri/savage/savage_xmesa.c +++ b/src/mesa/drivers/dri/savage/savage_xmesa.c @@ -61,6 +61,7 @@ #define need_GL_ARB_multisample #define need_GL_ARB_texture_compression +#define need_GL_EXT_secondary_color #include "extension_helper.h" #include "xmlpool.h" @@ -136,6 +137,7 @@ static const struct dri_extension card_extensions[] = { "GL_ARB_texture_compression", GL_ARB_texture_compression_functions }, { "GL_EXT_stencil_wrap", NULL }, { "GL_EXT_texture_lod_bias", NULL }, + { "GL_EXT_secondary_color", GL_EXT_secondary_color_functions }, { NULL, NULL } }; diff --git a/src/mesa/drivers/dri/savage/savagestate.c b/src/mesa/drivers/dri/savage/savagestate.c index 1acabcb5f47..44cf2f20d37 100644 --- a/src/mesa/drivers/dri/savage/savagestate.c +++ b/src/mesa/drivers/dri/savage/savagestate.c @@ -866,40 +866,28 @@ static void savageDDColorMask_s3d(GLcontext *ctx, FALLBACK (ctx, SAVAGE_FALLBACK_COLORMASK, !(r && g && b)); } -/* Seperate specular not fully implemented in hardware... Needs - * some interaction with material state? Just punt to software - * in all cases? - * FK: Don't fall back for now. Let's see the failure cases and - * fix them the right way. I don't see how this could be a - * hardware limitation. - */ static void savageUpdateSpecular_s4(GLcontext *ctx) { savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); u_int32_t drawLocalCtrl = imesa->regs.s4.drawLocalCtrl.ui; - if (ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR && - ctx->Light.Enabled) { + if (NEED_SECONDARY_COLOR(ctx)) { imesa->regs.s4.drawLocalCtrl.ni.specShadeEn = GL_TRUE; - /*FALLBACK (ctx, SAVAGE_FALLBACK_SPECULAR, GL_TRUE);*/ } else { imesa->regs.s4.drawLocalCtrl.ni.specShadeEn = GL_FALSE; - /*FALLBACK (ctx, SAVAGE_FALLBACK_SPECULAR, GL_FALSE);*/ } if (drawLocalCtrl != imesa->regs.s4.drawLocalCtrl.ui) imesa->dirty |= SAVAGE_UPLOAD_LOCAL; } + static void savageUpdateSpecular_s3d(GLcontext *ctx) { savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); u_int32_t drawCtrl = imesa->regs.s3d.drawCtrl.ui; - if (ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR && - ctx->Light.Enabled) { + if (NEED_SECONDARY_COLOR(ctx)) { imesa->regs.s3d.drawCtrl.ni.specShadeEn = GL_TRUE; - /*FALLBACK (ctx, SAVAGE_FALLBACK_SPECULAR, GL_TRUE);*/ } else { imesa->regs.s3d.drawCtrl.ni.specShadeEn = GL_FALSE; - /*FALLBACK (ctx, SAVAGE_FALLBACK_SPECULAR, GL_FALSE);*/ } if (drawCtrl != imesa->regs.s3d.drawCtrl.ui) |