And add a no_error variant. Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> --- src/mesa/main/shaderapi.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index bb944191813..52bf0bfaff3 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -325,17 +325,11 @@ attach_shader(struct gl_context *ctx, GLuint program, GLuint shader) static GLuint -create_shader(struct gl_context *ctx, GLenum type, const char *caller) +create_shader(struct gl_context *ctx, GLenum type) { struct gl_shader *sh; GLuint name; - if (!_mesa_validate_shader_target(ctx, type)) { - _mesa_error(ctx, GL_INVALID_ENUM, "%s(%s)", - caller, _mesa_enum_to_string(type)); - return 0; - } - _mesa_HashLockMutex(ctx->Shared->ShaderObjects); name = _mesa_HashFindFreeKeyBlock(ctx->Shared->ShaderObjects, 1); sh = _mesa_new_shader(name, _mesa_shader_enum_to_shader_stage(type)); @@ -348,6 +342,19 @@ create_shader(struct gl_context *ctx, GLenum type, const char *caller) static GLuint +create_shader_err(struct gl_context *ctx, GLenum type, const char *caller) +{ + if (!_mesa_validate_shader_target(ctx, type)) { + _mesa_error(ctx, GL_INVALID_ENUM, "%s(%s)", + caller, _mesa_enum_to_string(type)); + return 0; + } + + return create_shader(ctx, type); +} + + +static GLuint create_shader_program(struct gl_context *ctx) { GLuint name; @@ -1394,9 +1401,11 @@ GLuint GLAPIENTRY _mesa_CreateShader(GLenum type) { GET_CURRENT_CONTEXT(ctx); + if (MESA_VERBOSE & VERBOSE_API) _mesa_debug(ctx, "glCreateShader %s\n", _mesa_enum_to_string(type)); - return create_shader(ctx, type, "glCreateShader"); + + return create_shader_err(ctx, type, "glCreateShader"); } @@ -1404,7 +1413,7 @@ GLhandleARB GLAPIENTRY _mesa_CreateShaderObjectARB(GLenum type) { GET_CURRENT_CONTEXT(ctx); - return create_shader(ctx, type, "glCreateShaderObjectARB"); + return create_shader_err(ctx, type, "glCreateShaderObjectARB"); } @@ -2270,7 +2279,7 @@ _mesa_CreateShaderProgramv(GLenum type, GLsizei count, { GET_CURRENT_CONTEXT(ctx); - const GLuint shader = create_shader(ctx, type, "glCreateShaderProgram"); + const GLuint shader = create_shader_err(ctx, type, "glCreateShaderProgram"); GLuint program = 0; /* -- 2.13.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev