Move display extension initialization to DisplayImpl.

BUG=angle:658

Change-Id: I44d95fad4e1be5cc76f443d724defd37da4a268f
Reviewed-on: https://chromium-review.googlesource.com/234762
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/DisplayImpl.cpp b/src/libANGLE/renderer/DisplayImpl.cpp
index 8da133c..1e358b9 100644
--- a/src/libANGLE/renderer/DisplayImpl.cpp
+++ b/src/libANGLE/renderer/DisplayImpl.cpp
@@ -13,6 +13,11 @@
 namespace rx
 {
 
+DisplayImpl::DisplayImpl()
+    : mExtensionsInitialized(false)
+{
+}
+
 DisplayImpl::~DisplayImpl()
 {
     while (!mSurfaceSet.empty())
@@ -27,4 +32,15 @@
     SafeDelete(surface);
 }
 
+const egl::DisplayExtensions &DisplayImpl::getExtensions() const
+{
+    if (!mExtensionsInitialized)
+    {
+        generateExtensions(&mExtensions);
+        mExtensionsInitialized = true;
+    }
+
+    return mExtensions;
+}
+
 }