Split Caps into Caps, Extensions and TextureFormatCaps.

Context now holds it's own Caps, Extensions and TextureFormat caps so that it
can modify them based on client version or work-arounds.

BUG=angle:658

Change-Id: Id71b6c89b7aa36e1f3dc42b0e4720eaed1851fb9
Reviewed-on: https://chromium-review.googlesource.com/206480
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/validationES2.cpp b/src/libGLESv2/validationES2.cpp
index e371383..eed8a15 100644
--- a/src/libGLESv2/validationES2.cpp
+++ b/src/libGLESv2/validationES2.cpp
@@ -236,19 +236,19 @@
         {
           case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
           case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-            if (!context->getCaps().extensions.textureCompressionDXT1)
+            if (!context->getExtensions().textureCompressionDXT1)
             {
                 return gl::error(GL_INVALID_ENUM, false);
             }
             break;
           case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
-            if (!context->getCaps().extensions.textureCompressionDXT1)
+            if (!context->getExtensions().textureCompressionDXT1)
             {
                 return gl::error(GL_INVALID_ENUM, false);
             }
             break;
           case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
-              if (!context->getCaps().extensions.textureCompressionDXT5)
+              if (!context->getExtensions().textureCompressionDXT5)
             {
                 return gl::error(GL_INVALID_ENUM, false);
             }
@@ -296,7 +296,7 @@
             break;
           case GL_RED:
           case GL_RG:
-              if (!context->getCaps().extensions.textureRG)
+              if (!context->getExtensions().textureRG)
               {
                   return gl::error(GL_INVALID_ENUM, false);
               }
@@ -346,7 +346,7 @@
             break;
           case GL_SRGB_EXT:
           case GL_SRGB_ALPHA_EXT:
-            if (!context->getCaps().extensions.sRGB)
+            if (!context->getExtensions().sRGB)
             {
                 return gl::error(GL_INVALID_ENUM, false);
             }
@@ -390,7 +390,7 @@
         {
           case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
           case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-            if (context->getCaps().extensions.textureCompressionDXT1)
+            if (context->getExtensions().textureCompressionDXT1)
             {
                 return gl::error(GL_INVALID_OPERATION, false);
             }
@@ -400,7 +400,7 @@
             }
             break;
           case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
-            if (context->getCaps().extensions.textureCompressionDXT3)
+            if (context->getExtensions().textureCompressionDXT3)
             {
                 return gl::error(GL_INVALID_OPERATION, false);
             }
@@ -410,7 +410,7 @@
             }
             break;
           case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
-            if (context->getCaps().extensions.textureCompressionDXT5)
+            if (context->getExtensions().textureCompressionDXT5)
             {
                 return gl::error(GL_INVALID_OPERATION, false);
             }
@@ -421,7 +421,7 @@
             break;
           case GL_DEPTH_COMPONENT:
           case GL_DEPTH_STENCIL_OES:
-            if (!context->getCaps().extensions.depthTextures)
+            if (!context->getExtensions().depthTextures)
             {
                 return gl::error(GL_INVALID_VALUE, false);
             }
@@ -442,14 +442,14 @@
 
         if (type == GL_FLOAT)
         {
-            if (!context->getCaps().extensions.textureFloat)
+            if (!context->getExtensions().textureFloat)
             {
                 return gl::error(GL_INVALID_ENUM, false);
             }
         }
         else if (type == GL_HALF_FLOAT_OES)
         {
-            if (!context->getCaps().extensions.textureHalfFloat)
+            if (!context->getExtensions().textureHalfFloat)
             {
                 return gl::error(GL_INVALID_ENUM, false);
             }
@@ -632,7 +632,7 @@
             break;
           case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
           case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-            if (context->getCaps().extensions.textureCompressionDXT1)
+            if (context->getExtensions().textureCompressionDXT1)
             {
                 return gl::error(GL_INVALID_OPERATION, false);
             }
@@ -642,7 +642,7 @@
             }
             break;
           case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
-            if (context->getCaps().extensions.textureCompressionDXT3)
+            if (context->getExtensions().textureCompressionDXT3)
             {
                 return gl::error(GL_INVALID_OPERATION, false);
             }
@@ -652,7 +652,7 @@
             }
             break;
           case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
-            if (context->getCaps().extensions.textureCompressionDXT5)
+            if (context->getExtensions().textureCompressionDXT5)
             {
                 return gl::error(GL_INVALID_OPERATION, false);
             }
@@ -666,7 +666,7 @@
           case GL_DEPTH_COMPONENT32_OES:
           case GL_DEPTH_STENCIL_OES:
           case GL_DEPTH24_STENCIL8_OES:
-            if (context->getCaps().extensions.depthTextures)
+            if (context->getExtensions().depthTextures)
             {
                 return gl::error(GL_INVALID_OPERATION, false);
             }
@@ -736,7 +736,7 @@
         return gl::error(GL_INVALID_ENUM, false);
     }
 
-    if (levels != 1 && !context->getCaps().extensions.textureNPOT)
+    if (levels != 1 && !context->getExtensions().textureNPOT)
     {
         if (!gl::isPow2(width) || !gl::isPow2(height))
         {
@@ -748,19 +748,19 @@
     {
       case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
       case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-        if (!context->getCaps().extensions.textureCompressionDXT1)
+        if (!context->getExtensions().textureCompressionDXT1)
         {
             return gl::error(GL_INVALID_ENUM, false);
         }
         break;
       case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
-        if (!context->getCaps().extensions.textureCompressionDXT3)
+        if (!context->getExtensions().textureCompressionDXT3)
         {
             return gl::error(GL_INVALID_ENUM, false);
         }
         break;
       case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
-        if (!context->getCaps().extensions.textureCompressionDXT5)
+        if (!context->getExtensions().textureCompressionDXT5)
         {
             return gl::error(GL_INVALID_ENUM, false);
         }
@@ -770,7 +770,7 @@
       case GL_ALPHA32F_EXT:
       case GL_LUMINANCE32F_EXT:
       case GL_LUMINANCE_ALPHA32F_EXT:
-        if (!context->getCaps().extensions.textureFloat)
+        if (!context->getExtensions().textureFloat)
         {
             return gl::error(GL_INVALID_ENUM, false);
         }
@@ -780,7 +780,7 @@
       case GL_ALPHA16F_EXT:
       case GL_LUMINANCE16F_EXT:
       case GL_LUMINANCE_ALPHA16F_EXT:
-        if (!context->getCaps().extensions.textureHalfFloat)
+        if (!context->getExtensions().textureHalfFloat)
         {
             return gl::error(GL_INVALID_ENUM, false);
         }
@@ -791,7 +791,7 @@
       case GL_RG16F_EXT:
       case GL_R32F_EXT:
       case GL_RG32F_EXT:
-        if (!context->getCaps().extensions.textureRG)
+        if (!context->getExtensions().textureRG)
         {
             return gl::error(GL_INVALID_ENUM, false);
         }
@@ -799,7 +799,7 @@
       case GL_DEPTH_COMPONENT16:
       case GL_DEPTH_COMPONENT32_OES:
       case GL_DEPTH24_STENCIL8_OES:
-        if (!context->getCaps().extensions.depthTextures)
+        if (!context->getExtensions().depthTextures)
         {
             return gl::error(GL_INVALID_ENUM, false);
         }
@@ -870,7 +870,7 @@
         break;
       case GL_RG_EXT:
       case GL_RED_EXT:
-        if (!context->getCaps().extensions.textureRG)
+        if (!context->getExtensions().textureRG)
         {
             return false;
         }