| Index: ui/gl/gl_gl_api_implementation.h
|
| diff --git a/ui/gl/gl_gl_api_implementation.h b/ui/gl/gl_gl_api_implementation.h
|
| index 5c70b38cc4e4c16d1156afc35d198352c9a70aee..5051bf31b860b68382bdfc1aa2d4c3703174e8a0 100644
|
| --- a/ui/gl/gl_gl_api_implementation.h
|
| +++ b/ui/gl/gl_gl_api_implementation.h
|
| @@ -9,18 +9,28 @@
|
| #include "ui/gl/gl_bindings.h"
|
| #include "ui/gl/gl_export.h"
|
|
|
| +namespace gpu {
|
| +namespace gles2 {
|
| +class GLES2Decoder;
|
| +}
|
| +}
|
| namespace gfx {
|
|
|
| class GLContext;
|
| +class GLSurface;
|
|
|
| void InitializeGLBindingsGL();
|
| void InitializeGLExtensionBindingsGL(GLContext* context);
|
| void InitializeDebugGLBindingsGL();
|
| void ClearGLBindingsGL();
|
| +void SetGLToRealGLApi();
|
| +void SetGLApi(GLApi* api);
|
|
|
| +// Implemenents the GL API by calling directly into the driver.
|
| class GL_EXPORT RealGLApi : public GLApi {
|
| public:
|
| RealGLApi();
|
| + virtual ~RealGLApi();
|
| void Initialize(DriverGL* driver);
|
|
|
| // Include the auto-generated part of this class. We split this because
|
| @@ -32,6 +42,36 @@ class GL_EXPORT RealGLApi : public GLApi {
|
| DriverGL* driver_;
|
| };
|
|
|
| +// Implementents the GL API using co-operative state restoring.
|
| +// Assumes there is only one real GL context and that multiple virtual contexts
|
| +// are implemented above it. Restores the needed state from the current context.
|
| +class GL_EXPORT VirtualGLApi : public GLApi {
|
| + public:
|
| + VirtualGLApi();
|
| + virtual ~VirtualGLApi();
|
| + void Initialize(DriverGL* driver, GLContext* real_context);
|
| +
|
| + // Include the auto-generated part of this class. We split this because
|
| + // it means we can easily edit the non-auto generated parts right here in
|
| + // this file instead of having to edit some template or the code generator.
|
| + #include "gl_bindings_api_autogen_gl.h"
|
| +
|
| + // Sets the current virutal context.
|
| + bool MakeCurrent(GLContext* virtual_context, GLSurface* surface);
|
| +
|
| + private:
|
| + DriverGL* driver_;
|
| +
|
| + // The real context we're running on.
|
| + GLContext* real_context_;
|
| +
|
| + // The current virtual context.
|
| + GLContext* current_context_;
|
| +
|
| + // The current surface.
|
| + GLSurface* current_surface_;
|
| +};
|
| +
|
| } // namespace gfx
|
|
|
| #endif // UI_GL_GL_API_IMPLEMENTATION_H_
|
|
|