root/mojo/gles2/gles2_support_impl.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MOJO_GLES2_GLES2_SUPPORT_IMPL_H_
#define MOJO_GLES2_GLES2_SUPPORT_IMPL_H_

#include "base/compiler_specific.h"
#include "mojo/gles2/gles2_impl_export.h"
#include "mojo/public/gles2/gles2_private.h"

namespace mojo {
namespace gles2 {

class MOJO_GLES2_IMPL_EXPORT GLES2SupportImpl : public GLES2Support {
 public:
  virtual ~GLES2SupportImpl();

  static void Init();

  virtual void Initialize(MojoAsyncWaiter* async_waiter) OVERRIDE;
  virtual void Terminate() OVERRIDE;
  virtual MojoGLES2Context CreateContext(
      MessagePipeHandle handle,
      MojoGLES2ContextLost lost_callback,
      MojoGLES2DrawAnimationFrame animation_callback,
      void* closure) OVERRIDE;
  virtual void DestroyContext(MojoGLES2Context context) OVERRIDE;
  virtual void MakeCurrent(MojoGLES2Context context) OVERRIDE;
  virtual void SwapBuffers() OVERRIDE;
  virtual void RequestAnimationFrames(MojoGLES2Context context) OVERRIDE;
  virtual void CancelAnimationFrames(MojoGLES2Context context) OVERRIDE;
  virtual void* GetGLES2Interface(MojoGLES2Context context) OVERRIDE;
  virtual void* GetContextSupport(MojoGLES2Context context) OVERRIDE;
  virtual GLES2Interface* GetGLES2InterfaceForCurrentContext() OVERRIDE;

 private:
  GLES2SupportImpl();

  MojoAsyncWaiter* async_waiter_;
};

}  // namespace gles2
}  // namespace mojo

#endif  // MOJO_GLES2_GLES2_SUPPORT_IMPL_H_

/* [<][>][^][v][top][bottom][index][help] */