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 12namespace gfx { 13 14class GLContext; 15struct GLWindowSystemBindingInfo; 16 17void InitializeGLBindingsWGL(); 18void InitializeGLExtensionBindingsWGL(GLContext* context); 19void InitializeDebugGLBindingsWGL(); 20void ClearGLBindingsWGL(); 21bool GetGLWindowSystemBindingInfoWGL(GLWindowSystemBindingInfo* info); 22 23class 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 38class 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. 46class 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