summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Huddleston Sequoia <jeremyhu@apple.com>2016-05-08 00:47:10 -0700
committerJeremy Huddleston Sequoia <jeremyhu@apple.com>2016-05-08 01:11:37 -0700
commit1bef9a9d46b5e61fb546ec562e0d3cc974336f2d (patch)
treeeba18b64e125b3596d1f9c7495b192091190996c
parent742bc53d040632fd98fac8930e4e8749f5c430e2 (diff)
mesa: Deal with size differences between GLuint and GLhandleARB in GetAttachedObjectsARB
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> CC: Nicolai Hähnle <nhaehnle@gmail.com> CC: Matt Turner <mattst88 at gmail.com> CC: Ian Romanick <idr@freedesktop.org>
-rw-r--r--src/mesa/main/shaderapi.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 8c1fba8b26..0b630ebc4d 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -476,6 +476,30 @@ get_attached_shaders(struct gl_context *ctx, GLuint program, GLsizei maxCount,
}
}
+static void
+get_attached_shadersARB(struct gl_context *ctx, GLhandleARB container, GLsizei maxCount,
+ GLsizei *count, GLhandleARB *obj)
+{
+ struct gl_shader_program *shProg;
+
+ if (maxCount < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetAttachedShadersARB(maxCount < 0)");
+ return;
+ }
+
+ shProg =
+ _mesa_lookup_shader_program_err(ctx, (GLuint)container, "glGetAttachedShaders");
+
+ if (shProg) {
+ GLuint i;
+ for (i = 0; i < (GLuint) maxCount && i < shProg->NumShaders; i++) {
+ obj[i] = (GLhandleARB)shProg->Shaders[i]->Name;
+ }
+ if (count)
+ *count = i;
+ }
+}
+
/**
* glGetHandleARB() - return ID/name of currently bound shader program.
@@ -1371,7 +1395,7 @@ _mesa_GetAttachedObjectsARB(GLhandleARB container, GLsizei maxCount,
GLsizei * count, GLhandleARB * obj)
{
GET_CURRENT_CONTEXT(ctx);
- get_attached_shaders(ctx, container, maxCount, count, obj);
+ get_attached_shadersARB(ctx, container, maxCount, count, obj);
}