Add support for querying number of active uniform blocks/block name max length from a program object.
TRAC #22858
Signed-off-by: Geoff Lang
Signed-off-by: Nicolas Capens
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2311 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 7251bd9..6d0305a 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -3984,6 +3984,16 @@
return gl::error(GL_INVALID_VALUE);
}
+ if (context->getClientVersion() < 3)
+ {
+ switch (pname)
+ {
+ case GL_ACTIVE_UNIFORM_BLOCKS:
+ case GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH:
+ return gl::error(GL_INVALID_ENUM);
+ }
+ }
+
switch (pname)
{
case GL_DELETE_STATUS:
@@ -4016,6 +4026,12 @@
case GL_PROGRAM_BINARY_LENGTH_OES:
*params = programObject->getProgramBinaryLength();
return;
+ case GL_ACTIVE_UNIFORM_BLOCKS:
+ *params = programObject->getActiveUniformBlockCount();
+ return;
+ case GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH:
+ *params = programObject->getActiveUniformBlockMaxLength();
+ break;
default:
return gl::error(GL_INVALID_ENUM);
}