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_WGL_API_IMPLEMENTATION_H_
      6 #define UI_GL_GL_WGL_API_IMPLEMENTATION_H_
      7 
      8 #include "base/compiler_specific.h"
      9 #include "ui/gl/gl_bindings.h"
     10 #include "ui/gl/gl_export.h"
     11 
     12 namespace gfx {
     13 
     14 class GLContext;
     15 struct GLWindowSystemBindingInfo;
     16 
     17 void InitializeStaticGLBindingsWGL();
     18 void InitializeDynamicGLBindingsWGL(GLContext* context);
     19 void InitializeDebugGLBindingsWGL();
     20 void ClearGLBindingsWGL();
     21 bool GetGLWindowSystemBindingInfoWGL(GLWindowSystemBindingInfo* info);
     22 
     23 class GL_EXPORT WGLApiBase : public WGLApi {
     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_wgl.h"
     29 
     30  protected:
     31   WGLApiBase();
     32   virtual ~WGLApiBase();
     33   void InitializeBase(DriverWGL* driver);
     34 
     35   DriverWGL* driver_;
     36 };
     37 
     38 class GL_EXPORT RealWGLApi : public WGLApiBase {
     39  public:
     40   RealWGLApi();
     41   virtual ~RealWGLApi();
     42   void Initialize(DriverWGL* driver);
     43 };
     44 
     45 // Inserts a TRACE for every WGL call.
     46 class GL_EXPORT TraceWGLApi : public WGLApi {
     47  public:
     48   TraceWGLApi(WGLApi* wgl_api) : wgl_api_(wgl_api) { }
     49   virtual ~TraceWGLApi();
     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_wgl.h"
     55 
     56  private:
     57   WGLApi* wgl_api_;
     58 };
     59 
     60 }  // namespace gfx
     61 
     62 #endif  // UI_GL_GL_WGL_API_IMPLEMENTATION_H_
     63 
     64 
     65 
     66