Home | History | Annotate | Download | only in gl
      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_SCOPED_MAKE_CURRENT_H_
      6 #define UI_GL_SCOPED_MAKE_CURRENT_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/memory/ref_counted.h"
     10 #include "ui/gl/gl_export.h"
     11 
     12 namespace gfx {
     13 class GLContext;
     14 class GLSurface;
     15 }
     16 
     17 namespace ui {
     18 
     19 class GL_EXPORT ScopedMakeCurrent {
     20  public:
     21   ScopedMakeCurrent(gfx::GLContext* context, gfx::GLSurface* surface);
     22   ~ScopedMakeCurrent();
     23 
     24   bool Succeeded() const;
     25 
     26  private:
     27   scoped_refptr<gfx::GLContext> previous_context_;
     28   scoped_refptr<gfx::GLSurface> previous_surface_;
     29   scoped_refptr<gfx::GLContext> context_;
     30   scoped_refptr<gfx::GLSurface> surface_;
     31   bool succeeded_;
     32 
     33   DISALLOW_COPY_AND_ASSIGN(ScopedMakeCurrent);
     34 };
     35 
     36 }  // namespace ui
     37 
     38 #endif  // UI_GL_SCOPED_MAKE_CURRENT_H_
     39