| 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
 | 
| 
 | 
| 
 |