Add the GL_LIGHING enable

This commit is contained in:
Stephane Marchesin 2006-11-11 11:25:08 +00:00
parent f82bc9110b
commit 0850289d8c
2 changed files with 14 additions and 3 deletions

View file

@ -98,6 +98,7 @@ typedef struct nouveau_context {
uint32_t clear_value;
/* Light state */
GLboolean lighting_enabled;
uint32_t enabled_lights;
/* The drawing fallbacks */

View file

@ -230,11 +230,21 @@ void nv30Enable(GLcontext *ctx, GLenum cap, GLboolean state)
{
uint32_t mask=0x11<<(2*(cap-GL_LIGHT0));
nmesa->enabled_lights=((nmesa->enabled_lights&mask)|(mask*state));
BEGIN_RING_SIZE(NvSub3D, NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS, 1);
OUT_RING(nmesa->enabled_lights);
if (nmesa->lighting_enabled)
{
BEGIN_RING_SIZE(NvSub3D, NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS, 1);
OUT_RING(nmesa->enabled_lights);
}
break;
}
// case GL_LIGHTING:
case GL_LIGHTING:
nmesa->lighting_enabled=state;
BEGIN_RING_SIZE(NvSub3D, NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS, 1);
if (nmesa->lighting_enabled)
OUT_RING(nmesa->enabled_lights);
else
OUT_RING(0x0);
break;
// case GL_LINE_SMOOTH:
// case GL_LINE_STIPPLE:
// case GL_MAP1_COLOR_4: