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