diff options
author | Samuel Pitoiset <[email protected]> | 2017-07-19 14:42:07 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2017-07-31 13:53:40 +0200 |
commit | ffe8813b02590bcd00437fe5cdc1103273ac2920 (patch) | |
tree | 90a9b742320e2b5b93fb3ad3b5ff22f230d85349 /src | |
parent | 6b9087a45dc4c21bb296110770c3e2b8d98cdb49 (diff) |
mesa: add KHR_no_error support to glDetachShader() and glDetachObjectARB()
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mapi/glapi/gen/gl_API.xml | 4 | ||||
-rw-r--r-- | src/mesa/main/shaderapi.c | 23 | ||||
-rw-r--r-- | src/mesa/main/shaderapi.h | 6 |
3 files changed, 31 insertions, 2 deletions
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index 53b234b2f96..3e2bdc1736e 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -5334,7 +5334,7 @@ <glx ignore="true"/> </function> - <function name="DetachShader" es2="2.0"> + <function name="DetachShader" es2="2.0" no_error="true"> <param name="program" type="GLuint"/> <param name="shader" type="GLuint"/> <glx ignore="true"/> @@ -7681,7 +7681,7 @@ <glx ignore="true"/> </function> - <function name="DetachObjectARB"> + <function name="DetachObjectARB" no_error="true"> <param name="containerObj" type="GLhandleARB"/> <param name="attachedObj" type="GLhandleARB"/> <glx ignore="true"/> diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index 29e2ed75a5a..e690e4731fa 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -504,6 +504,13 @@ detach_shader_error(struct gl_context *ctx, GLuint program, GLuint shader) } +static void +detach_shader_no_error(struct gl_context *ctx, GLuint program, GLuint shader) +{ + detach_shader(ctx, program, shader, true); +} + + /** * Return list of shaders attached to shader program. */ @@ -1508,6 +1515,14 @@ _mesa_DeleteShader(GLuint name) void GLAPIENTRY +_mesa_DetachObjectARB_no_error(GLhandleARB program, GLhandleARB shader) +{ + GET_CURRENT_CONTEXT(ctx); + detach_shader_no_error(ctx, program, shader); +} + + +void GLAPIENTRY _mesa_DetachObjectARB(GLhandleARB program, GLhandleARB shader) { GET_CURRENT_CONTEXT(ctx); @@ -1516,6 +1531,14 @@ _mesa_DetachObjectARB(GLhandleARB program, GLhandleARB shader) void GLAPIENTRY +_mesa_DetachShader_no_error(GLuint program, GLuint shader) +{ + GET_CURRENT_CONTEXT(ctx); + detach_shader_no_error(ctx, program, shader); +} + + +void GLAPIENTRY _mesa_DetachShader(GLuint program, GLuint shader) { GET_CURRENT_CONTEXT(ctx); diff --git a/src/mesa/main/shaderapi.h b/src/mesa/main/shaderapi.h index ae53021d914..e4c3bd2e76e 100644 --- a/src/mesa/main/shaderapi.h +++ b/src/mesa/main/shaderapi.h @@ -95,6 +95,9 @@ _mesa_CreateShaderObjectARB(GLenum type); extern void GLAPIENTRY _mesa_DeleteObjectARB(GLhandleARB obj); +void GLAPIENTRY +_mesa_DetachObjectARB_no_error(GLhandleARB, GLhandleARB); + extern void GLAPIENTRY _mesa_DetachObjectARB(GLhandleARB, GLhandleARB); @@ -193,6 +196,9 @@ _mesa_DeleteProgram(GLuint program); extern void GLAPIENTRY _mesa_DeleteShader(GLuint shader); +void GLAPIENTRY +_mesa_DetachShader_no_error(GLuint program, GLuint shader); + extern void GLAPIENTRY _mesa_DetachShader(GLuint program, GLuint shader); |