mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
mesa: fix error codes in _mesa_shader_source(), _mesa_get_shader_source()
If the 'shader' parameter is wrong, need to either generate GL_INVALID_VALUE or GL_INVALID_OPERATION. It depends on whether 'shader' actually names a 'program' or is a totally unknown ID. There might be other cases to fix...
This commit is contained in:
parent
a405d69063
commit
36a5826411
1 changed files with 12 additions and 2 deletions
|
|
@ -875,7 +875,12 @@ _mesa_get_shader_source(GLcontext *ctx, GLuint shader, GLsizei maxLength,
|
|||
{
|
||||
struct gl_shader *sh = _mesa_lookup_shader(ctx, shader);
|
||||
if (!sh) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE, "glGetShaderSource(shader)");
|
||||
GLenum err;
|
||||
if (_mesa_lookup_shader_program(ctx, shader))
|
||||
err = GL_INVALID_OPERATION;
|
||||
else
|
||||
err = GL_INVALID_VALUE;
|
||||
_mesa_error(ctx, err, "glGetShaderSource(shader)");
|
||||
return;
|
||||
}
|
||||
copy_string(sourceOut, maxLength, length, sh->Source);
|
||||
|
|
@ -966,7 +971,12 @@ _mesa_shader_source(GLcontext *ctx, GLuint shader, const GLchar *source)
|
|||
{
|
||||
struct gl_shader *sh = _mesa_lookup_shader(ctx, shader);
|
||||
if (!sh) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE, "glShaderSource(shaderObj)");
|
||||
GLenum err;
|
||||
if (_mesa_lookup_shader_program(ctx, shader))
|
||||
err = GL_INVALID_OPERATION;
|
||||
else
|
||||
err = GL_INVALID_VALUE;
|
||||
_mesa_error(ctx, err, "glShaderSource(shaderObj)");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue