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 13namespace gfx { 14 15class GLSurface; 16 17// This class is a wrapper around a GL context. 18class 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