[Mesa-dev] [PATCH 03/42] mesa: add KHR_no_error support for glAttachShader() and glAttachObjectARB()
Samuel Pitoiset
samuel.pitoiset at gmail.com
Tue Jun 27 11:20:06 UTC 2017
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
src/mapi/glapi/gen/gl_API.xml | 4 ++--
src/mesa/main/shaderapi.c | 28 ++++++++++++++++++++++++++++
src/mesa/main/shaderapi.h | 7 ++++++-
3 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index d878a04ea09..94589464c5c 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -5295,7 +5295,7 @@
<glx ignore="true"/>
</function>
- <function name="AttachShader" es2="2.0">
+ <function name="AttachShader" es2="2.0" no_error="true">
<param name="program" type="GLuint"/>
<param name="shader" type="GLuint"/>
<glx ignore="true"/>
@@ -7709,7 +7709,7 @@
<glx ignore="true"/>
</function>
- <function name="AttachObjectARB">
+ <function name="AttachObjectARB" no_error="true">
<param name="containerObj" type="GLhandleARB"/>
<param name="obj" type="GLhandleARB"/>
<glx ignore="true"/>
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 457a18e4175..7318833e9b8 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -311,6 +311,19 @@ attach_shader_err(struct gl_context *ctx, GLuint program, GLuint shader,
}
+static void
+attach_shader(struct gl_context *ctx, GLuint program, GLuint shader)
+{
+ struct gl_shader_program *shProg;
+ struct gl_shader *sh;
+
+ shProg = _mesa_lookup_shader_program(ctx, program);
+ sh = _mesa_lookup_shader(ctx, shader);
+
+ add_shader(ctx, shProg, sh);
+}
+
+
static GLuint
create_shader(struct gl_context *ctx, GLenum type)
{
@@ -1334,6 +1347,13 @@ validate_program(struct gl_context *ctx, GLuint program)
}
+void GLAPIENTRY
+_mesa_AttachObjectARB_no_error(GLhandleARB program, GLhandleARB shader)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ attach_shader(ctx, program, shader);
+}
+
void GLAPIENTRY
_mesa_AttachObjectARB(GLhandleARB program, GLhandleARB shader)
@@ -1344,6 +1364,14 @@ _mesa_AttachObjectARB(GLhandleARB program, GLhandleARB shader)
void GLAPIENTRY
+_mesa_AttachShader_no_error(GLuint program, GLuint shader)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ attach_shader(ctx, program, shader);
+}
+
+
+void GLAPIENTRY
_mesa_AttachShader(GLuint program, GLuint shader)
{
GET_CURRENT_CONTEXT(ctx);
diff --git a/src/mesa/main/shaderapi.h b/src/mesa/main/shaderapi.h
index 0a28185177d..3f6c0ff0cba 100644
--- a/src/mesa/main/shaderapi.h
+++ b/src/mesa/main/shaderapi.h
@@ -73,6 +73,10 @@ _mesa_longest_attribute_name_length(struct gl_shader_program *shProg);
extern void
_mesa_shader_write_subroutine_indices(struct gl_context *ctx,
gl_shader_stage stage);
+
+void GLAPIENTRY
+_mesa_AttachObjectARB_no_error(GLhandleARB, GLhandleARB);
+
extern void GLAPIENTRY
_mesa_AttachObjectARB(GLhandleARB, GLhandleARB);
@@ -154,7 +158,8 @@ _mesa_GetActiveAttrib(GLuint, GLuint, GLsizei, GLsizei *, GLint *,
extern GLint GLAPIENTRY
_mesa_GetAttribLocation(GLuint, const GLchar *);
-
+void GLAPIENTRY
+_mesa_AttachShader_no_error(GLuint program, GLuint shader);
extern void GLAPIENTRY
_mesa_AttachShader(GLuint program, GLuint shader);
--
2.13.2
More information about the mesa-dev
mailing list