mesa/es: Validate glLightModel pname in Mesa code rather than the ES wrapper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Ian Romanick 2012-07-27 16:13:02 -07:00
parent fb4f2d3425
commit 0fa4ed05cf
3 changed files with 11 additions and 35 deletions

View File

@ -94,20 +94,6 @@
<param name="param" type="GLtype"/>
</vector>
</proto>
<desc name="pname">
<value name="GL_LIGHT_MODEL_AMBIENT"/>
<desc name="params" vector_size="4"/>
</desc>
<desc name="pname">
<value name="GL_LIGHT_MODEL_TWO_SIDE"/>
<desc name="param">
<value name="GL_TRUE"/>
<value name="GL_FALSE"/>
</desc>
</desc>
</template>
<template name="LineWidth">

View File

@ -508,20 +508,6 @@ _es_GetTexParameterxv(GLenum target, GLenum pname, GLfixed *params)
void GL_APIENTRY
_es_LightModelx(GLenum pname, GLfixed param)
{
switch(pname) {
case GL_LIGHT_MODEL_TWO_SIDE:
if (param != GL_TRUE && param != GL_FALSE) {
_mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
"glLightModelx(pname=0x%x)", pname);
return;
}
break;
default:
_mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
"glLightModelx(pname=0x%x)", pname);
return;
}
_mesa_LightModelf(pname, (GLfloat) param);
}
@ -538,11 +524,6 @@ _es_LightModelxv(GLenum pname, const GLfixed *params)
n_params = 4;
break;
case GL_LIGHT_MODEL_TWO_SIDE:
if (params[0] != GL_TRUE && params[0] != GL_FALSE) {
_mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
"glLightModelxv(pname=0x%x)", pname);
return;
}
convert_params_value = false;
n_params = 1;
break;

View File

@ -466,6 +466,8 @@ _mesa_LightModelfv( GLenum pname, const GLfloat *params )
COPY_4V( ctx->Light.Model.Ambient, params );
break;
case GL_LIGHT_MODEL_LOCAL_VIEWER:
if (ctx->API != API_OPENGL)
goto invalid_pname;
newbool = (params[0]!=0.0);
if (ctx->Light.Model.LocalViewer == newbool)
return;
@ -484,6 +486,8 @@ _mesa_LightModelfv( GLenum pname, const GLfloat *params )
ctx->_TriangleCaps &= ~DD_TRI_LIGHT_TWOSIDE;
break;
case GL_LIGHT_MODEL_COLOR_CONTROL:
if (ctx->API != API_OPENGL)
goto invalid_pname;
if (params[0] == (GLfloat) GL_SINGLE_COLOR)
newenum = GL_SINGLE_COLOR;
else if (params[0] == (GLfloat) GL_SEPARATE_SPECULAR_COLOR)
@ -499,12 +503,17 @@ _mesa_LightModelfv( GLenum pname, const GLfloat *params )
ctx->Light.Model.ColorControl = newenum;
break;
default:
_mesa_error( ctx, GL_INVALID_ENUM, "glLightModel(pname=0x%x)", pname );
break;
goto invalid_pname;
}
if (ctx->Driver.LightModelfv)
ctx->Driver.LightModelfv( ctx, pname, params );
return;
invalid_pname:
_mesa_error( ctx, GL_INVALID_ENUM, "glLightModel(pname=0x%x)", pname );
return;
}