Split EGLContext in GLContextEGL and GLSurfaceEGL.

Surfaces are independent of contexts in GL. To facilitate sharing of surfaces between processes, I have separated them from the notion of contexts because contexts cannot be shared between processes.

I have started with EGL. GLContextEGL still has a pointer to a surface and still has some surface specific operations that just forward through to it. Once I have refactored all the GLContext implementations in this way, I will remove these pointers and the surface specific opertations.

There will not be "view" and "offscreen" GL contexts. Rather there will be a single context type for each backend which can be made current with a surface that directs output either to a view or offscreen surface.

TEST=try, WebGL puppy works
BUG=none
Review URL: http://codereview.chromium.org/6839008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81512 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/ui/gfx/gl/egl_util.h b/ui/gfx/gl/egl_util.h
new file mode 100644
index 0000000..71f471f
--- /dev/null
+++ b/ui/gfx/gl/egl_util.h
@@ -0,0 +1,15 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_GFX_GL_EGL_UTIL_H_
+#define UI_GFX_GL_EGL_UTIL_H_
+
+namespace gfx {
+
+// Returns the last EGL error as a string.
+const char* GetLastEGLErrorString();
+
+}  // namespace gfx
+
+#endif  // UI_GFX_GL_EGL_UTIL_H_