Added ES3 validation for glReadPixels and glReadnPixelsEXT.

TRAC #22956

Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
Author: Geoff Lang

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2355 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index a490408..b1461fe 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -1564,8 +1564,9 @@
       case GL_IMPLEMENTATION_COLOR_READ_TYPE:
       case GL_IMPLEMENTATION_COLOR_READ_FORMAT:
         {
+            GLint internalFormat;
             GLenum format, type;
-            if (getCurrentReadFormatType(&format, &type))
+            if (getCurrentReadFormatType(&internalFormat, &format, &type))
             {
                 if (pname == GL_IMPLEMENTATION_COLOR_READ_FORMAT)
                     *params = format;
@@ -2611,7 +2612,7 @@
     return mMaxTextureAnisotropy;
 }
 
-bool Context::getCurrentReadFormatType(GLenum *format, GLenum *type)
+bool Context::getCurrentReadFormatType(GLint *internalFormat, GLenum *format, GLenum *type)
 {
     Framebuffer *framebuffer = getReadFramebuffer();
     if (!framebuffer || framebuffer->completeness() != GL_FRAMEBUFFER_COMPLETE)
@@ -2625,6 +2626,7 @@
         return gl::error(GL_INVALID_OPERATION, false);
     }
 
+    *internalFormat = renderbuffer->getActualFormat();
     *format = gl::GetFormat(renderbuffer->getActualFormat(), mClientVersion);
     *type = gl::GetType(renderbuffer->getActualFormat(), mClientVersion);