Add a base for GL essential data.

The data holds the GL state, caps, extensions, texture caps, and
current client version.

BUG=angle:789

Change-Id: Icd15d806e14490f39041dea663ab2461a6a76090
Reviewed-on: https://chromium-review.googlesource.com/226060
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index c823ed5..f9b3d3b 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -179,7 +179,10 @@
     }
     mZeroTextures.clear();
 
-    mResourceManager->release();
+    if (mResourceManager)
+    {
+        mResourceManager->release();
+    }
 }
 
 void Context::makeCurrent(egl::Surface *surface)
@@ -2418,6 +2421,11 @@
     mExtensions.maxSamples = maxSamples;
 }
 
+Data Context::getData() const
+{
+    return Data(mClientVersion, mState, mCaps, mTextureCaps, mExtensions, mResourceManager);
+}
+
 }
 
 extern "C"