And add a no_error variant.
Signed-off-by: Samuel Pitoiset <[email protected]>
---
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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev