Home | History | Annotate | Download | only in gl
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef UI_GL_GL_EGL_API_IMPLEMENTATION_H_
      6 #define UI_GL_GL_EGL_API_IMPLEMENTATION_H_
      7 
      8 #include "base/compiler_specific.h"
      9 #include "gl_bindings.h"
     10 #include "ui/gl/gl_export.h"
     11 
     12 namespace gfx {
     13 
     14 class GLContext;
     15 struct GLWindowSystemBindingInfo;
     16 
     17 void InitializeStaticGLBindingsEGL();
     18 void InitializeDynamicGLBindingsEGL(GLContext* context);
     19 void InitializeDebugGLBindingsEGL();
     20 void ClearGLBindingsEGL();
     21 bool GetGLWindowSystemBindingInfoEGL(GLWindowSystemBindingInfo* info);
     22 
     23 class GL_EXPORT EGLApiBase : public EGLApi {
     24  public:
     25   // Include the auto-generated part of this class. We split this because
     26   // it means we can easily edit the non-auto generated parts right here in
     27   // this file instead of having to edit some template or the code generator.
     28   #include "gl_bindings_api_autogen_egl.h"
     29 
     30  protected:
     31   EGLApiBase();
     32   virtual ~EGLApiBase();
     33   void InitializeBase(DriverEGL* driver);
     34 
     35   DriverEGL* driver_;
     36 };
     37 
     38 class GL_EXPORT RealEGLApi : public EGLApiBase {
     39  public:
     40   RealEGLApi();
     41   virtual ~RealEGLApi();
     42   void Initialize(DriverEGL* driver);
     43 };
     44 
     45 
     46 // Inserts a TRACE for every EGL call.
     47 class GL_EXPORT TraceEGLApi : public EGLApi {
     48  public:
     49   TraceEGLApi(EGLApi* egl_api) : egl_api_(egl_api) { }
     50   virtual ~TraceEGLApi();
     51 
     52   // Include the auto-generated part of this class. We split this because
     53   // it means we can easily edit the non-auto generated parts right here in
     54   // this file instead of having to edit some template or the code generator.
     55   #include "gl_bindings_api_autogen_egl.h"
     56 
     57  private:
     58   EGLApi* egl_api_;
     59 };
     60 
     61 }  // namespace gfx
     62 
     63 #endif  // UI_GL_GL_EGL_API_IMPLEMENTATION_H_
     64 
     65 
     66 
     67