summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/egl/GLContextEGL.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-10-17 16:21:14 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2012-10-17 16:21:14 +0200
commit8995b83bcbfbb68245f779b64e5517627c6cc6ea (patch)
tree17985605dab9263cc2444bd4d45f189e142cca7c /Source/WebCore/platform/graphics/egl/GLContextEGL.h
parentb9c9652036d5e9f1e29c574f40bc73a35c81ace6 (diff)
Imported WebKit commit cf4f8fc6f19b0629f51860cb2d4b25e139d07e00 (http://svn.webkit.org/repository/webkit/trunk@131592)
New snapshot that includes the build fixes for Mac OS X 10.6 and earlier as well as the previously cherry-picked changes
Diffstat (limited to 'Source/WebCore/platform/graphics/egl/GLContextEGL.h')
-rw-r--r--Source/WebCore/platform/graphics/egl/GLContextEGL.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/egl/GLContextEGL.h b/Source/WebCore/platform/graphics/egl/GLContextEGL.h
new file mode 100644
index 000000000..c5d4bf756
--- /dev/null
+++ b/Source/WebCore/platform/graphics/egl/GLContextEGL.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2012 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifndef GLContextEGL_h
+#define GLContextEGL_h
+
+#if USE(EGL)
+
+#include "GLContext.h"
+
+#include <EGL/egl.h>
+
+namespace WebCore {
+
+class GLContextEGL : public GLContext {
+ WTF_MAKE_NONCOPYABLE(GLContextEGL);
+public:
+ enum EGLSurfaceType { PbufferSurface, WindowSurface, PixmapSurface };
+ static PassOwnPtr<GLContextEGL> createContext(EGLNativeWindowType, GLContext* sharingContext = 0);
+ static PassOwnPtr<GLContextEGL> createWindowContext(EGLNativeWindowType, GLContext* sharingContext);
+
+ virtual ~GLContextEGL();
+ virtual bool makeContextCurrent();
+ virtual void swapBuffers();
+ virtual void waitNative();
+ virtual bool canRenderToDefaultFramebuffer();
+ virtual IntSize defaultFrameBufferSize();
+
+
+#if ENABLE(WEBGL)
+ virtual PlatformGraphicsContext3D platformContext();
+#endif
+
+private:
+ static PassOwnPtr<GLContextEGL> createPbufferContext(EGLContext sharingContext);
+ static PassOwnPtr<GLContextEGL> createPixmapContext(EGLContext sharingContext);
+
+ static void addActiveContext(GLContextEGL*);
+ static void cleanupSharedEGLDisplay(void);
+
+ GLContextEGL(EGLContext, EGLSurface, EGLSurfaceType);
+
+ EGLContext m_context;
+ EGLSurface m_surface;
+ EGLSurfaceType m_type;
+};
+
+} // namespace WebCore
+
+#endif // USE(EGL)
+
+#endif // GLContextEGL_h