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_STUB_H_
6#define UI_GL_GL_CONTEXT_STUB_H_
7
8#include "ui/gl/gl_context.h"
9
10namespace gfx {
11
12// A GLContext that does nothing for unit tests.
13class GL_EXPORT GLContextStub : public GLContextReal {
14 public:
15  GLContextStub();
16
17  // Implement GLContext.
18  virtual bool Initialize(GLSurface* compatible_surface,
19                          GpuPreference gpu_preference) OVERRIDE;
20  virtual void Destroy() OVERRIDE;
21  virtual bool MakeCurrent(GLSurface* surface) OVERRIDE;
22  virtual void ReleaseCurrent(GLSurface* surface) OVERRIDE;
23  virtual bool IsCurrent(GLSurface* surface) OVERRIDE;
24  virtual void* GetHandle() OVERRIDE;
25  virtual void SetSwapInterval(int interval) OVERRIDE;
26  virtual std::string GetExtensions() OVERRIDE;
27  virtual std::string GetGLRenderer() OVERRIDE;
28
29 protected:
30  virtual ~GLContextStub();
31
32 private:
33  DISALLOW_COPY_AND_ASSIGN(GLContextStub);
34};
35
36}  // namespace gfx
37
38#endif  // UI_GL_GL_CONTEXT_STUB_H_
39