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_GL_STATE_RESTORER_H_
      6 #define UI_GL_GL_STATE_RESTORER_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "ui/gl/gl_export.h"
     10 
     11 namespace gfx {
     12 
     13 // An interface for Restoring GL State.
     14 // This will expand over time to provide an more optimizable implementation.
     15 class GL_EXPORT GLStateRestorer {
     16  public:
     17   GLStateRestorer();
     18   virtual ~GLStateRestorer();
     19 
     20   virtual bool IsInitialized() = 0;
     21   virtual void RestoreState(const GLStateRestorer* prev_state) = 0;
     22   virtual void RestoreAllTextureUnitBindings() = 0;
     23   virtual void RestoreActiveTextureUnitBinding(unsigned int target) = 0;
     24   virtual void RestoreFramebufferBindings() = 0;
     25 
     26   DISALLOW_COPY_AND_ASSIGN(GLStateRestorer);
     27 };
     28 
     29 }  // namespace gfx
     30 
     31 #endif  // UI_GL_GL_STATE_RESTORER_H_
     32