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/validationES.cpp b/src/libGLESv2/validationES.cpp
index cc6f91c..2324a4b 100644
--- a/src/libGLESv2/validationES.cpp
+++ b/src/libGLESv2/validationES.cpp
@@ -112,7 +112,7 @@
 
       case GL_PIXEL_PACK_BUFFER:
       case GL_PIXEL_UNPACK_BUFFER:
-        return context->getCaps().extensions.pixelBufferObject;
+        return context->getExtensions().pixelBufferObject;
 
       case GL_COPY_READ_BUFFER:
       case GL_COPY_WRITE_BUFFER:
@@ -175,7 +175,7 @@
         return false;
     }
 
-    if (!context->getCaps().extensions.textureNPOT &&
+    if (!context->getExtensions().textureNPOT &&
         (level != 0 && (!gl::isPow2(width) || !gl::isPow2(height) || !gl::isPow2(depth))))
     {
         return false;
@@ -297,8 +297,7 @@
         return gl::error(GL_INVALID_VALUE, false);
     }
 
-    const gl::Caps &caps = context->getCaps();
-    if (!gl::IsValidInternalFormat(internalformat, caps.extensions, context->getClientVersion()))
+    if (!gl::IsValidInternalFormat(internalformat, context->getExtensions(), context->getClientVersion()))
     {
         return gl::error(GL_INVALID_ENUM, false);
     }
@@ -318,7 +317,7 @@
         return gl::error(GL_INVALID_OPERATION, false);
     }
 
-    const TextureCaps &formatCaps = caps.textureCaps.get(internalformat);
+    const TextureCaps &formatCaps = context->getTextureCaps().get(internalformat);
     if (!formatCaps.colorRendering && !formatCaps.depthRendering && !formatCaps.stencilRendering)
     {
         return gl::error(GL_INVALID_ENUM, false);
@@ -741,7 +740,7 @@
         break;
 
       case GL_TEXTURE_MAX_ANISOTROPY_EXT:
-        if (!context->getCaps().extensions.textureFilterAnisotropic)
+        if (!context->getExtensions().textureFilterAnisotropic)
         {
             return gl::error(GL_INVALID_ENUM, false);
         }
@@ -1286,7 +1285,7 @@
             return gl::error(GL_INVALID_VALUE, false);
         }
 
-        if (!IsValidInternalFormat(internalformat, context->getCaps().extensions, context->getClientVersion()))
+        if (!IsValidInternalFormat(internalformat, context->getExtensions(), context->getClientVersion()))
         {
             return gl::error(GL_INVALID_ENUM, false);
         }
@@ -1400,7 +1399,7 @@
       case GL_UNSIGNED_SHORT:
         break;
       case GL_UNSIGNED_INT:
-        if (!context->getCaps().extensions.elementIndexUint)
+        if (!context->getExtensions().elementIndexUint)
         {
             return gl::error(GL_INVALID_ENUM, false);
         }