• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_CONTEXT_WGL_H_
6 #define UI_GL_GL_CONTEXT_WGL_H_
7 
8 #include <string>
9 
10 #include "ui/gfx/native_widget_types.h"
11 #include "ui/gl/gl_context.h"
12 
13 namespace gfx {
14 
15 class GLSurface;
16 
17 // This class is a wrapper around a GL context.
18 class GLContextWGL : public GLContextReal {
19  public:
20   explicit GLContextWGL(GLShareGroup* share_group);
21   virtual ~GLContextWGL();
22 
23   // Implement GLContext.
24   virtual bool Initialize(
25       GLSurface* compatible_surface, GpuPreference gpu_preference);
26   virtual void Destroy();
27   virtual bool MakeCurrent(GLSurface* surface);
28   virtual void ReleaseCurrent(GLSurface* surface);
29   virtual bool IsCurrent(GLSurface* surface);
30   virtual void* GetHandle();
31   virtual void SetSwapInterval(int interval);
32   virtual std::string GetExtensions();
33 
34  private:
35   HGLRC context_;
36 
37   DISALLOW_COPY_AND_ASSIGN(GLContextWGL);
38 };
39 
40 }  // namespace gfx
41 
42 #endif  // UI_GL_GL_CONTEXT_WGL_H_
43