diff options
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/get.c | 12 | ||||
-rw-r--r-- | src/mesa/main/get_gen.py | 9 |
2 files changed, 20 insertions, 1 deletions
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index 4cd07cb7b11..d09e0610ab0 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -1888,6 +1888,10 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) CHECK_EXT1(ARB_vertex_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS); break; + case GL_CURRENT_PROGRAM: + CHECK_EXT1(ARB_shader_objects, "GetBooleanv"); + params[0] = INT_TO_BOOLEAN(ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0); + break; default: _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv(pname=0x%x)", pname); } @@ -3715,6 +3719,10 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) CHECK_EXT1(ARB_vertex_shader, "GetFloatv"); params[0] = (GLfloat)(MAX_COMBINED_TEXTURE_IMAGE_UNITS); break; + case GL_CURRENT_PROGRAM: + CHECK_EXT1(ARB_shader_objects, "GetFloatv"); + params[0] = (GLfloat)(ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0); + break; default: _mesa_error(ctx, GL_INVALID_ENUM, "glGetFloatv(pname=0x%x)", pname); } @@ -5542,6 +5550,10 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) CHECK_EXT1(ARB_vertex_shader, "GetIntegerv"); params[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS; break; + case GL_CURRENT_PROGRAM: + CHECK_EXT1(ARB_shader_objects, "GetIntegerv"); + params[0] = ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0; + break; default: _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv(pname=0x%x)", pname); } diff --git a/src/mesa/main/get_gen.py b/src/mesa/main/get_gen.py index 2f07cc51926..3e66946b92f 100644 --- a/src/mesa/main/get_gen.py +++ b/src/mesa/main/get_gen.py @@ -993,7 +993,14 @@ StateVars = [ ( "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB", GLint, ["ctx->Const.MaxVertexTextureImageUnits"], "", ["ARB_vertex_shader"] ), ( "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB", GLint, - ["MAX_COMBINED_TEXTURE_IMAGE_UNITS"], "", ["ARB_vertex_shader"] ) + ["MAX_COMBINED_TEXTURE_IMAGE_UNITS"], "", ["ARB_vertex_shader"] ), + + # GL_ARB_shader_objects + # Actually, this token isn't part of GL_ARB_shader_objects, but is + # close enough for now. + ( "GL_CURRENT_PROGRAM", GLint, + ["ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0"], + "", ["ARB_shader_objects"] ) ] |