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_GLX_API_IMPLEMENTATION_H_
      6 #define UI_GL_GL_GLX_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 InitializeStaticGLBindingsGLX();
     18 void InitializeDynamicGLBindingsGLX(GLContext* context);
     19 void InitializeDebugGLBindingsGLX();
     20 void ClearGLBindingsGLX();
     21 bool GetGLWindowSystemBindingInfoGLX(GLWindowSystemBindingInfo* info);
     22 
     23 class GL_EXPORT GLXApiBase : public GLXApi {
     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_glx.h"
     29 
     30  protected:
     31   GLXApiBase();
     32   virtual ~GLXApiBase();
     33   void InitializeBase(DriverGLX* driver);
     34 
     35   DriverGLX* driver_;
     36 };
     37 
     38 class GL_EXPORT RealGLXApi : public GLXApiBase {
     39  public:
     40   RealGLXApi();
     41   virtual ~RealGLXApi();
     42   void Initialize(DriverGLX* driver);
     43 };
     44 
     45 // Inserts a TRACE for every GLX call.
     46 class GL_EXPORT TraceGLXApi : public GLXApi {
     47  public:
     48   TraceGLXApi(GLXApi* glx_api) : glx_api_(glx_api) { }
     49   virtual ~TraceGLXApi();
     50 
     51   // Include the auto-generated part of this class. We split this because
     52   // it means we can easily edit the non-auto generated parts right here in
     53   // this file instead of having to edit some template or the code generator.
     54   #include "gl_bindings_api_autogen_glx.h"
     55 
     56  private:
     57   GLXApi* glx_api_;
     58 };
     59 
     60 }  // namespace gfx
     61 
     62 #endif  // UI_GL_GL_GLX_API_IMPLEMENTATION_H_
     63 
     64 
     65 
     66