[email protected] | b97c908 | 2012-10-25 17:21:38 | [diff] [blame] | 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; | ||||
[email protected] | 4589503 | 2013-05-30 17:06:43 | [diff] [blame] | 15 | struct GLWindowSystemBindingInfo; |
[email protected] | b97c908 | 2012-10-25 17:21:38 | [diff] [blame] | 16 | |
17 | void InitializeGLBindingsWGL(); | ||||
18 | void InitializeGLExtensionBindingsWGL(GLContext* context); | ||||
19 | void InitializeDebugGLBindingsWGL(); | ||||
20 | void ClearGLBindingsWGL(); | ||||
[email protected] | 4589503 | 2013-05-30 17:06:43 | [diff] [blame] | 21 | bool GetGLWindowSystemBindingInfoWGL(GLWindowSystemBindingInfo* info); |
[email protected] | b97c908 | 2012-10-25 17:21:38 | [diff] [blame] | 22 | |
[email protected] | 95c9d11 | 2012-12-16 04:52:36 | [diff] [blame] | 23 | class GL_EXPORT WGLApiBase : public WGLApi { |
[email protected] | b97c908 | 2012-10-25 17:21:38 | [diff] [blame] | 24 | public: |
[email protected] | b97c908 | 2012-10-25 17:21:38 | [diff] [blame] | 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 | |||||
[email protected] | 95c9d11 | 2012-12-16 04:52:36 | [diff] [blame] | 30 | protected: |
31 | WGLApiBase(); | ||||
32 | virtual ~WGLApiBase(); | ||||
33 | void InitializeBase(DriverWGL* driver); | ||||
34 | |||||
[email protected] | b97c908 | 2012-10-25 17:21:38 | [diff] [blame] | 35 | DriverWGL* driver_; |
36 | }; | ||||
37 | |||||
[email protected] | 95c9d11 | 2012-12-16 04:52:36 | [diff] [blame] | 38 | class GL_EXPORT RealWGLApi : public WGLApiBase { |
39 | public: | ||||
40 | RealWGLApi(); | ||||
41 | virtual ~RealWGLApi(); | ||||
42 | void Initialize(DriverWGL* driver); | ||||
43 | }; | ||||
44 | |||||
[email protected] | b8f1d48c | 2013-02-07 05:21:12 | [diff] [blame] | 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 | |||||
[email protected] | b97c908 | 2012-10-25 17:21:38 | [diff] [blame] | 60 | } // namespace gfx |
61 | |||||
62 | #endif // UI_GL_WGL_API_IMPLEMENTATION_H_ | ||||
63 | |||||
64 | |||||
65 |