Use a Caps structure to store extension and texture format support.

Removes support for fallbacks in D3D9 texture formats. The fallback
formats did not work properly anyways.

BUG=angle:658

Change-Id: Idfa5183bf71fd8ebf4608f940f9d93177b9eff08
Reviewed-on: https://chromium-review.googlesource.com/200813
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libGLESv2/renderer/Renderer.cpp b/src/libGLESv2/renderer/Renderer.cpp
index 92594a4..0665f21 100644
--- a/src/libGLESv2/renderer/Renderer.cpp
+++ b/src/libGLESv2/renderer/Renderer.cpp
@@ -1,6 +1,6 @@
 #include "precompiled.h"
 //
-// Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved.
+// Copyright (c) 2012-2014 The ANGLE Project Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
@@ -31,9 +31,11 @@
 namespace rx
 {
 
-Renderer::Renderer(egl::Display *display) : mDisplay(display)
+Renderer::Renderer(egl::Display *display)
+    : mDisplay(display),
+      mCapsInitialized(false),
+      mCurrentClientVersion(2)
 {
-    mCurrentClientVersion = 2;
 }
 
 Renderer::~Renderer()
@@ -41,6 +43,17 @@
     gl::Shader::releaseCompiler();
 }
 
+const gl::Caps &Renderer::getCaps() const
+{
+    if (!mCapsInitialized)
+    {
+        mCaps = generateCaps();
+        mCapsInitialized = true;
+    }
+
+    return mCaps;
+}
+
 }
 
 extern "C"