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);
             }