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