Added validation for CopyTexImage with integer textures.

TRAC #23049

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

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2375 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 1a3090a..2500504 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -1092,9 +1092,9 @@
     }
 
     gl::Renderbuffer *source = framebuffer->getReadColorbuffer();
-    GLenum colorbufferFormat = source->getInternalFormat();
+    GLenum colorbufferInternalFormat = source->getInternalFormat();
     gl::Texture *texture = NULL;
-    GLenum textureFormat = GL_RGBA;
+    GLenum textureInternalFormat = GL_NONE;
     bool textureCompressed = false;
     GLint textureLevelWidth = 0;
     GLint textureLevelHeight = 0;
@@ -1106,7 +1106,7 @@
             gl::Texture2D *texture2d = context->getTexture2D();
             if (texture2d)
             {
-                textureFormat = gl::GetFormat(texture2d->getInternalFormat(level), context->getClientVersion());
+                textureInternalFormat = texture2d->getInternalFormat(level);
                 textureCompressed = texture2d->isCompressed(level);
                 textureLevelWidth = texture2d->getWidth(level);
                 textureLevelHeight = texture2d->getHeight(level);
@@ -1126,7 +1126,7 @@
             gl::TextureCubeMap *textureCube = context->getTextureCubeMap();
             if (textureCube)
             {
-                textureFormat = gl::GetFormat(textureCube->getInternalFormat(target, level), context->getClientVersion());
+                textureInternalFormat = textureCube->getInternalFormat(target, level);
                 textureCompressed = textureCube->isCompressed(target, level);
                 textureLevelWidth = textureCube->getWidth(target, level);
                 textureLevelHeight = textureCube->getHeight(target, level);
@@ -1141,7 +1141,7 @@
             gl::Texture2DArray *texture2dArray = context->getTexture2DArray();
             if (texture2dArray)
             {
-                textureFormat = gl::GetFormat(texture2dArray->getInternalFormat(level), context->getClientVersion());
+                textureInternalFormat = texture2dArray->getInternalFormat(level);
                 textureCompressed = texture2dArray->isCompressed(level);
                 textureLevelWidth = texture2dArray->getWidth(level);
                 textureLevelHeight = texture2dArray->getHeight(level);
@@ -1156,7 +1156,7 @@
             gl::Texture3D *texture3d = context->getTexture3D();
             if (texture3d)
             {
-                textureFormat = gl::GetFormat(texture3d->getInternalFormat(level), context->getClientVersion());
+                textureInternalFormat = texture3d->getInternalFormat(level);
                 textureCompressed = texture3d->isCompressed(level);
                 textureLevelWidth = texture3d->getWidth(level);
                 textureLevelHeight = texture3d->getHeight(level);
@@ -1196,7 +1196,8 @@
         return gl::error(GL_INVALID_VALUE, false);
     }
 
-    if (!gl::IsValidCopyTexImageCombination(textureFormat, colorbufferFormat, context->getClientVersion()))
+    if (!gl::IsValidCopyTexImageCombination(textureInternalFormat, colorbufferInternalFormat,
+                                            context->getClientVersion()))
     {
         return gl::error(GL_INVALID_OPERATION, false);
     }