blob: 9e1188903ae5d53e60190af1f9d6b541b59c427d [file] [log] [blame]
[email protected]b97c9082012-10-25 17:21:381// 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;
[email protected]45895032013-05-30 17:06:4315struct GLWindowSystemBindingInfo;
[email protected]b97c9082012-10-25 17:21:3816
17void InitializeGLBindingsWGL();
18void InitializeGLExtensionBindingsWGL(GLContext* context);
19void InitializeDebugGLBindingsWGL();
20void ClearGLBindingsWGL();
[email protected]45895032013-05-30 17:06:4321bool GetGLWindowSystemBindingInfoWGL(GLWindowSystemBindingInfo* info);
[email protected]b97c9082012-10-25 17:21:3822
[email protected]95c9d112012-12-16 04:52:3623class GL_EXPORT WGLApiBase : public WGLApi {
[email protected]b97c9082012-10-25 17:21:3824 public:
[email protected]b97c9082012-10-25 17:21:3825 // 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
[email protected]95c9d112012-12-16 04:52:3630 protected:
31 WGLApiBase();
32 virtual ~WGLApiBase();
33 void InitializeBase(DriverWGL* driver);
34
[email protected]b97c9082012-10-25 17:21:3835 DriverWGL* driver_;
36};
37
[email protected]95c9d112012-12-16 04:52:3638class GL_EXPORT RealWGLApi : public WGLApiBase {
39 public:
40 RealWGLApi();
41 virtual ~RealWGLApi();
42 void Initialize(DriverWGL* driver);
43};
44
[email protected]b8f1d48c2013-02-07 05:21:1245// 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
[email protected]b97c9082012-10-25 17:21:3860} // namespace gfx
61
62#endif // UI_GL_WGL_API_IMPLEMENTATION_H_
63
64
65