Thanks, committed. On 02/11/2013 10:42 PM, Tapani Pälli wrote: > From: bma <[email protected]> > > Detect a duplicate Shader type as and error instead of silently allowing > it, restrict to ES2 API. > > v2: Tapani Pälli <[email protected]> > - make the check run time instead of compile time > > Signed-off-by: bma <[email protected]> > Signed-off-by: Tapani Pälli <[email protected]> > --- > src/mesa/main/shaderapi.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c > index 2590abe..64f7ed3 100644 > --- a/src/mesa/main/shaderapi.c > +++ b/src/mesa/main/shaderapi.c > @@ -207,6 +207,8 @@ attach_shader(struct gl_context *ctx, GLuint program, > GLuint shader) > struct gl_shader *sh; > GLuint i, n; > > + const bool same_type_disallowed = _mesa_is_gles(ctx); > + > shProg = _mesa_lookup_shader_program_err(ctx, program, "glAttachShader"); > if (!shProg) > return; > @@ -227,6 +229,16 @@ attach_shader(struct gl_context *ctx, GLuint program, > GLuint shader) > */ > _mesa_error(ctx, GL_INVALID_OPERATION, "glAttachShader"); > return; > + } else if (same_type_disallowed && > + shProg->Shaders[i]->Type == sh->Type) { > + /* Shader with the same type is already attached to this program, > + * OpenGL ES 2.0 and 3.0 specs say: > + * > + * "Multiple shader objects of the same type may not be attached > + * to a single program object." > + */ > + _mesa_error(ctx, GL_INVALID_OPERATION, "glAttachShader"); > + return; > } > } > >
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
