Index: app/gfx/gl/gl_context_egl.h |
=================================================================== |
--- app/gfx/gl/gl_context_egl.h (revision 0) |
+++ app/gfx/gl/gl_context_egl.h (revision 0) |
@@ -0,0 +1,93 @@ |
+// Copyright (c) 2010 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 APP_GFX_GL_GL_CONTEXT_EGL_H_ |
+#define APP_GFX_GL_GL_CONTEXT_EGL_H_ |
+ |
+#include "gfx/size.h" |
+#include "app/gfx/gl/gl_context.h" |
+ |
+typedef void *EGLContext; |
+typedef void* EGLSurface; |
+ |
+namespace gfx { |
+ |
+// Interface for EGL contexts. Adds an EGL specific accessor for retreiving |
+// the surface. |
+class BaseEGLContext : public GLContext { |
+ public: |
+ BaseEGLContext() {} |
+ virtual ~BaseEGLContext() {} |
+ |
+ // Implement GLContext. |
+ virtual EGLSurface GetSurface() = 0; |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(BaseEGLContext); |
+}; |
+ |
+// Encapsulates an EGL OpenGL ES context that renders to a view. |
+class NativeViewEGLContext : public BaseEGLContext { |
+ public: |
+ explicit NativeViewEGLContext(void* window); |
+ virtual ~NativeViewEGLContext(); |
+ |
+ // Initialize an EGL context. |
+ bool Initialize(); |
+ |
+ // Implement GLContext. |
+ virtual void Destroy(); |
+ virtual bool MakeCurrent(); |
+ virtual bool IsCurrent(); |
+ virtual bool IsOffscreen(); |
+ virtual void SwapBuffers(); |
+ virtual gfx::Size GetSize(); |
+ virtual void* GetHandle(); |
+ |
+ // Implement BaseEGLContext. |
+ virtual EGLSurface GetSurface(); |
+ |
+ private: |
+ void* window_; |
+ EGLSurface surface_; |
+ EGLContext context_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(NativeViewEGLContext); |
+}; |
+ |
+// Encapsulates an EGL OpenGL ES context intended for offscreen use. It is |
+// actually associated with a native window and will render to it. The caller |
+// must bind an FBO to prevent this. Not using pbuffers because ANGLE does not |
+// support them. |
+class SecondaryEGLContext : public BaseEGLContext { |
+ public: |
+ SecondaryEGLContext(); |
+ virtual ~SecondaryEGLContext(); |
+ |
+ // Initialize an EGL context that shares a namespace with another. |
+ bool Initialize(GLContext* shared_context); |
+ |
+ // Implement GLContext. |
+ virtual void Destroy(); |
+ virtual bool MakeCurrent(); |
+ virtual bool IsCurrent(); |
+ virtual bool IsOffscreen(); |
+ virtual void SwapBuffers(); |
+ virtual gfx::Size GetSize(); |
+ virtual void* GetHandle(); |
+ |
+ // Implement BaseEGLContext. |
+ virtual EGLSurface GetSurface(); |
+ |
+ private: |
+ // All offscreen |
+ EGLSurface surface_; |
+ EGLContext context_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(SecondaryEGLContext); |
+}; |
+ |
+} // namespace gfx |
+ |
+#endif // APP_GFX_GL_GL_CONTEXT_EGL_H_ |
Property changes on: app\gfx\gl\gl_context_egl.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |