diff options
author | Jeremy Huddleston Sequoia <jeremyhu@apple.com> | 2016-05-08 00:47:10 -0700 |
---|---|---|
committer | Jeremy Huddleston Sequoia <jeremyhu@apple.com> | 2016-05-08 01:11:37 -0700 |
commit | 1bef9a9d46b5e61fb546ec562e0d3cc974336f2d (patch) | |
tree | eba18b64e125b3596d1f9c7495b192091190996c | |
parent | 742bc53d040632fd98fac8930e4e8749f5c430e2 (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.c | 26 |
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); } |