#include "base/mac/scoped_nsobject.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
+#include "content/public/browser/gpu_data_manager_observer.h"
#include "ui/gl/scoped_cgl.h"
namespace content {
-enum CoreAnimationStatus {
- CORE_ANIMATION_DISABLED,
- CORE_ANIMATION_ENABLED,
-};
-CoreAnimationStatus GetCoreAnimationStatus();
-
-class CompositingIOSurfaceShaderPrograms;
-
class CompositingIOSurfaceContext
- : public base::RefCounted<CompositingIOSurfaceContext> {
+ : public base::RefCounted<CompositingIOSurfaceContext>,
+ public content::GpuDataManagerObserver {
public:
enum {
// The number used to look up the context used for async readback and for
void PoisonContextAndSharegroup();
bool HasBeenPoisoned() const { return poisoned_; }
- CompositingIOSurfaceShaderPrograms* shader_program_cache() const {
- return shader_program_cache_.get();
- }
- NSOpenGLContext* nsgl_context() const;
CGLContextObj cgl_context() const { return cgl_context_; }
- bool is_vsync_disabled() const { return is_vsync_disabled_; }
int window_number() const { return window_number_; }
- bool IsVendorIntel();
+ // content::GpuDataManagerObserver implementation.
+ virtual void OnGpuSwitching() OVERRIDE;
private:
friend class base::RefCounted<CompositingIOSurfaceContext>;
CompositingIOSurfaceContext(
int window_number,
- NSOpenGLContext* nsgl_context,
base::ScopedTypeRef<CGLContextObj> clg_context_strong,
- CGLContextObj clg_context,
- bool is_vsync_disabled_,
- scoped_ptr<CompositingIOSurfaceShaderPrograms> shader_program_cache);
- ~CompositingIOSurfaceContext();
+ CGLContextObj clg_context);
+ virtual ~CompositingIOSurfaceContext();
int window_number_;
- base::scoped_nsobject<NSOpenGLContext> nsgl_context_;
base::ScopedTypeRef<CGLContextObj> cgl_context_strong_;
- // Weak, backed by |nsgl_context_| or |cgl_context_strong_|.
+ // Weak, backed by |cgl_context_strong_|.
CGLContextObj cgl_context_;
- bool is_vsync_disabled_;
- scoped_ptr<CompositingIOSurfaceShaderPrograms> shader_program_cache_;
bool poisoned_;
- bool initialized_is_intel_;
- bool is_intel_;
- GLint screen_;
-
// The global map from window number and window ordering to
// context data.
typedef std::map<int, CompositingIOSurfaceContext*> WindowMap;