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_WGL_API_IMPLEMENTATION_H_ 6 #define UI_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 InitializeGLBindingsWGL(); 18 void InitializeGLExtensionBindingsWGL(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_WGL_API_IMPLEMENTATION_H_ 63 64 65 66